How to Design Programs

How to Design Programs
AuthorMatthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
SubjectComputer programming
GenreTextbook
PublisherMIT Press
Publication date
February 12, 2001
Publication placeUnited States
Media typeprint
Pages720
ISBN0-262-06218-6
LC ClassQA76.6 .H697 2001
Websitehtdp.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 programs. MIT Press published the first edition in 2001, and the second edition in 2018, which is freely available online and in print. The book introduces the concept of a design recipe, a six-step process for creating programs from a problem statement. While the book was originally used along with the education project TeachScheme! (renamed ProgramByDesign), it has been adopted at many colleges and universities for teaching program design principles.

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. 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. 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,[1] 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 and the importance of an ideal programming environment, and concludes with an extensive evaluation of content and student/faculty reaction to experience with SICP vs. HtDP.

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.

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.
  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.

Finally, the paper concludes with a description of responses from various faculty and students after having used HtDP in the classroom.

References

  1. ^ The Structure and Interpretation of the Computer Science Curriculum. Journal of Functional Programming, Volume 14, Issue 4 (July 2004) Pages: 365 - 378 (PDF), NEU, 2004, archived (PDF) from the original on May 11, 2008 a paper in which the authors compare and contrast HtDP with SICP.

Read other articles:

Type of connective tissue in animals Dense connective tissueDetailsIdentifiersLatintextus connectivus compactusTHH2.00.03.1.00003 Anatomical terms of microanatomy[edit on Wikidata] Dense connective tissue, also called dense fibrous tissue, is a type of connective tissue with fibers as its main matrix element.[1] The fibers are mainly composed of type I collagen. Crowded between the collagen fibers are rows of fibroblasts, fiber-forming cells, that generate the fibers. Dense connec...

 

 

Perang Matabele PertamaPertempuran Shangani (25 Oktober 1893) seperti yang digambarkan oleh Richard Caton Woodville, Jr. (1856–1927)TanggalOktober 1893 – Januari 1894LokasiMatabeleland dan MashonalandHasil Kemenangan besar Kompeni; pembubaran Kerajaan NdebelePihak terlibat Perusahaan Afrika Selatan BritaniaTswana (Bechuana) Kerajaan NdebeleTokoh dan pemimpin Cecil RhodesLeander Starr JamesonMajor Allan Wilson †Major Patrick ForbesKhama III Raja Lobengula †Mjaan, Chief inDuna...

 

 

Giorgio Simonelli nel 1937 Giorgio Candido Simonelli (Roma, 23 novembre 1901 – Roma, 3 ottobre 1966) è stato un regista, sceneggiatore, critico cinematografico e montatore italiano, noto anche per essere stato uno dei fautori del successo di Franco & Ciccio, che ha diretto in una dozzina di film nella prima metà degli anni sessanta. Indice 1 Biografia 2 Filmografia 3 Bibliografia 4 Collegamenti esterni Biografia Iniziò la sua carriera come critico cinematografico sui settimanali Gent...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (نوفمبر 2019) دوري ماكاو لكرة القدم 2011 تفاصيل الموسم دوري ماكاو لكرة القدم  البلد الصين  المنظم اتحاد ماكاو لكرة ا...

 

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

 

 

Templat:Inline Dubai City Towerبرج مدينة دبيInformasi umumStatusVisionJenisMixed useLokasi Dubai,  United Arab EmiratesTinggiMenara antena2.400 m (7.874 ft)Atap2.000 m (6.562 ft)Data teknisJumlah lantai400 Dubai City Tower juga dikenal sebagai Dubai Vertical City adalah rencana gedung pencakar langit yang diumumkan pada 25 Agustus 2008. Gedung ini dirancang setinggi 2.400 meter dengan 400 lantai. Dubai City Tower adalah bangunan tertinggi ketiga yang pernah...

Disambiguazione – Veronese rimanda qui. Se stai cercando altri significati, vedi Veronese (disambigua). Disambiguazione – Se stai cercando il traghetto, vedi Paolo Veronese (traghetto). Probabile autoritratto di Paolo Veronese, particolare delle Nozze di Cana, Parigi, Louvre, 1563 Paolo Caliari, detto il Veronese (Verona, 1528 – Venezia, 19 aprile 1588), è stato un pittore italiano del Rinascimento, cittadino della Repubblica Veneta attivo a Venezia e in altre località del Ve...

 

 

هنودمعلومات عامةنسبة التسمية الهند التعداد الكليالتعداد قرابة 1.21 مليار[1][2]تعداد الهند عام 2011ق. 1.32 مليار[3]تقديرات عام 2017ق. 30.8 مليون[4]مناطق الوجود المميزةبلد الأصل الهند البلد الهند  الهند نيبال 4,000,000[5] الولايات المتحدة 3,982,398[6] الإمار...

 

 

المواطنية الكندية مقالات مسلسلة هجرة الهجرة إلى كندا تاريخ الهجرة إلى كندا التأثير الإقتصاديقانون اللاجئين والهجرةقانون الهجرة، 1976قانون الهجرة وحماية اللاجئينالمقيم الدائم المقيم المؤقتبطاقة الإقامة الدائمة الكندية قانون الجنسية الكندي تاريخ قانون الهجرةمرسوم المو�...

Terminal JajagSub Terminal Penumpang Tipe CLokasiJalan Yos Sudarso Nomor 69, Dusun Kampung Baru, Desa Jajag, Kecamatan Gambiran, Kabupaten Banyuwangi, Provinsi Jawa Timur, Kodepos 68486 IndonesiaKoordinat8°26′13″S 114°10′58″E / 8.437056°S 114.182750°E / -8.437056; 114.182750Koordinat: 8°26′13″S 114°10′58″E / 8.437056°S 114.182750°E / -8.437056; 114.182750Pemilik Pemerintah Kabupaten BanyuwangiOperator Dinas Perhubung...

 

 

Peta Thiéfosse. Thiéfosse merupakan sebuah komune di departemen Vosges yang terletak pada sebelah timur laut Prancis. Lihat pula Komune di departemen Vosges Referensi INSEE lbsKomune di departemen Vosges Les Ableuvenettes Ahéville Aingeville Ainvelle Allarmont Ambacourt Ameuvelle Anglemont Anould Aouze Arches Archettes Aroffe Arrentès-de-Corcieux Attignéville Attigny Aulnois Aumontzey Autigny-la-Tour Autreville Autrey Auzainvilliers Avillers Avrainville Avranville Aydoilles Badménil-aux...

 

 

Гейдж Голайтлиангл. Gage Golightly Дата рождения 5 сентября 1993(1993-09-05) (30 лет) Место рождения Грасс Вэлли, Калифорния, США Гражданство  США Профессия актриса Карьера 2002 — настоящее время IMDb ID 1463605 Гейдж Голайтли (англ. Gage Golightly) — американская актриса, известна...

Jewish educational institution for Torah study This article is about the Jewish educational system. For other uses, see Yeshiva (disambiguation). Part of a series onJews and Judaism Etymology Who is a Jew? Religion God in Judaism (names) Principles of faith Mitzvot (613) Halakha Shabbat Holidays Prayer Tzedakah Land of Israel Brit Bar and bat mitzvah Marriage Bereavement Baal teshuva Philosophy Ethics Kabbalah Customs Rites Synagogue Rabbi Texts Tanakh Torah Nevi'im Ketuvi...

 

 

Defunct major soccer league in the United States and Canada This article is about the original national Division I soccer league that was active from 1968 to 1985. For the league founded in 2009, see North American Soccer League (2011–2017). Football leagueNorth American Soccer LeagueNASL logo (1975–1984)[1]FoundedDecember 7, 1967; 56 years ago (1967-12-07)[2]FoldedMarch 28, 1985; 39 years ago (1985-03-28)CountryUnited StatesOther club(s...

 

 

Highway in Texas U.S. Highway 290US 290 highlighted in redRoute informationAuxiliary route of US 90Maintained by TxDOTLength261.187 mi[1] (420.340 km)Existed1927[1]–presentMajor junctionsWest end I-10 near SegoviaMajor intersections US 87 in Fredericksburg US 281 in Johnson City I-35 in Austin US 183 in Austin US 77 in Giddings East end I-610 in Houston LocationCountryUnited StatesStateTexasCountiesKimble, Gillespie, Bla...

Human settlement in EnglandTooting BecSt Anselm's Church and the tube stationTooting BecLocation within Greater LondonOS grid referenceTQ275715London boroughWandsworthCeremonial countyGreater LondonRegionLondonCountryEnglandSovereign stateUnited KingdomPost townLONDONPostcode districtSW17Dialling code020PoliceMetropolitanFireLondonAmbulanceLondon UK ParliamentTootingLondon AssemblyMerton and Wandsworth List of places UK England London 51°25′43�...

 

 

Questa voce sugli argomenti igiene e idraulica è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Water e bidet in una moderna stanza da bagno I sanitari (o ceramiche) sono i manufatti che solitamente arredano le stanze da bagno delle abitazioni moderne di molti paesi del mondo. Sono il vaso sanitario, il lavabo, la vasca da bagno, piatto doccia e, negli stati dove questo accessorio è diffuso, il bidet. Per il tipo di materiale maggiormente utilizzato p...

 

 

Scandals involving the Reagan administration This article is part of a series aboutRonald Reagan Entertainment and personal Filmography Bibliography Death Eponyms Honors Depictions music Residences Birthplace of Ronald Reagan Ronald Reagan Boyhood Home Rancho del Cielo 668 St. Cloud Road 33rd Governor of California Governorship 1969 People's Park protest Elections 1966 1970 40th President of the United States Presidency timeline Transition Inaugurations first second Presidential library Tenur...

Austrian occultist and writer (1848–1919) Guido von Listvon List in 1913BornGuido Karl Anton List(1848-10-05)5 October 1848Vienna, Austrian EmpireDied17 May 1919(1919-05-17) (aged 70)Berlin, German ReichOccupationsOccultistnovelist Guido Karl Anton List (5 October 1848 – 17 May 1919), better known as Guido von List, was an Austrian occultist, journalist, playwright, and novelist. He expounded a modern Pagan new religious movement known as Wotanism, which he claimed was the revival of...

 

 

Francesco Militovescovo della Chiesa cattolicaRitratto di S.E. Mons. Francesco Milito Caritas Veritas Unitas  TitoloOppido Mamertina-Palmi Incarichi attualiVescovo emerito di Oppido Mamertina-Palmi (dal 2023) Incarichi ricoperti Vescovo di Oppido Mamertina-Palmi (2012-2023) Vicepresidente della Conferenza episcopale calabra (2013-2023)  Nato7 luglio 1948 (76 anni) a Rossano Ordinato presbitero12 agosto 1972 dall'arcivescovo Antonio Cantisani Nominato vescovo4 aprile 2012 da pap...