Skip to main content

CS 2000: Introduction to Program Design and Implementation

Introduces computer science and data science to students with no programming experience. Starts by building programs with numbers, text, and images, then moves to exploring real, complex data sets both interactively and through coding. Students then practice coding using a popular industrial language with a professional programmer's interface to the code. Students learn to identify and respond to ethical challenges in program design.

This course owes a great debt to two texts, which each had courses based on them. The first is How to Design Programs by Felleisen et al, which originated the Design Recipe that still forms the core of our course, as well as inspiring countless other aspects. The second is A Data-Centric Introduction to Computing by Fisler et al, which created the combined computer science and data science curriculum that we follow quite closely, though our language and tooling is distinct. Past versions of this course followed DCIC directly.

Assessment Hours​

In-person hours where you can attempt skill assessments, by campus.

Schedule (Boston & Oakland)​

Dates are for Fall 2026, Boston & Oakland campuses; they will differ for other semesters or campuses.

Lectures meet Monday, Wednesday, and Thursday. Labs meet Tuesday. Homework is due Sunday (Anywhere-on-Earth).

Colored stripes at the bottom of each day indicate which skills are assessable during office hours on that day. Past days are faded.

SunMonTueWedThuFriSat
September 2026
Week 1Programming with Numbers, strings, images: IDE, interactions, operations on standard values
6
7Labor Day
8
11
12
Week 2Definitions, functions, conditionals: type annotations, test cases
13
18
19
Week 3Ethics & Intro to tables: constructing, importing, extracting
25
26
Week 4More on tables: transforming, filtering
3
October 2026
Week 5From tables to lists: extracting columns, performing operations on them, visualizing data
10
Week 6Computing with lists: iteration & mutable local variables
12Indg. People's Day
17
Week 7Lists, variables that change & scope
24
Week 8Structured, conditional & recursive data
31
November 2026
Week 9Recursion on lists; trees
7
Week 10More trees; mutable data & the heap
11Veterans Day
14
Week 11Tables in pandas: creating, loading, filtering, transforming
21
Week 12To be determined
22No HW Due
23
24No Lab
25Thanks. Break
26Thanks. Break
27Thanks. Break
28
Week 13To be determined
30
5
December 2026
Week 14Catch up, bonus content, etc. Depends on section / instructor.
10
11
12
Week 15Finals Period
13
14
15
16
17
18
19