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.
We do not recommend buying a hardcopy version of the book this year, as it is the previous edition; the textbook has changed quite a lot in between the two editions. (Unfortunately, the second edition is not yet out in hardcopy form.)
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 catchContrary 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.
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.