- Felleisen, Findler, Flatt, and Krishnamurthi. How to Design Programs, 2nd edition, Chapters 1-8.
- Felleisen, Findler, Flatt, and Krishnamurthi. How to Design Programs, 1st edition MIT Press, 2001, Parts 5-6.
We will be making available a printed version of those portions of the 2nd edition that we will be using. Details on the availability of this document will be announced.
Recommended Readings
- Friedman and Felleisen. The Little Schemer: Fourth Edition MIT Press, 1996. An alternative introduction to recursive programming.
- Friedman and Felleisen. The Seasoned Schemer MIT Press, 1996. More on functional and imperative programming
- Felleisen and Friedman. A Little Java, A Few Patterns MIT Press, 1998. Why all this matters and how it scales to Java
Scheme Readings
If you wish to learn to use Scheme as a tool, which is not the goal of this course, then take a look at the following:
- The manuals in the Help Desk for the libraries in DrScheme
- The Scheme cookbook, a collection of Scheme programming recipes
- Felleisen, Findler, Flatt, and Krishnamurthi. How to Use Scheme. 2002.
- Dybvig. The Scheme Programming Language, 3rd edition MIT Press, 2004
Other Readings
- If your native language is not English, or even if it is, the
following book will help you improve your writing:
Strunk and White The Elements of Style Longman (1918, 4th ed., 1999). A useful resource on English grammar and usage. Also contains many good tips on style. It is not perfect, but it has a lot of good content. It is available online but it's far more useful to have the 105-page paperback in your hand, or on your desk to inspire you.
- The Seven Habits Of Highly Effective People by Stephen R. Covey. Amazon Most graduate students need some help with managing their time, and this only gets harder as you go along. This is the leading book on time-management. It gives guidance on juggling competing demands on your time, setting (and keeping!) priorities, and the psychological dimension of time management. I've had a number of students who found this book invaluable.
- Getting Things Done: The Art of Stress-Free Productivity, by David Allen. (Amazon) This is a system of keeping track of your tasks. It is extremely nerd-friendly (and I mean that in a good way).
- For many of you, this course will be an exercise in personal growth as
you learn to approach tasks in a new way, take criticism, and work in
a very intensive environment. If you have some favorite books on
this topic, now is a good time to get them out. Here is one that I
like:
Zen Guitar, by Philip Toshio Sudo. (Amazon) When he says "welcome to my dojo", read "welcome to *my* dojo". When he says "Pick up your guitar" read "Pick up your HtDP book, a sheet of paper to design on, and then (and only then) your keyboard and mouse." When he says "practice with intention", read "design the best, clearest, most beautiful program you can." (And so far as I know, that is the author's real name: it is not a linux joke).
Last modified: Thu Dec 27 14:33:57 -0500 2012