Title: How To Design Programs: An Introduction To Programming and Computing.
Authors: Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi
This introduction to programming focuses on the program design process. This approach fosters a variety of skills -critical reading, analytical thinking, creative synthesis, and attention to detail (that are important for everyone, not just future computer programmers).
The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples etc. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book.
All the book’s support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects.