《计算机科学导论(原书第3版)》是大学计算机相关专业的基础课教材,涉及计算机科学的各个方面。本书着重讲解基本概念而不是数学模型和技术细节,通过大量的图表和演示范例讲解计算机科学的基础知识;每章后面的关键术语、小结和练习有助于读者掌握和复习知识要点。本书内容丰富,通熟易懂,既适合当作大专院校的计算机基础课教材,也可作为一般的计算机基础入门读物。
计算机在我们的日常生活中扮演了一个重要的角色,而且在未来也将一样。计算机科学是一个充满了挑战和发展机遇的年轻学科。计算机网络将处在地球上每一个角落的我们连接在一起。虚拟现实创造了炫目的三维图像。宇宙空间探险的成功也部分归功于计算机的发展。计算机创建的特技效果改变了电影行业。计算机在遗传学研究中也扮演了一个重要的角色。
本书读者对象这本书同时面向学术的和专业的读者。本书可以作为感兴趣的专业人士的自学指南。作为教材,本书包含一学期(semester)或一学季(quarter)的教学内容,是计算机科学的入门教程。
本书是基于美国计算机学会( ACM)推荐的CSO课程设计的。它从广度上覆盖了计算机科学所有的领域。其他领域的学生需要对计算机科学有大致的了解时,无论是从本书中选读部分内容还是通读全书,都有帮助。
第3版中的改动在本版中我进行了以下几类修改。
1.修订的章节和附录针对教学目的,对本书中的两章和附录进行了全面的修订。
(1)第6章为了更便于初次接触计算机网络的学生进行理解,第6章的内容采用自顶向下的教学方法进行修订。
(2)第16章1.章节章节的作用是提供基本的学习材料,但并不是书中的每一个章节都对学生有利用价值。教这门课的老师可以自主选择教学用的章节。我们会在后面提供一份教学指南。
出版者的话
译者序
前言
第1章绪论
1.1图灵模型
1.1.1数据处理器
1.1.2可编程数据处理器
1.1.3通用图灵机
1.2冯·诺依曼模型
1.2.1 4个子系统
1.2.2存储程序概念
1.2.3 指令的顺序执行
1.3计算机组成部分
1.3.1计算机硬件
1.3.2数据
1.3.3计算机软件
1.4历史
1.4.1机械计算机器(1930年以前)
1.4.2 电子计算机的诞生(1930~
1950年)
1.4.3计算机的诞生(1950年至今)
1.5社会问题和道德问题
1.5.1社会问题
1.5.2道德问题
1.6计算机科学作为一门学科
1.7课程纲要
1.7.1 第一部分:数据的表示与运算
1.7.2第二部分:计算机硬件
1.7.3第三部分:计算机软件
1.7.4第四部分:数据组织与抽象
1.7.5第五部分:高级话题
1.8章末材料
1.9练习
第2章数字系统
2.1引言
2.2位置化数字系统
2.2.1 十进制系统(以10为底)
2.2.2二进制系统(以2为底)
2.2.3 十六进制系统(以16为底)
2.2.4八进制系统(以8为底)
2.2.5 4种位置化数字系统的小结
2.2.6转换
2.3非位置化数字系统
2.4章末材料
2.5练习
第3章数据存储
3.1数据类型
3.2存储数字
3.2.1存储整数
3.2.2 3种系统的比较
3.2.3 实数
3.3存储文本
3.4存储音频
3.4.1.采样
3.4.2量化
3.4.3编码
3.4.4声音编码标准
3.5存储图像
3.5.1光栅图
3.5.2矢量图
3.6存储视频
3.7章末材料
3.8练习
第4章数据运算
4.1逻辑运算
4.1.1位层次上的逻辑运算
6.7.1导向介质
6.7.2非导向介质
6.8章末材料
6.9练习
第7章操作系统
7.1引言
7.1.1操作系统
7.1.2自举过程
7.2演化
7.2.1批处理系统
7.2.2分时系统
7.2.3个人系统
7.2.4并行系统
7.2.5分布式系统
7.2.6实时系统
7.3组成部分
7.3.1 用户界面
7.3.2 内存管理器
7.3.3进程管理器
7.3.4 文件管理器
7.4主流操作系统
7.4.1 UNIX
7.4.2 Linux
7.4-3 WindOWS
7.5章末材料
7.6练习
第8章算法
8.1概念
8.1.1 非正式定义
8.1.2定义动作
8.1.3细化
8 .1.4泛化
8.2三种结构
8.2.1顺序
8.2.2一判断
8.2.3循环
8.3算法的表示
8.3.1 UML
8.3.2伪代码
8.4更正式的定义
8.4.1定义良好
8.4.2明确步骤
8.4.3产生结果
8.4.4在有限的时间内终止
8.5基本算法
8.5.1求和
8.5.2乘积
8.5.3 最大和最小
8.5.4排序
8.5.5查找
8.6子算法
8.7递归
8.7.1迭代的定义
8.7.2递归的定义
8.8章末材料
8.9练习
第9章程序设计语言
9.1演化
9.1.1机器语言
9.1.2汇编语言
9.1.3 高级语言
9.2翻译
9.2.1编译
9.2.2解释
9.2.3 翻译过程
9.3编程模式
9.3.1过程式模式
9.3.2面向对象模式
9.3.3 函数式模式
9.3.4说明式模式
9.4共同概念
9.4.1标识符
9.4.2数据类型
9.4.3语句
9.5章末材料
9.6练习
第10章软件工程
10.1软件生命周期
10.2分析阶段
10.2.1 面向过程分析
10.2.2 面向对象分析
10.3设计阶段
10.3.1 面向过程设计
10.3.2 面向对象设计
10.4实现阶段
10.4.1语言的选择
10.4.2软件质量
10.5测试阶段
10.5.1 白盒测试
10.5.2黑盒测试
10.6文档
10.6.1用户文档
10.6.2 系统文档
10.6.3技术文档
10.7章末材料
10.8练习 一
第11章数据结构
11.1数组
11.1.1数组名与元素名
11.1.2多维数组
11.1.3存储配置
11.1.4数组操作
11.1.5数组的应用
11.2记录
11.2.1 记录名与域名
11.2.2记录与数组的比较
11.2.3记录数组
11.2.4数组与记录数组
11.3链表
11.3.1数组与链表
11.3.2链表名与节点名
11.3.3链表操作
11.3.4链表的应用
11.4章末材料
11.5练习
第1 2章抽象数据类型
12.1背景
12.1.1 简单抽象数据类型
12.1.2复杂抽象数据类型
12.1.3定义
12.1.4抽象数据类型的模型
12.1.5实现
12.2栈
12.2.1栈的操作
12.2.2栈的抽象数据类型
12.2.3栈的应用
12.2.4栈的实现
12.3队列
12.3.1 队列的操作
12.3.2队列抽象数据类型
12.3.3 队列的应用
12.3.4 队列的实现
12.4广义线性表
12.4.1 广义线性表的操作
12.4.2广义线性表的抽象数据类型
12.4.3 广义线性表的应用
12.4.4广义线性表的实现
12.5树
12.5.1二叉树
12.5.2二叉树的操作
12.5.3二叉树的应用
12.5.4二叉树的实现
12.5.5二叉搜索树
12.5.6二叉搜索树的抽象数据
类型
12.5.7二叉搜索树的实现
12.6 图
12.7章末材料
12.8练习
第1 3章文件结构
13.1引言
13.¨顺序存取
13.1.2随机存取
13.2顺序文件
13.3索引文件
13.4散列文件
13.4.1散列方法
13.4.2冲突
13.5目录
13.6文本文件与二进制文件
13.6.1文本文件
13.6.2二进制文件
13.7章末材料
13.8练习
第14章数据库
14.1引言
14.1.1定义
14.1.2数据库的优点
14.1.3数据库管理系统
14.2数据库体系结构
14.2.1 内层
14.2.2概念层
14.2.3外层 一
14.3数据库模型
14.3.1层次模型
14.3.2 网状模型
14.3.3 关系模型
14.4关系数据库模型
14.5关系的操作
14.5.1 结构化查询语言
14.5.2插入
14.5.3删除
14.5.4更新
14.5.5选择
14.5.6投影
14.5.7连接
14.5.8并
14.5.9交
14.5.10差
14.6数据库设计
14.6.1 实体关系模型
14.6.2从E-R图至0关系
14.6.3规范化
14.7其他数据库模型
14.8章末材料
14.9练习
第1 5章数据压缩
15.1引言
15.2无损压缩
15.2.1 游程长度编码
15.2.2赫夫曼编码
15.2.3 LempelZiv编码
15.3有损压缩方法
15.3.1 图像压缩:JPEG-
15.3.2视频压缩:MPEG
15.3.3 音频压缩
15.4章末材料
15.5练习
第16章安全
16.1引言
16.1.1安全目标
16.1.2攻击
16.1.3服务和技术
16.2机密性
16.2.1 对称密钥密码术
16.2.2非对称密钥密码术
16.3其他安全服务
16.3.1 消息完整性
16.3.2消息验证
16.3.3数字签名
16.3.4实体验证
16.3.5 密钥管理
16.4防火墙
16.4.1 包过滤防火墙
16.4.2代理防火墙
16.5章末材料
16.6练习
第1 7章计算理论
17.1引言
?17.2简单语言
17.2.1递增语句
17.2.2递减语句
17.2.3循环语句
17.2.4 简单语言的威力
17.3图灵机
17.3.1 图灵机组成部件
17.3.2对简单语言的模拟
17.3.3邱奇一图灵论题
17.4歌德尔数
17.4.1表示一个程序
17.4.2翻译一个数字
17.5停机问题
17.6问题的复杂度
17.6.1 不可解问题
17.6.2可解问题
17.7章末材料
17.8练习
第1 8章人工智能
18.1引言
18.1.1什么是人工智能
18.1.2人工智能简史
18.1.3 图灵测试
18.1.4智能体
18.1.5编程语言
18.2知识表示
18.2.1语义网
18.2.2框架
18.2.3谓词逻辑
18.2.4基于规则的系统
18.3专家系统
18.3.1抽取知识
18.3.2抽取事实
18.3.3体系结构
18.4感知 -
18.4.1图像处理
18.4.2语言理解
18.5搜索 -
18.6神经网络
18.6.1 生物神经元
18.6.2感知器
18.6.3多层网络
18.6.4应用
18.7章末材料
18.8练习
附录A Unicode
附录B UML
附录C伪代码
附录D结构图
附录E布尔代数和逻辑电路
附录FC、C++和Java程序示例
附录G数学知识
附录H误差检测和校正
缩略语
术语表