FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/How_to_Design_Programs

How to Design Programs

How to Design Programs
AuthorMatthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
SubjectComputer programming
GenreTextbook
PublisherMIT Press
Publication dateFebruary 12, 2001
Publication placeUnited States
Media typeprint
Pages720
ISBN0-262-06218-6
Library of Congress Classification</span>"}]]}'>LC ClassQA76.6 .H697 2001
Websitehtdp.org

How to Design Programs (HtDP) is a textbook by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi on the systematic design of computer programs. MIT Press published the first edition in 2001 and the second edition in 2018. In addition to the for-purchase paperback, it is also freely available online.

The book is the first one to focus on the systematic design of code as opposed to the syntax of a currently popular programming language. Its key concept is that of a "design recipe", a six-step process for creating programs from a problem statement in a step-by-step fashion. While the book was originally used along with the education project TeachScheme! (renamed ProgramByDesign), it has been adopted at colleges and universities for teaching program design principles, including UBC's popular on-line course.

To support its approach to teaching programming, How to Design Program, HtDP introduces five beginner-level programming languages and provides a dedicated integrated development environment IDE.

"How to Design Programs". htdp.org. Retrieved July 27, 2026.
  • ↑ Yassa Taiseer (September 9, 2025). Why Racket is the Best First Programming Language. Retrieved July 27, 2026 – via YouTube.
  • ↑ The Structure and Interpretation of the Computer Science Curriculum. Journal of Functional Programming, Volume 14, Issue 4 (July 2004) Pages: 365 - 378 (PDF), NEU, 2004, archived (PDF) from the original on May 11, 2008 a paper in which the authors compare and contrast HtDP with SICP.
  • External links

    edit