Texts
Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, Second Edition (Draft)
The course will primarily follow this draft of the second edition of the text book. Both texts focus on the same design principles for small pieces of software; the details differ significantly. Since the draft provides only parts I through IV, the course will switch to the first edition for parts V and VI.
Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, First Edition, MIT Press, 2001
The first edition of the text book is the official text book for the course. But almost all exercise material will come from the draft book. There is no need to read this book in detail but doing so will give you a second perspective and its exercises may help improve your understanding of the material.
Bice, DeMaio, Florence, Lin, Lindeman, Nussbaum, Peterson Plessner, Van Horn, Felleisen, Barski Realm of Racket No Starch Press. 2013.
Meet the authors om Tuesday September 3, 2013, get the book signed by as many as you can catch
Contrary to rumors, this course does not teach you Racket. So do not put Racket on your CV once you’re done with the course, even if you get an A. Interviewing with Naughty Dog would quickly expose you as a fraud if you did.The design ideas are equally applicable to JS, Perl, Python, Ruby (on rails or crutches), and Racket. Realm is a non-text book that bridges the gap between the programming languages used in this course and Racket programming. The course projects will borrow material from Realm but there is no need for you to buy this book, in any form or shape.