Texts
How to Design Programs, Second Edition (On-line Draft) by Felleisen, Findler, Flatt, Krishnamurthi. MIT Press.
This is the only required textbook for this course and it is available for free online (only). Do not buy the first edition; the details differ dramatically with the second edition.
Realm of Racket, Bice, DeMaio, Florence, Lin, Lindeman, Nussbaum, Peterson, Plessner, Van Horn, Felleisen, Barski. No Starch Press.
This is NOT a course on Racket. Anyone who told you otherwise told you wrong.
It teaches design principles that are valid in many contexts, especially JavaScript, Perl, Python, Ruby (on rails or crutches), Racket, and almost any managed language.
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 with me on this book.