Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, Second Edition. MIT Press, since 2014.
If you prefer a paper copy, you can purchase the second edition from Amazon.
If you can get a free or inexpensive copy of the first edition, you may wish to take a look on occasion. The principles remain the same; the details differ a lot.
An Auxiliary Text
Bice, DeMaio, Florence, Lin, Lindeman, Nussbaum, Peterson, Plessner, Van Horn, Felleisen, Barski Realm of Racket No Starch Press. 2013.
Contrary to malicious rumors, Fundamentals I does not teach Racket. Period.
Realm is a non-text book that bridges the gap between the programming languages used in this course and Racket programming. So if you want to learn Racket, this book is the one you should read next.
It is true that Bice, DeMaio, Florence, Lin, Lindeman, Nussbaum, Peterson and Plessner were freshman students when they started working on this book.
In addition to texts, you may also watch a similar course on Coursera and EdX. Gregor Kiczales, a professor at the University of British Columbia, has created an on-line course based on our curriculum. It is available for free at: