- How to Design Programs
"How to Design Programs (HtDP)" is a textbook by
Matthias Felleisen ,Robert Bruce Findler ,Matthew Flatt andShriram Krishnamurthi on the systematic design ofcomputer programs published in 2001 byMIT 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 theTeachScheme! project, 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 startsfrom "atomic" forms of data and then progresses to "compound" forms ofdata, including data that can be arbitrarily large. For each kind of datadefinition, the book explains how to organize the program in principle, thusenabling a programmer who encounters a new form of data to still construct aprogram systematically.
Like "
Structure and Interpretation of Computer Programs " (SICP), HtDP relies on a variant of the Scheme programming language. Indeed, it comes with its own programming environment, dubbedDrScheme , 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 previous one. With the exception of the largest teaching language, all languages for HtDP arefunctional programming languages .In the 2004 paper
The Structure and Interpretation of the Computer Science Curriculum * [ [http://www.ccs.neu.edu/scheme/pubs/jfp2004-fffk.pdf The Structure and Interpretation of the Computer Science Curriculum] , a paper in which the authors compare and contrast HtDP with SICP] , the authors distinguish the pedagogical focus of HtDP from that of SICP, and show how HtDP was designed as a textbook to address certain issues that some students and teachers had with SICP.References
External links
* [http://www.htdp.org Official site of HtDP] , including full text
Wikimedia Foundation. 2010.