CS 1: Intro to Program Design


CS 1 is a class about computation, which is another way of saying that it is a class about thinking. Although you will create dozens of interactive programs in the coming year (scientific simulations, video games, text editors, digital art programs, artificial intelligences, image filters a la Instagram, website generators, and more!), coding is really just our method of choice for exploring the ideas that have animated computer science for over a century—even before there were computers!

The question we will return to again and again is this: what is the nature of thinking? Just as someone wishing to understand the nature of flight might build an airplane rather than study a bird, we’ll use programmable thinking machines—computers—to guide our inquiry, instead of studying the brain.

Of course, “What is the nature of thinking?” is quite broad, so we must focus. In this introductory course, we will investigate more specific questions, including:

No prior experience necessary.

Course organization

Our study of computer science comprises six units and two independent projects. Project 1 is completed in December before winter break (between units 2 and 3), and Project 2 in April (between units 4 and 5). The units are: