Texts
Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, Second Edition. MIT Press, since 2014
If you can get a free or cheap, 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.
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.
It teaches design principles that are valid in many contexts, programming and otherwise, especially JavaScript, Perl, Python, Ruby (on rails), 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 Matthais Felleisen on this book.
Outside Resources
There is a series of YouTube videos by John Clements based on the first part of our curriculum. They are available here. These may be particularly useful in the first week or so, when you are still getting used to the syntax of BSL and the use of DrRacket. Please note that these videos are based off an older version of the course so they may contain some terminology that we no longer use. In addition, John is using a version of DrRacket which is about 8 years out of date, so please be careful if you are using this as a reference.
Professor Mitch Wand also created a series of YouTube videos based on our curriculum. They are available here. Again, these videos are from about 5 years ago, so please be careful using them as a reference. The general concepts are the same, but certain functions may have been changed slightly in later versions of DrRacket.