描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302494942丛书名: 高等院校计算机教育系列教材
《计算机科学导论(第5版)》按照*高教司主持评审的《中国计算机科学与技术学科教程2002》进行编写,并参照美国计算机学会(Association for Computing Machinery,ACM)和美国电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)的计算教程2015,用逻辑严密的编写方式将读者引入本学科各个富有挑战性的领域之中。《计算机科学导论(第5版)》介绍了计算机体系结构与组织、程序设计语言、程序设计基础、算法与复杂性、信息管理、软件工程、操作系统、网络计算、图形学和可视化计算、人机交互、离散结构、数值计算科学、智能系统、社会和职业问题等14个核心体,力求让读者对计算机科学与技术专业有比较深入的了解,树立专业学习的责任感和自豪感。
《计算机科学导论(第5版)》是在《计算机科学导论》(第4版)的基础上进行修订的,主要修订内容有:删减了一些复杂的理论知识,增加了云计算与物联网、大数据分析、互联网 、数字地球、智慧城市、电子商务、智能家居、智能交通、3D打印技术、微博、微信等内容。本书介绍了计算机科学与技术的核心内容,使读者理解计算机系统的信息处理本质,掌握数据表达和数据加工表达的层次方法,了解计算机系统的功能组成,认识计算机科学与技术对人类社会的重要推动作用。
《计算机科学导论(第5版)》内容由浅入深、结构严谨,力求避免内容重复、结构松散等弊病。由于本书涉及的内容繁多,各高校任课教师可根据学生的情况,在学习本书时适当调整学时,对其中的一些章节也可以根据各高校的实际情况选用。
《计算机科学导论(第5版)》配备有电子教案,任课教师可根据学生的实际情况进行修改。《计算机科学导论(第5版)》的电子教案、课程大纲、授课计划、习题答案可以到清华大学出版社网站下载,也可以向作者索取。
《计算机科学导论(第5版)》结合理论讲解和实际应用,严格按照*高教司主持评审的《中国计算机科学与技术学科教程2002》进行编写,并参照美国计算机学会和美国电气和电子工程师协会的计算教程(Computing Curricula,CC),对计算机科学与技术进行系统化和科学化阐述。本书具体介绍了计算机体系结构与组织、程序设计语言、程序设计基础、算法与复杂性、信息管理、软件工程、操作系统、网络计算、图形学和可视化计算、人机交互、离散结构、数值计算科学、智能系统、社会和职业问题等14个核心体,目的是让读者了解计算机科学与技术学科的全貌。本书每章后均配有一定量的习题,以便读者巩固所学知识。
《计算机科学导论(第5版)》既可作为高等学校计算机专业学生的专业基础课程教材,也可作为网络工程、信息安全、物联网工程、通信工程、电子科学与技术、自动化等相关专业学生的计算机教材。
目 录
第1章 概述 1
1.1 计算的起源 1
1.2 计算机的产生和发展阶段 3
1.2.1 计算机产生之前的计算历史 3
1.2.2 计算机的产生 8
1.2.3 计算机的发展阶段 18
1.2.4 中国计算机的发展历程 19
1.3 计算机的应用领域和发展趋势 22
1.3.1 计算机的应用领域 22
1.3.2 计算机的发展趋势 24
1.4 计算学科 26
1.4.1 计算学科的定义 26
1.4.2 计算学科的本质 26
1.4.3 计算学科的三个过程 27
1.4.4 计算学科新的应用领域 27
1.5 计算机科学与技术学科的知识体系 29
1.5.1 计算机科学与技术学科的形成
与发展 29
1.5.2 计算机科学与技术学科的
定义 30
1.5.3 计算机科学与技术学科的根本
问题及研究范畴 30
1.5.4 计算机科学课程体系的核心
内容 30
1.6 计算机科学与技术学科的教育 33
1.6.1 教育的目的和基本要求 33
1.6.2 工科还是理科 33
1.6.3 理论与实践相结合 34
1.6.4 创新能力培养 35
1.6.5 学习方法 35
1.7 信息化的挑战 36
1.8 计算机产业 36
本章小结 37
习题 37
第2章 计算机体系结构与组织 40
2.1 数值数据 40
2.1.1 数的表示及数制转换 40
2.1.2 数的原码、反码和补码 45
2.1.3 定点数和浮点数 47
2.1.4 十进制数的编码 49
2.2 非数值数据 50
2.2.1 文字信息的编码 50
2.2.2 声音的编码 52
2.2.3 图形数据的编码 52
2.3 数据的机器编码 53
2.3.1 数据的机器级编码 53
2.3.2 数据的汇编级编码 54
2.4 数字逻辑与数字系统 54
2.4.1 基本逻辑关系及逻辑门 54
2.4.2 逻辑代数与逻辑函数 56
2.5 计算机系统的组成 59
2.5.1 图灵模型 59
2.5.2 冯·诺依曼模型 60
2.5.3 计算机系统的组成 61
2.5.4 计算机的硬件系统 61
2.5.5 计算机的软件系统 66
2.5.6 计算机的特点 66
2.5.7 计算机系统主要的技术指标 67
2.5.8 计算机的分类 68
2.5.9 计算机的基本工作方式 68
2.6 存储系统的结构 69
2.6.1 存储器的分类 69
2.6.2 存储系统的组织结构 70
2.7 输入/输出系统 71
2.8 多核技术 71
2.9 高性能计算机 72
2.10 并行计算机 72
2.11 分布式系统 73
本章小结 73
习题 73
第3章 程序设计语言 76
3.1 程序设计语言概述 76
3.1.1 程序的概念 76
3.1.2 计算机程序设计语言 76
3.1.3 高级语言程序设计的基本
内容 79
3.1.4 高级语言的数据表示手段 81
3.2 声明和类型 83
3.3 类型系统 83
3.4 编译原理 83
3.4.1 编译程序概述 83
3.4.2 词法分析 85
3.4.3 语法分析 85
3.4.4 语义处理 86
3.4.5 中间代码生成 87
3.4.6 中间代码优化 87
3.4.7 目标代码生成 88
3.4.8 编译技术的新发展 88
3.5 程序设计语言的设计 89
本章小结 89
习题 89
第4章 程序设计基础 92
4.1 程序设计 92
4.2 程序设计方法 92
4.2.1 结构化程序设计方法 93
4.2.2 面向对象的程序设计方法 95
4.2.3 函数程序设计 98
4.2.4 程序设计风格 99
4.2.5 程序设计举例 100
4.3 基本数据结构 101
4.3.1 基本概念 101
4.3.2 几种典型的数据结构 102
4.3.3 查找 106
4.3.4 排序 107
4.4 事件驱动程序设计 109
本章小结 110
习题 110
第5章 算法与复杂性 112
5.1 算法分析 112
5.1.1 算法 112
5.1.2 算法的特性 113
5.2 常用算法 114
5.3 算法描述工具 116
5.4 算法的评价 118
5.5 算法设计策略 119
5.6 分布式算法 119
5.7 可计算性理论基础 120
5.8 NP问题 120
5.9 自动机理论 121
5.10 加密算法 121
5.11 几何算法 122
5.12 并行算法 123
本章小结 123
习题 123
第6章 信息管理 125
6.1 模型与信息系统 125
6.1.1 信息 125
6.1.2 信息模型 125
6.1.3 信息系统 126
6.2 数据库系统 126
6.2.1 数据库 126
6.2.2 数据管理技术的发展 127
6.2.3 数据模型 128
6.3 关系数据库 131
6.3.1 关系数据库 131
6.3.2 关系模型与关系模式 132
6.4 数据库查询语言SQL 135
6.4.1 SQL的特点 135
6.4.2 SQL的功能 135
6.4.3 SQL的基本概念 136
6.5 关系数据库设计 136
6.5.1 关系数据库的设计原则 136
6.5.2 关系数据库的设计步骤 136
6.6 数据库管理 137
6.6.1 DBA和数据字典 137
6.6.2 数据库的安全性控制 138
6.6.3 事务处理 138
6.6.4 数据库的完整性控制 139
6.7 常用数据库管理系统 139
6.8 数据库的新发展 141
6.8.1 分布式数据库 141
6.8.2 空间数据库 141
6.8.3 多媒体数据库 141
6.8.4 数据仓库 142
6.8.5 信息存储与检索 142
6.8.6 超文本和超媒体 142
6.8.7 多媒体信息与多媒体系统 143
6.8.8 数字图书馆 143
6.8.9 数字地球与智慧城市 144
本章小结 144
习题 145
第7章 软件工程 147
7.1 软件工程 147
7.1.1 软件危机 147
7.1.2 软件工程的基本概念 148
7.1.3 软件工程过程 150
7.1.4 软件生命周期 150
7.2 软件开发模型 152
7.2.1 瀑布模型 152
7.2.2 快速原型法模型 153
7.2.3 螺旋模型 154
7.2.4 喷泉模型 155
7.2.5 转换模型 156
7.2.6 智能模型 157
7.3 软件开发方法 157
7.3.1 面向数据结构方法 157
7.3.2 统一建模语言 158
7.3.3 软件复用和构件技术 158
7.4 软件质量评价和保证 160
7.4.1 软件质量的定义 160
7.4.2 软件质量的度量和评价 160
7.4.3 软件质量保证 161
7.5 软件复杂性 162
7.5.1 软件复杂性的基本概念 162
7.5.2 软件复杂性的度量方法 163
7.6 软件项目管理 163
7.6.1 软件项目计划概要 163
7.6.2 软件项目计划的内容 163
7.6.3 软件工程规范 164
7.6.4 软件开发成本估算 164
7.6.5 风险分析 164
7.6.6 软件项目进度安排 165
7.7 软件可靠性 166
7.7.1 软件可靠性的定义 166
7.7.2 软件可靠性的指标 166
7.7.3 软件可靠性的模型 167
7.8 软件评审 167
7.8.1 设计质量的评审内容 167
7.8.2 程序质量的评审内容 168
7.9 容错软件技术 169
7.9.1 容错软件的定义 169
7.9.2 容错的一般方法 169
7.9.3 容错软件的设计过程 170
7.10 软件工程环境 170
7.10.1 软件开发环境 170
7.10.2 软件开发环境的分类 171
7.10.3 软件工具的基本概念 172
7.10.4 计算机辅助软件工程 173
本章小结 173
习题 174
第8章 操作系统 176
8.1 操作系统 176
8.1.1 操作系统的概念 176
8.1.2 操作系统的基本组成 179
8.1.3 操作系统在计算机系统中的
地位 179
8.1.4 操作系统的启动 180
8.2 操作系统的发展 180
8.2.1 手工操作阶段 180
8.2.2 批处理系统阶段 181
8.2.3 多道程序系统阶段 182
8.2.4 现代操作系统阶段 182
8.3 操作系统的分类 183
8.4 操作系统的功能 184
8.4.1 资源管理功能 184
8.4.2 扩展的虚拟机功能 185
8.4.3 网络操作系统的功能 185
8.5 操作系统的体系结构 186
8.6 并发性 187
8.7 调度与分派 187
8.8 安全与保护 187
8.9 文件系统 189
8.10 容错 189
8.11 系统性能评价 190
8.12 脚本 191
8.13 主流操作系统 191
8.13.1 Windows操作系统 191
8.13.2 UNIX操作系统 192
8.13.3 Linux操作系统 193
8.13.4 苹果操作系统 193
8.14 操作系统的新发展 194
本章小结 195
习题 195
第9章 网络计算 197
9.1 通信与组网 197
9.1.1 数据通信的基本概念 197
9.1.2 数据通信的方式 198
9.1.3 数据传输的方式 201
9.2 计算机网络 201
9.2.1 计算机网络的起源 201
9.2.2 计算机网络的定义 203
9.2.3 计算机网络的主要部件 204
9.2.4 计算机网络的传输媒体 204
9.2.5 计算机网络的分类 207
9.2.6 计算机网络的拓扑结构 209
9.2.7 计算机网络的体系结构 211
9.2.8 计算机网络间的互联 212
9.3 Internet和TCP/IP协议 212
9.3.1 Internet的起源及发展 212
9.3.2 TCP/IP协议 213
9.3.3 IP地址 214
9.3.4 Internet提供的主要服务 216
9.3.5 Intranet 218
9.4 网络管理 218
9.4.1 网络管理基础 218
9.4.2 网络管理功能 219
9.4.3 Internet的管理信息库 219
9.4.4 网络管理协议 219
9.5 移动通信与无线上网 220
9.6 网络安全 220
9.6.1 网络安全的基本问题 220
9.6.2 网络安全的内容 221
9.6.3 数据加密技术 222
9.6.4 防病毒技术 223
9.6.5 防火墙技术 223
9.7 网格计算 224
9.8 云计算与物联网 225
9.9 互联网 227
本章小结 228
习题 229
第10章 图形学和可视化计算 231
10.1 图形学的基本概念 231
10.1.1 计算机图形信息的处理 231
10.1.2 计算机图形学的起源 232
10.1.3 计算机图形学主要研究
的内容 232
10.1.4 计算机图形学的应用 233
10.1.5 计算机图形的标准化 234
10.2 图形系统 235
10.3 计算机视觉和可视化 236
10.3.1 人的视觉 236
10.3.2 计算机视觉 237
10.3.3 可视化 237
10.4 图形用户界面 237
10.5 图像通信 238
10.6 几何建模 238
10.7 计算机动画 238
10.8 虚拟现实 239
10.9 3D打印 240
本章小结 240
习题 241
第11章 人机交互 242
11.1 人机交互 242
11.1.1 人机交互技术 242
11.1.2 人机交互模型 243
11.1.3 人机系统交互界面的构架 244
11.1.4 人机界面的设计 246
11.1.5 数据交互 248
11.1.6 语音交互 249
11.1.7 图像交互 250
11.1.8 行为交互 250
11.2 多媒体技术 250
11.2.1 多媒体技术概述 250
11.2.2 多媒体技术的应用 251
本章小结 252
习题 252
第12章 离散结构 254
12.1 离散结构的研究对象及主要内容 254
12.1.1 离散结构的研究对象 254
12.1.2 离散结构研究的主要内容 254
12.2 数理逻辑 255
12.2.1 命题逻辑 255
12.2.2 谓词逻辑 259
12.3 集合论 261
12.3.1 集合的基本概念与运算 261
12.3.2 关系与函数 263
12.4 代数结构 267
12.4.1 代数结构概述 267
12.4.2 格与布尔代数 269
12.5 图论 270
12.5.1 图的基本概念 270
12.5.2 路径、回路及连通性 272
12.5.3 图的矩阵表示 273
12.6 离散概率 274
本章小结 275
习题 275
第13章 数值计算科学 278
13.1 高性能计算 278
13.2 数值分析 279
13.3 运筹学 280
13.4 数学建模与计算机模拟 281
本章小结 282
习题 282
第14章 智能系统 284
14.1 人工智能系统 284
14.1.1 人工智能 284
14.1.2 人工智能的研究与应用
领域 285
14.2 知识表示及推理 288
14.2.1 知识与知识表示 288
14.2.2 经典推理技术 289
14.2.3 高级知识推理技术 290
14.3 搜索技术 292
14.4 自然语言处理 292
14.4.1 语言及其理解 292
14.4.2 句法和语义的分析 293
14.4.3 机器翻译 293
14.5 计算智能 294
14.5.1 计算智能概述 294
14.5.2 遗传算法 295
14.5.3 群体智能 295
14.5.4 人工神经网络 296
14.6 机器学习 296
14.7 智能技术 297
14.8 大数据分析 298
本章小结 298
习题 299
第15章 社会和职业问题 300
15.1 计算的社会背景 300
15.2 计算机与道德 301
15.2.1 道德的哲学含义 301
15.2.2 道德选择 301
15.2.3 道德评价 301
15.2.4 计算机专业人员的职业道德
准则 302
15.2.5 计算机用户的道德 302
15.3 基于计算机系统的风险与责任 303
15.4 知识产权 304
15.5 隐私与公民自由 306
15.6 计算机犯罪 307
15.7 团队合作 308
15.8 哲学框架 310
本章小结 310
习题 311
参考文献 313
前 言
“计算机科学导论”是计算机专业学生进入大学学习的门专业基础课程,其目的在于用统一的思想,对该学科进行系统化和科学化阐述,让学生认识计算机科学与技术学科的本质。本书按照*高教司主持评审的《中国计算机科学与技术学科教程2002》进行编写,并参照美国计算机学会(Association for Computing Machinery,ACM)和美国电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)的计算教程2015,用逻辑严密的编写方式将读者引入本学科各个富有挑战性的领域之中。本书介绍了计算机体系结构与组织、程序设计语言、程序设计基础、算法与复杂性、信息管理、软件工程、操作系统、网络计算、图形学和可视化计算、人机交互、离散结构、数值计算科学、智能系统、社会和职业问题等14个核心体,力求让读者对计算机科学与技术专业有比较深入的了解,树立专业学习的责任感和自豪感。
本书是在《计算机科学导论》(第4版)的基础上进行修订的,主要修订内容有:删减了一些复杂的理论知识,增加了云计算与物联网、大数据分析、互联网 、数字地球、智慧城市、电子商务、智能家居、智能交通、3D打印技术、微博、微信等内容。本书介绍了计算机科学与技术的核心内容,使读者理解计算机系统的信息处理本质,掌握数据表达和数据加工表达的层次方法,了解计算机系统的功能组成,认识计算机科学与技术对人类社会的重要推动作用。
本书内容由浅入深、结构严谨,力求避免内容重复、结构松散等弊病。由于本书涉及的内容繁多,各高校任课教师可根据学生的情况,在学习本书时适当调整学时,对其中的一些章节也可以根据各高校的实际情况选用。本书配备有电子教案,任课教师可根据学生的实际情况进行修改。本书的电子教案、课程大纲、授课计划、习题答案可以到清华大学出版社网站下载,也可以向作者索取。
本书由瞿中任主编,伍建全、熊安萍、夏淑芳任副主编。硕士研究生刘帅、柴国华、鞠芳蓉、陈宇翔、徐梦茹、吴戈、耿明月、王腾锋、张玲、黄旭、危学明、陈思琪、徐芳琳、曹悦欣、刘京、吕磊、王升烨等提供了大量的资料,本科生刘妍、王子君、张真筝、夏少文、刘宝阳、朱嘉杰等人参与了文字校对工作,并对书中的实例及图表进行了校对。
书中介绍了部分著名学者的成果,如Alan Mathison Turing、John von Neumann、Andrew Chi-Chih Yao、华罗庚等,还采用了一些学者的照片,以丰富本书的内容,在此向这些学者表示感谢。本书的顺利出版,得到了各级领导的大力支持和帮助,以及计算机界众多学者的关心,在此一并致谢。
由于计算机科学与技术的发展迅速以及受作者水平所限,书中难免存在疏漏之处,恳请广大读者特别是同行批评指正。在使用本书过程中遇到任何问题,或者有好的意见和建议,请与编者联系,以便今后更好地修订本书,为广大读者服务。
编 者
第2章 计算机体系结构与组织
学习目标
了解数据的机器编码、计算机系统的组成、存储系统的组织结构、基本的输入/输出系统、计算机系统的分类、多核技术、高性能计算机、并行计算机、网络计算机、分布式系统。
掌握数值数据的表示和计算、非数值数据的编码、数字逻辑与数字系统。
学习计算机知识应从一些基本的概念入手,包括数值数据在计算机中的表示与运算、非数值数据的表示、数据的机器编码、数字逻辑与数字系统等与计算机相关的基础知识。
2.1 数 值 数 据
计算机只识别二进制编码的指令和数据,其他的如数字、字符、声音、图形、图像等信息都必须转换成二进制的形式,计算机才能进行识别和处理。二进制只有两个状态(即0和1),这正好与物理器件的两种状态相对应,如电压信号的高与低、门电路的导通与截止等;而十进制电路则需要用10种状态来描述,这将使得电路十分复杂,处理起来也非常困难。因此,采用二进制将使得计算机在物理实现上变得简单,且具有可靠性高、处理简单、抗干扰能力强等优点。下面对计算机中的各种数据表示进行详细介绍。
2.1.1 数的表示及数制转换
十进制数是日常生活中常用的,一直伴随着人们的生活,它也是中国的一大发明。在商代时,中国已采用了十进制。从现已发现的商代陶文和甲骨文中,可以看到当时已能够用一、二、三、四、五、六、七、八、九、十、百、千、万13个数字,记十万以内的任何自然数。这些记数文字的形状,在后世虽有所变化并演变成为现在的写法,但记数方法却从没有中断,一直被沿袭的同时日趋完善。十进制的记数法是古代世界中、科学的记数法,对世界科学和文化的发展起着不可估量的作用。正如李约瑟(Joseph Terence Montgomery Needham,1900—1995)所说的:“如果没有这种十进制,就不可能出现我们现在这个统一化的世界了。”
除了十进制外,其他进制,如十二进制(时钟)等也在生活中广泛使用。而在计算机内所有的数据都是以二进制代码的形式存储、处理和传送,但是在输入/输出或书写时,为了用户的方便,也经常用到八进制和十六进制。
在十进制系统中,进位原则是“逢十进一”。由此可知,在二进制系统中,其进位原则是“逢二进一”;在八进制系统中,其进位原则是“逢八进一”;在十六进制系统中,其进位原则是“逢十六进一”。为了弄清进制概念及其关系,有必要掌握各种进位制数的表示方法以及不同进位制数的相互转换方法。
1. 数制的相关基本概念
在进位计数的数字系统中,如果只用R个基本符号(如0,1,2,…,R-1)来表示数值,则称其为“基R数制”。在各种进制中,基和位权这两个基本概念对数制的理解和多种数制之间的转换起着至关重要的作用。
(1) 基。称R为该数制的“基数”,简称“基”或“底”。例如,十进制数制的基R=10。
(2) 位权。数值中每一固定位置对应的单位称为“位权”,简称“权”。它以数制的基为底,以整数为指数组成。例如,十进制数制的位权为 。
对十进制数,可知R=10,它的基本符号有10个,分别为0,1,2,…,9。对二进制数,则取R=2,其基本符号为0和1。
评论
还没有评论。