How to Design Programs: Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m top: Task 16: replaced (1×) / removed (0×) deprecated |dead-url= and |deadurl= with |url-status=;
Itsbruce (talk | contribs)
Removed an unnecessary, overblown and unverified (probably unverifiable) claim.
Line 25:
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, which sets it apart from every other introductory programming book. 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 (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.