How to Design Programs: Difference between revisions

Content deleted Content added
Tags: Mobile edit Mobile web edit Advanced mobile edit
Pedagogical basis: Refactored.
Tags: Mobile edit Mobile web edit Advanced mobile edit
Line 37:
|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 authors [[Matthias Felleisen]], [[Robert Bruce Findler]], [[Matthew Flatt]] and [[Shriram Krishnamurthi]] compared distinguishand contrasted the pedagogicpedagogical focus of HtDP[[How fromto thatDesign of SICP, and show howPrograms]] (HtDP) was designed as a textbook to address some problemswith that someof students[[Structure and teachersInterpretation hadof withComputer Programs]] (SICP).
 
In the 14-page paper,<ref>Journal of Functional Programming, Volume 14, Issue 4 (July 2004) Pages: 365 - 378 </ref><ref>[http://www.ccs.neu.edu/scheme/pubs/jfp2004-fffk.pdf The Structure and Interpretation of the Computer Science Curriculum]</ref> the authors compared and contrasted the pedagogical focus of [[How to Design Programs]] (HtDP) with that of [[Structure and Interpretation of Computer Programs]] (SICP).
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.
Line 46 ⟶ 47:
 
The paper claims the following four major efforts that the authors of HtDP have made to address perceived issues with SICP:
1) #HtDP addresses explicitly, rather than implicitly, how programs should be constructed.
 
2) #To make programming easier, the book guides students through five different knowledge levels corresponding to data definition levels of complexity.
1) HtDP addresses explicitly, rather than implicitly, how programs should be constructed.
3) #The book's exercises focus on program design guidelines, rather than ___domain knowledge.
 
4) #The book assumes less ___domain knowledge than that of SICP.
2) To make programming easier, the book guides students through five different knowledge levels corresponding to data definition levels of complexity.
 
3) The book's exercises focus on program design guidelines, rather than ___domain knowledge.
 
4) 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]] (OO) world.