Content deleted Content added
m ISBNs (Build KC) |
Typography. |
||
Line 5:
| author = [[Matthias Felleisen]], [[Robert Bruce Findler]], [[Matthew Flatt]], [[Shriram Krishnamurthi]]
| cover_artist =
| country = [[United States of North America | USA]]
| subject = [[Computer programming]]
| genre = [[Textbook]]
| publisher = [[MIT Press]]
| pub_date = February 12, 2001
| media_type = print
| pages = 720
| isbn = 0-262-06218-6
| oclc =
| dewey =
| congress =
'''''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]] published in 2001 by [[MIT Press]]. The book introduces the concept of a ''design recipe'', a six-step process for creating programs from the problem statement. While the book was originally used in conjunction with the '''TeachScheme!''' project (now [[ProgramByDesign]]), it has been adopted at a number of colleges and universities for the teaching of program design principles. ▼
According to '''HtDP''', the design process starts with a careful analysis of the 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.▼
▲'''''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]] published in 2001 by [[MIT Press]]. The book introduces the concept of a ''design recipe'', a six-step process for creating programs from the problem statement. While the book was originally used in conjunction with the TeachScheme! project (now [[ProgramByDesign]]), it has been adopted at a number of colleges and universities for the teaching of program design principles.
▲According to HtDP, the design process starts with a careful analysis of the 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.
The book therefore carefully introduces more and more complex kinds of data, which sets it apart from every other introductory programming book. It starts from ''atomic'' forms of data and then progresses to ''compound'' forms of data, 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.
|