This section includes the online textbook and a schedule of readings by session.


Buy at Amazon Downey, Allen, Jeffrey Elkner, and Chris Meyers. How to Think Like a Computer Scientist: Learning with Python. Green Tea Press, 2002. ISBN: 9780971677500. (This resource may not render correctly in a screen reader.PDF - 1.0MB)

If you have trouble accessing the textbook, or don't want to download the whole PDF, try the individual chapters:

Chapter 1: The way of the program

Chapter 2: Variables, expressions and statements

Chapter 3: Functions

Chapter 4: Conditionals and recursion

Chapter 5: Fruitful functions

Chapter 6: Iteration

Chapter 7: Strings

Chapter 8: Lists

Chapter 9: Tuples

Chapter 10: Dictionaries

Chapter 12: Classes and objects

Chapter 13: Classes and functions

Chapter 14: Classes and methods

Chapter 16: Inheritance

Appendix A: Debugging (important!)

The lectures stick with the order of the textbook for the most part, but not always.

Readings by Session

Readings are from How to Think Like a Computer Scientist unless otherwise noted.

1 Chapters 1 and 2, section 4.12
2 Sections 4.1, 4.2, 4.4-4.7, and 6.1-6.2

Chapter 3, appendix A, sections 6.5-6.9

Sections 2.1, 2.2, and 2.3 (up to the heading "Lists") from the 6.01 course notes


Chapters 7 and 8

Chapter 2 from "Lists" on, from the 6.01 course notes

More on list comprehensions is available here and on Wikipedia.

5 Chapters 9 and 10

Chapters 12-14 (read chapter 14 well; get through at least section 14.6)

This tutorial on classes may also be helpful.

7 Finish chapters 12-14; read chapter 16
8 Wikipedia: Conway's Game of Life (Project 2)

For the final week, make sure you know and understand chapters 12-14 and 16.

Chapters 11, 15, 18, 19, and 20 are very interesting, but not covered in this course; take 6.01, 6.042, and 6.006 to learn more about programming and data structures.