There is no required textbook for this course, however we will make use of (parts of) the following books and occasionally assign additional reading.
How to Design Programs, Second Edition (On-line Draft) by Felleisen, Findler, Flatt, Krishnamurthi. MIT Press.
How to Design Classes, Felleisen, Findler, Flatt, Gray, Krishnamurthi, and Proulx. Draft, 2008.