
本书以计算技术与计算机的发展史为主线,介绍各发展阶段的计算需求以及为适应这样的需求所采用的主要计算技术、计算方法、关键人物及贡献,由此勾画出计算学科的基本轮廓,并分析了目前计算技术中存在的问题,介绍计算及计算机未来的发展方向。
本书适合作为高等院校计算机及相关专业导论性课程的教材,也可供感兴趣的读者阅读参考。本书是普通高等教育“十一五”国家级规划教材。
自计算机诞生以来,计算机的应用已经渗透到了各行各业,并且应用将进一步扩展。在我国,计算机专业教育随着计算机技术的发展已成为我国高校中最大的专业,开设计算机专业的学校最多,计算机专业的在校学生人数最多。
本书作为计算学科(或称计算机学科)导论性课程的教材,在内容组织上主要考虑了3个方面的因素。首先,计算机科学技术的发展为我们提供了大量的素材,要思考如何使选择的素材既适合于导论性质又能反映学科的整体发展。其次,计算学科的每个学科方向都涉及大量的知识,一本导论性的书不应该面面俱到,成为后继课程的索引。第三,计算学科的发展非常迅速,导论性课程应该在介绍学科基本知识的同时关注学科的发展方向,提高学生学习的兴趣。为此,本教材按计算学科发展的纵横两个方面来组织内容。纵的方面,以计算学科发展的历史为线索,涉及手工计算、机械计算、电子计算、智能计算和生物计算,力求阐明计算学科发展的历史必然性。横的方面,对计算学科发展的每个历史阶段,讨论其计算方法和计算工具。计算方法是计算的思想与灵魂,计算工具用于实现计算方法,计算工具的发展又催生新的计算方法产生。因此,计算方法与计算工具的发展变化成为计算学科发展的根本动力。
本书共分7章。
第1章介绍计算的概念及计算学科的基本内容。以CC2004为基础,介绍了计算学科的专业方向和知识领域,以及我国计算机学科的专业设置。
第2章讨论手工计算。从计算需求、工具的角度来认识手工计算; 从计算能力、方便性、存储特征等角度来探讨手工计算的特点,并说明它们在计算学科形成发展中的启迪、影响、作用,以及可供借鉴的思想和方法。
第3章讨论计算的机械化。概括讨论机械式计算的历史和思想方法、计算机械化的意义以及对计算学科发展的影响,指出人类对计算机械化、自动化的渴求与探索。从帕斯卡的机械式加法机到朱斯的系列计算装置来讨论计算技术与计算工具的发展变化过程。
第4章讨论计算的自动化——计算机硬件。从计算理论(计算技术)和计算硬件(计算工具)的角度论述数字电子计算机出现的历史必然性,指出数字电子计算机应具备的功能和性能,以及为达到这样的功能与性能而形成的计算机硬件的基本组成、工作原理与实现方法。
第5章介绍计算自动化过程中的计算机软件。从方便管理和使用的角度介绍计算机软件组成与开发技术的发展。从计算过程的抽象、表示和实现方法等方面阐述了计算机软件设计的思想和过程。
第6章讨论计算的智能化。从人类逻辑思维过程模拟的角度介绍了计算智能化的原理,以人工智能、专家系统为例介绍了计算智能化的思想与实现方法。最后讨论了第五代计算机的研究开发过程,给出了它的系统结构和软件结构,分析了第五代计算机失败的原因。
第7章讨论了生物计算模型。生物体的并行计算能力是现代数字电子计算机无法比拟的。本章讨论了3种典型的生物计算模型(人工神经网络、DNA计算与膜计算)的思想、原理、方法及实现技术。DNA计算与膜计算的研究历史很短,要实现通用计算硬件还有许多的困难,但是它们的思想和原理是可以借鉴的。膜计算是从2000年才开始研究的生物计算模型。它把细胞层面上的化学反应与物质流动性当做计算过程来抽象,膜内的化学反应就是我们通常理解的计算过程,而物质在不同膜之间流动则相对于通常意义计算系统中的消息传递,整个生物体的皮肤相当于一个计算系统。已有的研究表明,膜计算可以以极大的并行度来实现,从而获得远远超过传统电子计算机的计算能力。
使用本书需要36~48学时,第6、第7章可作为选讲的内容。讲授的过程中应注意增加一些科学家的故事、重要的历史事件等内容,以提高学生学习的兴趣,同时让学生感受科学家思考问题的方法。
在本书的编写和出版过程中得到了清华大学出版社和重庆大学教材出版基金的大力支持。在此对所有支持本书出版的领导、老师、学生和朋友们表示衷心的感谢。
由于时间紧迫,加之笔者水平有限,错误和笔误在所难免,敬请广大读者批评指正。本书的配套课件可以从清华大学出版社网站http://www.tup.tsinghua.edu.cn下载。如果在本书的使用中遇到任何问题,请联系fuhy@tup.tsinghua.edu.cn。
作者
2008年5月
第1章绪论
1.1计算的概念
1.1.1计算与计算模型
1.1.2计算的复杂性
1.1.3计算的要素
1.2计算学科
1.2.1计算作为一门学科
1.2.2计算学科的知识领域
1.2.3计算学科的二维定义矩阵
1.3计算学科与计算机学科
1.3.1计算学科与计算机学科的关系
1.3.2我国计算机学科专业设置
1.4本章小结
思考题
第2章手工计算
2.1记数与计算的需求
2.1.1实物记数
2.1.2结绳记数
2.1.3刻痕记数
2.1.4算筹记数
2.2算盘
2.2.1算盘的发展
2.2.2中国算盘指法
2.2.3中国算盘口诀
2.2.4会计算盘指法
2.2.5算盘小结
2.3数与计算式
2.3.1中国数字与数码
2.3.2阿拉伯数码
2.3.3数制的发展
2.3.4十进制与二进制
2.3.5计算式
2.4本章小结
思考题
计
算机科学与技术概论
第3章计算的机械化
3.1手动齿轮计算装置
3.1.1帕斯卡的加法器
3.1.2莱布尼茨的乘法器
3.1.3机械计算器的商业化
3.2程序控制计算机
3.2.1杰卡德提花机
3.2.2巴贝奇的差分机和分析机
3.3模拟计算机
3.4机电计算机
3.4.1机电计算机的诞生环境
3.4.2霍尔瑞斯的电动制表机
3.4.3祖斯的Z系列计算机
3.4.4艾肯的自动顺序控制计算机
3.5数据的存储与输入输出
3.6计算的复杂性思考
3.7本章小结
思考题
第4章计算的自动化——计算机硬件
4.1可计算性与图灵机
4.1.1可计算性理论的研究
4.1.2图灵等的贡献
4.1.3λ演算
4.2ENIAC——第一台数字电子计算机
4.2.1电子管的发明
4.2.2ABC计算机
4.2.3ENIAC的诞生
4.3冯·诺依曼与计算机体系结构
4.3.1冯·诺依曼介入ENIAC的改进前后
4.3.2冯·诺依曼体系结构要点
4.3.3冯·诺依曼体系结构的意义
4.3.4冯·诺依曼体系结构的不足
4.4计算机硬件体系结构的发展
4.4.1电子管与第一代计算机
4.4.2晶体管与第二代计算机
4.4.3集成电路与第三代计算机
4.4.4VLSI和第四代计算机
4.4.5人工智能与第五代计算机
4.4.6其他计算机
4.5计算机系统及其相关学科
4.5.1数字逻辑与数字电路
4.5.2集成电路与光电技术
4.5.3量子计算与分子计算
4.5.4信息网络与网络计算
4.6本章小结
思考题
第5章计算的自动化——计算机软件
5.1计算的抽象与表示
5.1.1计算的抽象
5.1.2算法及其表示
5.1.3数据的表示
5.2计算机程序
5.2.1程序设计语言
5.2.2程序的解释与编译
5.2.3调试与运行
5.3计算机软件
5.3.1软件生存周期
5.3.2软件开发方法
5.3.3软件结构模式
5.3.4软件工具
5.4关于软件的思考
5.4.1软件危机
5.4.2软件工程
5.4.3知识产权和软件专利
5.5本章小结
思考题
第6章计算的智能化
6.1机器智能
6.1.1人工智能的提出
6.1.2人工智能的发展历史
6.1.3智能测试
6.2智能计算的原理
6.2.1思维的计算机模拟
6.2.2推理系统的结构
6.2.3产生式系统
6.2.4专家系统
6.3第五代计算机
6.3.1研究目标与计划
6.3.2系统结构
6.3.3软件结构
6.3.4关于第五代计算机的思考
6.4本章小结
思考题
第7章生物计算模型
7.1人工神经网络
7.1.1神经网络与人工神经网络
7.1.2神经网络计算机的特点
7.1.3神经网络计算机的实现方式
7.1.4重要的神经网络模型
7.2DNA计算
7.2.1DNA计算基础
7.2.2DNA计算模型
7.2.3DNA计算的实现
7.3膜计算
7.3.1膜结构
7.3.2膜计算模型
7.3.3膜计算的发展
7.4本章小结
思考题
附录冯·诺依曼其人
参考文献