Textbooks
Required Text
There is one required text for this course. Right now, it exists only
online, so there's no text for you to buy.
Recommended Readings and Resources
- 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
- Functional
Geekery. A blog and podcast devoted to the use of
functional programming across multiple languages, with
an emphasis on industrial applications.
- Abelson and Sussman. The Structure and
Interpretation of Computer Programs MIT Press, 2nd edition,
1996. The classic textbook on Scheme and the functional approach to
programming.
Scheme Readings
If you wish to learn to use Racket as a tool, which is not the goal of this course, then take a
look at the following, you should go to racket-lang.org, where you can find lots of resources on
Racket and its libraries.
For information about other versions of Scheme and applications,
check out the Community Scheme
Wiki.
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.
- Another book on writing that many computer scientists find
congenial is:
Lyn Dupre BUGS in Writing Addison-Wesley Longman (1998).
Conveniently divided into many short chapters, each devoted to a
particular kind of writing error. Like Strunk and White, it's a
little fussy, and the latest printing (which I bought on Amazon in
August, 2015) looks like it was produced on a laser printer that was
almost out of ink.
- 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 one of the classic books 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).
Last modified: Wed Aug 12 22:21:32 Eastern Daylight Time 2015