How to Design Programs - Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi

How to Design Programs

Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi

出版社

The MIT Press

出版时间

2001-02-12

ISBN

9780262062183

评分

★★★★★
书籍介绍
This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills--critical reading, analytical thinking, creative synthesis, and attention to detail--that are important for everyone, not just future computer programmers. The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples; how to develop an outline of the solution, based on the analysis; how to finish the program; and how to test. Each step produces a well-defined intermediate product. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks. All the book's support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects. -- amazon.com
AI导读
核心看点
  • 聚焦程序设计过程,培养批判性思维与细节关注能力
  • 提供从问题分析到测试的完整设计指南与中间产物
  • 通过Scheme语言教学,强调函数式编程与递归思维
适合谁读
  • 零基础编程初学者,尤其是希望系统学习编程思维者
  • 非计算机专业但需进行专业计算程序开发的人员
  • 准备阅读SICP前,希望熟悉Racket环境的进阶读者
读前提醒
  • 内容详尽且略显啰嗦,需耐心跟随步骤逐步练习
  • 建议直接阅读免费在线的第二版,使用Racket环境
  • 非初学者可能觉得例子简单,可快速浏览核心思想
读者共识
  • 被誉为编程入门神作,力荐给所有想学编程的人
  • 相比SICP更友好,是学习函数式编程的优秀跳板
  • 虽被嫌啰嗦,但Step by Step的教学风格极适合新手

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "In contrast to lists, structures deal with value extractions as a constant time operation. In general, what we really wish to have in a programming language is: 1.a class of compound values size with constant lookup time, 2.based on ``keys.'' Because the problem is so common, Scheme and most other l"
  • "DrScheme also provides a vector analogue to build-list. It is called build-vector. Here is how it works: 1.(build-vector N f) = (vector (f 0) ... (f (- N 1))) That is, build-vector consumes a natural number N and a function f on natural numbers. It then builds a vector of N items by applying f to 0,"
  • "<vdf>= (define <var> <val>) | (define <var> <exp>);定义函数语法糖 | (define-struct <var> (<var> ...<var>)) <val>= <con> | <lst> | <prm> | <fun> | <void> <lst>= empty | (cons <val> <lst>) <fun>= (lambda (<var> ...<var>) <exp>) <exp>= <var> | <con> | <prm> | (<exp> <exp> ...<exp>) | (cond (<exp> <exp>) ...(<"
  • "We rewrite subexpressions in a left-to-right and top-to-bottom order. At each stage in the evaluation, we best start by underlining the subexpression that must be evaluated next."
  • "Scheme and many other languages typically provide built-in functions for comparing two structural values extensionally and intensionally. The corresponding Scheme functions are equal? and eq?. In Scheme, both functions are applicable to all values, whether mutators and selectors are accessible or hi"
  • "A variable is a placeholder that stands for an unknown quantity. Programs are Function Plus Variable Definitions"
  • "define-struct posn (x y)) When DrScheme evaluates this structure definition, it creates three operations for us, which we can use to create data and to program: make-posn, the CONSTRUCTOR, which creates posn structures; posn-x, a SELECTOR, which extracts the x coordinate; posn-y, also a selector, wh"
  • "The first category is that of variables, which are the names of functions and values. The second introduces constants: boolean, symbolic, and numeric constants. As indicated before, Scheme has a powerful number system, which is best introduced gradually by examples. The final category is that of pri"
用户评论
探求程序设计的本源……入门好书,就算你是牛人,也要推荐看看!
利用scheme教授编程为数不多的教材,大概翻了下,基本是《SICP》前三章的详细讲解版,但是用了drscheme作为运行平台。
没看完就结课系列(
scheme果然是很经典,不过比SICP要简单呢
好书好书好书!!!!
算了吧,别看了,买回来也不会认真读的。
在每个不同的阶段来回读一遍应该会有不一样的收获
Racket
挺好的
教你编程素养,怎么去设计编程 主要有,面向信息编程和数据是有状态的
收藏