How to Design Programs

How to Design Programs

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, which is freely available online and in print. The book introduces the concept of a design recipe, a six-step process for creating programs from a problem statement. While the book was originally used along with the education project TeachScheme! (renamed ProgramByDesign), it has been adopted at many colleges and universities for teaching program design principles.

Author
Matthew Flatt
Author
Matthew Flatt
Author
Matthias Felleisen
Author
Matthias Felleisen
Author
Robert Bruce Findler
Author
Robert Bruce Findler
Author
Shriram Krishnamurthi
Author
Shriram Krishnamurthi
Comment
enHow 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, which is freely available online and in print. The book introduces the concept of a design recipe, a six-step process for creating programs from a problem statement. While the book was originally used along with the education project TeachScheme! (renamed ProgramByDesign), it has been adopted at many colleges and universities for teaching program design principles.
Congress
enQA76.6 .H697 2001
Country
enUnited States
Depiction
How to Design Programs (front cover).jpg
Genre
Textbook
Has abstract
enHow 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, which is freely available online and in print. The book introduces the concept of a design recipe, a six-step process for creating programs from a problem statement. While the book was originally used along with the education project TeachScheme! (renamed ProgramByDesign), it has been adopted at many colleges and universities for teaching program design principles. According to HtDP, the design process starts with a careful analysis of a problem statement with the goal of extracting a rigorous description of the kinds of data that the desired program consumes and produces. The structure of these data descriptions determines the organization of the program. Then, the book carefully introduces data forms of progressively growing complexity. It starts with data of atomic forms and then progresses to compound forms, including data that can be arbitrarily large. For each kind of data definition, the book explains how to organize the program in principle, thus enabling a programmer who encounters a new form of data to still construct a program systematically. Like Structure and Interpretation of Computer Programs (SICP), HtDP relies on a variant of the programming language Scheme. It includes its own programming integrated development environment (IDE), named DrRacket, which provides a series of programming languages. The first language supports only functions, atomic data, and simple structures. Each language adds expressive power to the prior one. Except for the largest teaching language, all languages for HtDP are functional programming languages.
Homepage
htdp.org
Hypernym
Textbook
Isbn
0-262-06218-6
Isbn
0
Is primary topic of
How to Design Programs
Label
enHow to Design Programs
Library of Congress Classification
QA76.6 .H697 2001
Link from a Wikipage to an external page
www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf
Link from a Wikipage to another Wikipage
Category:2001 non-fiction books
Category:Computer programming
Category:Computer science books
Category:MIT Press books
Category:Scheme (programming language)
Computer program
Computer programming
Computing
Data
Domain knowledge
DrRacket
Functional programming
Integrated development environment
Matthew Flatt
Matthias Felleisen
MIT Press
Object-oriented
ProgramByDesign
Recursion
Robert Bruce Findler
Scheme (programming language)
Self-referential
Shriram Krishnamurthi
Structure and Interpretation of Computer Programs
Textbook
LiteraryGenre
Textbook
MediaType
enprint
Name
enHow to Design Programs
Name
enHow to Design Programs
NonFictionSubject
Computer programming
NumberOfPages
720
Pages
720
PubDate
12 February 2001
Publication date
12 February 2001
Publisher
MIT Press
Publisher
MIT Press
Publisher
MIT Press
SameAs
4nUCE
How to Design Programs
m.06vpbg
Q5918555
程序设计方法
Subject
Category:2001 non-fiction books
Category:Computer programming
Category:Computer science books
Category:MIT Press books
Category:Scheme (programming language)
Subject
Computer programming
Thumbnail
How to Design Programs (front cover).jpg?width=300
WasDerivedFrom
How to Design Programs?oldid=1067570790&ns=0
WikiPageLength
6450
Wikipage page ID
2203602
Wikipage revision ID
1067570790
WikiPageUsesTemplate
Template:Infobox book
Template:Lisp programming language
Template:Official website
Template:Reflist
Template:Short description
Template:URL
Template:Use mdy dates