This free CS1 curriculum is predicated on the notion that learning about programming and computer science should be fun and engaging. This requires interesting problems to solve, as computational problem-solving is the core of computer science. It is why we choose to first expose students to graphical problems in the first Unit of CS1: they are visually engaging, allow for multiple correct solutions, and provide visual cues when a solution goes awry.
There are 12 Units to the course. The course is split up into two parts, CS1a (units 1-7) and CS1b (units 8-12) so that it can be taught as a year long course or two semester based courses. We believe the best way to learn this material is to do it, so each Unit provides content for the topic to be investigated, a worked problem(s) to illustrate and let students explore the topic, a set of exercises to hone their mastery of the topic, some end-of-unit exercises that require students to use and synthesize all the topics found in that Unit, and a creative task that lets them further explores the topics in the Unit in a manner driven by their interests.
The course provides its own browser-based Integrated Development Environment (IDE) that the students will use to create and run their programs. It encompasses an editor and compiler, a custom graphics package, and an autograder that is capable of grading not only textual problems and solutions but also a broad range of graphics problems and solutions.