How to Design Programs: Difference between revisions

Content deleted Content added
Tags: Mobile edit Mobile web edit Advanced mobile edit
Tags: Mobile edit Mobile web edit Advanced mobile edit
Line 29:
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.
==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
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]] 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 Structure and Interpretation ofIn the Computer Science Curriculum''''' is a 14-page paper published in 2004 ,<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> bythe [[Matthias Felleisen]], [[Robert Bruce Findler]], [[Matthew Flatt]] and [[Shriram Krishnamurthi]]authors comparingcompared and contrastingcontrasted the pedagogical focus of [[How to Design Programs]] (HtDP) with that of [[Structure and Interpretation of Computer Programs]] (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.