How to Design Programs: An Introduction to Programming and Computing
  • Author: Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shiram Krishnamurthi
  • Editon: September 2003 Version
  • Format: online HTML
  • Price: free

This book is on program design, geared more towards beginners, that presents many ‘design recipes’. The language used is Scheme, using DrScheme, a programming environment with special assistance for beginning students.

The DrScheme programming environment is freely available at the book’s official Web site.

Chapters include:

  • Processing Simple Forms of Data
  • Processing Arbitrarily Large Data
  • Abstracting Designs
  • Generative Recursion
  • Accumulating Knowledge
  • Changing the State of Variables
  • Changing Compound Values

http://www.htdp.org/