Below, you'll find a set of online resources designed to accompany the 6.00 lectures. We've found that the readings are generally more effective when done after the lecture, though you are of course welcome to read them at any time. The main page for How to Think Like a Computer Scientist: Learning with Python can be found here.
Lectures 1-3
- Introduction: Chapter 1 in How to Think Like a Computer Scientist
- Variables and statements: Chapter 2 in How to Think Like a Computer Scientist
- Strings: The Strings section in the Programming Python Wikibook
- Conditionals: The Conditional Statements section in the Programming Python Wikibook
- Loops: The Loops section in the Programming Python Wikibook
Lectures 4-5
- Functions and types: Chapter 3 in How to Think Like a Computer Scientist
- Documenting functions: Documenting Functions from Dive Into Python
- Recursion: Chapter 4 in How to Think Like a Computer Scientist
Lectures 6-7
- Lists: Chapter 8 in How to Think Like a Computer Scientist
- Dictionaries: Chapter 10 in How to Think Like a Computer Scientist
- As a reference: the Python Tutorial section on lists and dictionaries (feel free to skip 5.1.3 and 5.1.4)
Lecture 8
Lecture 9
- Binary search: Skim the Wikipedia page about this (section 1 up until the recursive implementation, section 5, and section 6 are probably most interesting)
- Exceptions (covered in recitation): Section 11.5 in How To Think Like A Computer Scientist
Lecture 12
Lectures 13-14
Lots of fun reading about classes!
- Classes: Chapter 12 in How to Think Like a Computer Scientist
- Classes: Chapter 13 in How to Think Like a Computer Scientist
- Classes: Chapter 14 in How to Think Like a Computer Scientist
- Inheritance: Chapter 16 in How to Think Like a Computer Scientist