程序设计方法

程序设计方法 (2001)

How to Design Programs
作者
马蒂亚斯·费莱森、Robert Bruce Findler、Matthew Flatt
首版
2001 年
国家/地区
美国
Open Library
8 个版本

百科

《程序设计方法》(英语:How to Design Programs, HtDP)是一本由麻省理工学院出版社出版、关于程序设计的教材。作者为马蒂亚斯·费莱森、Robert Bruce Findler、Matthew Flatt和Shriram Krishnamurthi。该书介绍了一种“设计诀窍”,从问题描述出发,通过六个步骤编写出完整的程序。

《程序设计方法》使用Scheme语言,和另外一本名著《计算机程序的构造和解释》类似。事实上,作者提供了专门为该书开发的程序设计环境,名为DrScheme。DrScheme提供了从初级到高级的一系列语言级别。

这本书的中文版由黄林鹏和朱崇恺翻译,人民邮电出版社出版。

以上文字摘自维基百科「程序设计方法」(去掉了参考文献等尾部小节),按 CC BY-SA 4.0 使用,作者为维基百科的各位编者。

中文维基百科的条目比较短,下面附上英文维基百科的内容(英文原文):

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. In addition to the for-purchase paperback, it is also freely available online.

The book is the first one to focus on the systematic design of code as opposed to the syntax of a currently popular programming language. Its key concept is that of a "design recipe", a six-step process for creating programs from a problem statement in a step-by-step fashion. While the book was originally used along with the education project TeachScheme! (renamed ProgramByDesign), it has been adopted at colleges and universities for teaching program design principles, including UBC's popular on-line course.

To support its approach to teaching programming, How to Design Program, HtDP introduces five beginner-level programming languages and provides a dedicated integrated development environment IDE.

The Design Recipe

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 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, enabling a programmer who encounters a new form of data to construct a program systematically.

The Teaching Languages and DrRacket

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", 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 continues on to describe the role of Scheme and the importance of an ideal programming environment, and concludes with an evaluation of content and student/faculty reaction to experience with SICP vs. HtDP.

One of the 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 more sophisticated domain knowledge than those of HtDP.

The paper claims the following four major efforts that the authors of HtDP have made to address perceived issues with SICP:

HtDP addresses explicitly, rather than implicitly, how programs should be constructed.

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.

以上文字摘自英文维基百科「How to Design Programs」(有删节,去掉了参考文献等尾部小节),按 CC BY-SA 4.0 使用,作者为维基百科的各位编者。

资料卡

原题
How to Design Programs
原作语言
英语
首次出版
2001 年 2 月 12 日
作品形式
教科书
首版出版社
麻省理工学院出版社
主题
计算机程序设计

资料卡来自 Wikidata Q5918555(CC0),众包数据,个别字段可能不全。

更多资料与书评

在哪读

中国大陆

点下面的平台会直接在平台里搜这本书,有没有货、有没有电子版以平台为准。

马蒂亚斯·费莱森 的其他作品

作者页 ›