How To Design Programs by Matthias Felleisen

An Introduction to Programming and Computing

A practical textbook that teaches systematic program design through a step-by-step “design recipe” covering data analysis, examples, signatures and purpose statements, function templates, tests, and incremental development; it emphasizes data-driven design, program families, abstraction and refactoring, and uses a simple functional language to illustrate how to build reliable, well-documented programs while developing disciplined problem-solving skills for beginners and experienced programmers alike.