Courses
- Required Text: none
- Recommended Texts:
- Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and
Shriram Krishnamurthi. How to Design Programs: An Introduction to
Computing and Programming. The MIT Press,
Cambridge MA, 2001.
The Felleisen-Findler text is well grounded in explicitly described
principles of program design. It is written for advanced high-school
and elementary college course, so it reads a bit slowly for our
course, and doesn't reach the advanced level that we will aim at.
- Harold Abelson and Gerald Jay Sussman. Structure and
Interpretation of Computer Programs, second edition. The MIT
Press, Cambridge MA, 1996.
The Abelson-Sussman text is a classic, and well worth reading. It is
full of stimulating and advanced ideas, mostly in the form of
examples. It provides a pretty good reference to the features of
Scheme, more readable than the manual. It doesn't quite match
the structure of the course as I teach it, and it doesn't describe
programming principles explicitly. When you read this text, try to
extract explicit principles from the examples. Be alert that different
examples show different principles appropriate to different
contexts.
The wizard picture on the cover suggests both the strengths and
weaknesses of the text fairly well.
The authors have kindly provided the full texts with additional
materials on the Web. If you find the books particularly useful,
please consider buying copies.
I may occasionally point to particular relevant parts of the texts,
but mostly you must identify relevant portions and read them
independently if you find them helpful. If you find particularly
useful or interesting materials in the texts, or elsewhere, please
post them to the online discussion.
Last modified: Tue Sep 30 11:30:01 CDT 2003