您的浏览历史

程序设计方法

促销活动
  • [本书]参加人民邮电出版社满80元赠书活动
精彩评论

基本信息

内容简介回到顶部↑

本书以Scheme语言为基础介绍计算和程序设计的一般理论和实践。
本书由8个部分和7个独立的章节(第8、13、18、24、29、33、38章)组成。8个部分主要讨论程序设计,独立章节则介绍一些与程序设计和计算相关的话题。本书第1至第3部分介绍了基于数据驱动的程序设计基础。第4部分介绍了程序设计中的抽象问题。第5部分和第6部分是与递归及累积相关的内容。本书的最后两部分说明了设计程序的意义,阐述了如何应用前6个部分所描述的程序设计诀窍,以及使用赋值语句必须特别小心的一些问题。
本书可作为高等院校计算机科学与技术专业“程序设计导论”和“计算导论”的教材和教学参考书,也可作为函数式语言和Scheme语言的入门教材。

目录回到顶部↑

第一部分 简单数据的处理
第1章 学生、教师和计算机 3
第2章 数、表达式和简单程序 5
2.1 数和算术运算 5
2.2 变量和程序 6
2.3 字处理问题 9
2.4 错误 10
2.5 设计程序 12
第3章 程序就是函数加上变量定义 15
3.1 函数复合 15
3.2 变量定义 17
3.3 函数复合练习 18
第4章 条件表达式和函数 20
4.1 布尔类型和关系 20
4.2 函数和条件测试 22
4.3 条件和条件函数 25
4.4 条件函数的设计 27
第5章 符号信息 31
第6章 复合数据之一:结构体 34
6.1 结构体 34

前言回到顶部↑

向儿童传授程序设计知识有悖于现代教育学。制定计划、学习教规、注重细节、严格自律有何乐趣?
——艾伦·佩利(1966年图灵奖获得者), 《编程警句》
许多职业都需要进行某种形式的计算机编程。会计师使用电子表格和字处理软件编程,摄影师使用图片编辑器编程,音乐家使用音响合成器编程,职业程序员使用计算机编程。编程已成为一种人人都需要掌握的技能。
编写程序并不仅仅是一种职业技能。事实上,好的编程是件有趣的事,是一种创造性的情感发泄,也是一种用有形的方式表达抽象思维的方法。程序设计可以教会人们多种技能,如阅读判断、分析思考、综合创造以及关注细节,等等,这些技能对各种类型的职业来说都是重要的。
所以,在普通教育中,程序设计课程的地位应该和数学、语文一样重要。或者用更简洁的话来说,就是
每个人都应该学习如何设计程序。
一方面,程序设计跟数学一样,可以训练人的分析能力,不同的是,程序设计是一种积极的学习方法。在与软件的互动过程中,学生可以直接得到反馈,进行探索、实验和自我评价。与钻研数学习题相比,程序设计的成果,即计算机软件,更有趣,也更有用,它们能极大地增加学生的成就感。另一方面,程序设计跟语文一样,可以增强学生的阅读和写作能力。即使是最小的编程任务,也是以文字形式表达的,没有良好的判断和阅读技能不可能设计出符合规范的程序,反之,好的程序设计方法会迫使学生用适当的语言清晰地表达他的思考过程。
本书是基本的程序设计教科书,讨论如何从问题描述产生组织严谨的程序。本书把注意力集中于程序的设计过程,不强调算法和语言细节,不注重于某个特定的应用领域。这门介绍性的程序设计课程有两个根本性的创新。创新之一是给出一系列明确的程序设计指导。现有的程序设计课程往往趋向于给出含糊的、不明确的建议,如“自上而下设计”或者“结构化程序设计”等。与此不同,本书给出了一系列程序设计指导,由此引导学生一步一步地从问题的描述出发,通过明确定义的中间过程,得出程序。在这个过程中,学生将学会阅读、分析、组织、实验和系统思维能力。创新之二是使用了一个全新的程序设计环境。过去的编程教材往往简单地假设学生有能力使用某种专业程序开发环境,而忽略程序设计环境对学生学习的影响。本书为初学者提供的程序设计环境会随着你所掌握的知识的多少而改进,该环境最终可以支持完整的Scheme语言,使用该语言既可以编写大型程序又能编写脚本程序,可以完成所有领域的编程任务。
本书讨论的编程指导以程序设计诀窍(programming design recipe)阐述。设计诀窍指导程序设计初学者逐步掌握问题求解的过程。有了设计诀窍,程序设计的初学者就不用再盯着空白的纸张或计算机屏幕发呆了,他们可以自我检查并核对设计诀窍,使用“问答”方式进行程序设计并取得进步。
本书通过识别问题的范畴来建立设计诀窍,而问题范畴的识别基于表示相关信息的数据类型。从该数据类型所描述的结构出发,你可以用一个清单推导出程序。图1给出的设计诀窍包含了程序设计的6个基本步骤,每个步骤都将产生定义明确的中间结果:
1.问题数据类型描述;
2.程序行为的非正式描述;
3.说明程序行为的例子;
4.开发程序的模板或视图;
5.把模板转换成完整的定义;
6.通过测试发现错误。
主要差异在于第1步和第4步之间的关系。
使用设计决窍不仅对初学者有所帮助,对教师也有益。教师可以使用清单检查初学者解决问题的能力,诊断错误所在,并提出具体的纠正措施。毕竟,设计决窍的每一阶段都会产生一个定义明确、可检查的结果。如果一个初学者遇到了困难,教师可以借助清单检查他的中间结果,并判断问题之所在。教师还可以针对程序设计决窍中某一特定的过程给学生提供指导,提出合适的问题,并推荐额外的练习题。
为什么每个人都应该学3-3编写程序
想象会把不知名的事物用一种形式呈现出来,诗人的笔会
评论交流

共有27人开贴评论  43人参与评论  26人参与打分 查看

19人
 73%
用户平均打分
我要写评论 help如何参与评论和打分
6人
 23%
1人
 3%
0人
 0%
0人
 0%

xialaxiu
三级评论员
精彩书评
评价等级:  
发表于:2005-6-9 23:23:00
说这本书没有完全将scheme的思想说出来,那应该是没问题的
但说到scheme的语法,要知道scheme的语法标准也不过100页
这本书基本上都涵盖了
跟sicp不大一样的是,htdp更基本,而前者在思想上更宽,所以我选择了这本书而不是sicp作为scheme的入门
当然还好的语法文本,比如r5rs和the scheme language
不过scheme跟许多语言最大的区别就是它的语法约束少
其实如果不做人工智能,很难领会者们语言的全部思想
因为Lisp/scheme的很多用途都在人工智能领域
而说到独特思维方式
我认为这属于个人而不是语言
因为包括递归,别的语言也能够实现
只要你有这样的想法,你完全可以用C来专门作面向对象,用java来专门作递归,用lisp作结构化编程
当然,我一向同意这么一个观点:没有脱离设计思想的语言,也没有脱离语言的设计思想
因为不同语言实现不同的内容的时候难易程度是不一样的
回复 ( 2条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得3支)  扔鸡蛋 (得1个)

rotin

二级评论员
  
发表于:2010-1-15 11:21:00
很适合入门,希望可以再版,看中文印刷版比看英文电子版舒服好得多,
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

lornally
一级评论员
评价等级:  
发表于:2008-10-28 14:02:00
刚刚分数打错了.
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

lornally
一级评论员
评价等级:  
发表于:2008-10-28 14:01:00
推荐评论到低在说些什么? 这样的评论竟然就推荐了!!!
基本上在说一些似是而非的东西, 言语空洞无物, 没看过sicp吧? 这本更宽, sicp更深. 递归? 有尾, 无尾大不相同,
面向对象? 结构化? 不过是糖衣而已.
老兄, 你到低看过书没有?
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

liweining

一级评论员
评价等级:  
发表于:2008-6-4 21:12:00
高价求购此书,有谁转让请联系lijianboqdu@yahoo.com.cn
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共27条)