Content deleted Content added
Cybercobra (talk | contribs) mNo edit summary |
m Disambiguating links to Object-orientation (link changed to Object-oriented programming) using DisamAssist. |
||
(94 intermediate revisions by 45 users not shown) | |||
Line 1:
{{Short description|Computer programming textbook by Matthias Felleisen and colleagues}}
{{Use mdy dates|date=July 2018}}
{{Infobox book
| name
| image = How to Design
|
| author
| cover_artist
| country = United
| subject
| genre
| publisher
| pub_date
| media_type
| pages
| isbn
| oclc
| dewey
| congress = QA76.6 .H697
| website = {{URL|htdp.org}}
}}
'''''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
According to HtDP, the design process starts with a careful analysis of
Like ''[[Structure and Interpretation of Computer Programs]]'' (SICP), HtDP relies on a variant of the programming language [[Scheme (programming language)|Scheme
==Pedagogical basis==
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. Journal of Functional Programming, Volume 14, Issue 4 (July 2004) Pages: 365 - 378
|year=2004
|publisher=NEU
|url-status=live
|archive-url=https://web.archive.org/web/20080511171056/http://www.ccs.neu.edu/scheme/pubs/jfp2004-fffk.pdf
|archive-date=May 11, 2008
}} a paper in which the authors compare and contrast HtDP with SICP.</ref> the same authors compared and contrasted the pedagogical focus of ''How to Design Programs'' (HtDP) with that of ''[[Structure and Interpretation of Computer Programs]]'' (SICP). In the 14-page paper, the authors distinguish the pedagogic focus of HtDP from that of SICP, and show how HtDP was designed as a textbook to address some problems that some students and teachers had with SICP.
The paper introduces the pedagogical landscape surrounding the publication of SICP. The paper starts with a history and critique of SICP, followed by a description of the goal of the [[computing]] curriculum. It then describes the principles of teaching behind HtDP; in particular, the difference between implicit vs. explicit teaching of design principles. It then continues on to describe the role of [[Scheme (programming language)|Scheme]] and the importance of an ideal [[Computer programming|programming]] environment, and concludes with an extensive evaluation of content and student/faculty reaction to experience with SICP vs. HtDP.
==References==▼
One of the major focuses of the paper is the emphasis on the difference in required [[___domain knowledge]] between SICP and HtDP. A chart in the paper compares major exercises in SICP and HtDP, and the related text describes how the exercises in the former require considerably more sophisticated ___domain knowledge than those of HtDP. The paper continues on to explain why this difference in required ___domain knowledge has resulted in certain students having confused ___domain knowledge with program design knowledge.
==External links==▼
The paper claims the following four major efforts that the authors of HtDP have made to address perceived issues with SICP:
[[Category:2001 books]]▼
#HtDP addresses explicitly, rather than implicitly, how programs should be constructed.
[[Category:Computer science books]]▼
#To make programming easier, the book guides students through five different knowledge levels corresponding to data definition levels of complexity.
#The book's exercises focus on program design guidelines, rather than ___domain knowledge.
#The book assumes less ___domain knowledge than that of SICP.
The paper then distinguishes between structural [[recursion]], where the related data definition happens to be [[self-referential]], requiring usually a straightforward design process, and generative recursion, where new problem data is generated in the middle of the problem-solving process and the problem solving method is re-used, often requiring ''ad hoc'' mathematical insight, and stresses how this distinction makes their approach scalable to the [[Object-oriented programming|object-oriented]] (OO) world.
Finally, the paper concludes with a description of responses from various faculty and students after having used HtDP in the classroom.
▲== References ==
{{Reflist}}
▲== External links ==
* {{Official website|htdp.org}}, 2018 2nd edition, 2003 1st edition
{{Lisp programming language}}
[[Category:2001 non-fiction books]]
▲[[Category:Computer science books]]
[[Category:Computer programming books]]
[[Category:Scheme (programming language)]]
[[Category:Creative Commons-licensed books]]
|