Content deleted Content added
References format. |
Typography. |
||
Line 20:
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.
Like ''[[Structure and Interpretation of Computer Programs]]'' ('''SICP'''), '''HtDP''' relies on a variant of the [[Scheme (programming language) | Scheme programming language]]. Indeed, it comes with its own programming environment, dubbed [[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 previous one. With the exception of the largest teaching language, all languages for '''HtDP''' are [[functional programming languages]].
In the 2004 paper [[The Structure and Interpretation of the Computer Science Curriculum]],<ref>{{Citation | url = http://www.ccs.neu.edu/scheme/pubs/jfp2004-fffk.pdf | title = The Structure and Interpretation of the Computer Science Curriculum | year = 2004 | publisher = NEU | format = [[PDF]]}}, a paper in which the authors compare and contrast '''HtDP''' with '''SICP'''.</ref> 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'''.
|