6.189 | January IAP 2011 | Undergraduate
A Gentle Introduction to Programming Using Python

Readings

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

Textbook

Downey, Allen, Jeffrey Elkner, and Chris Meyers. How to Think Like a Computer Scientist: Learning with Python. Green Tea Press, 2002. ISBN: 9780971677500. (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.

LEC # READINGS
1 Chapters 1 and 2, section 4.12
2 Sections 4.1, 4.2, 4.4-4.7, and 6.1-6.2
3

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

4

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
6

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)
9-11

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.

Course Info
Instructor
As Taught In
January IAP 2011
Learning Resource Types
notes Lecture Notes
assignment Programming Assignments