《计算机科学导论(第5版)》按照教育部高教司主持评审的《中国计算机科学与技术学科教程2002》进行编写,并参照美国计算机学会(Association for Computing Machinery,ACM)和美国电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)的计算教程2015,用逻辑严密的编写方式将读者引入本学科各个富有挑战性的领域之中。《计算机科学导论(第5版)》介绍了计算机体系结构与组织、程序设计语言、程序设计基础、算法与复杂性、信息管理、软件工程、操作系统、网络计算、图形学和可视化计算、人机交互、离散结构、数值计算科学、智能系统、社会和职业问题等14个核心体,力求让读者对计算机科学与技术专业有比较深入的了解,树立专业学习的责任感和自豪感。
《计算机科学导论(第5版)》是在《计算机科学导论》(第4版)的基础上进行修订的,主要修订内容有:删减了一些复杂的理论知识,增加了云计算与物联网、大数据分析、互联网+、数字地球、智慧城市、电子商务、智能家居、智能交通、3D打印技术、微博、微信等内容。本书介绍了计算机科学与技术的核心内容,使读者理解计算机系统的信息处理本质,掌握数据表达和数据加工表达的层次方法,了解计算机系统的功能组成,认识计算机科学与技术对人类社会的重要推动作用。
《计算机科学导论(第5版)》内容由浅入深、结构严谨,力求避免内容重复、结构松散等弊病。由于本书涉及的内容繁多,各高校任课教师可根据学生的情况,在学习本书时适当调整学时,对其中的一些章节也可以根据各高校的实际情况选用。
《计算机科学导论(第5版)》结合理论讲解和实际应用,严格按照教育部高教司主持评审的《中国计算机科学与技术学科教程2002》进行编写,并参照美国计算机学会和美国电气和电子工程师协会的计算教程(Computing Curricula,CC),对计算机科学与技术进行系统化和科学化阐述。本书具体介绍了计算机体系结构与组织、程序设计语言、程序设计基础、算法与复杂性、信息管理、软件工程、操作系统、网络计算、图形学和可视化计算、人机交互、离散结构、数值计算科学、智能系统、社会和职业问题等14个核心体,目的是让读者了解计算机科学与技术学科的全貌。本书每章后均配有一定量的习题,以便读者巩固所学知识。
《计算机科学导论(第5版)》既可作为高等学校计算机专业学生的专业基础课程教材,也可作为网络工程、信息安全、物联网工程、通信工程、电子科学与技术、自动化等相关专业学生的计算机教材。
目 录
第1章 概述 1
1.1 计算的起源 1
1.2 计算机的产生和发展阶段 3
1.3 计算机的应用领域和发展趋势 22
1.4 计算学科 26
1.5 计算机科学与技术学科的知识体系 29
1.6 计算机科学与技术学科的教育 33
1.7 信息化的挑战 36
1.8 计算机产业 36
本章小结 37
习题 37
第2章 计算机体系结构与组织 40
2.1 数值数据 40
2.2 非数值数据 50
2.3 数据的机器编码 53
2.4 数字逻辑与数字系统 54
2.5 计算机系统的组成 59
2.6 存储系统的结构 69
2.7 输入/输出系统 71
2.8 多核技术 71
2.9 高性能计算机 72
2.10 并行计算机 72
2.11 分布式系统 73
本章小结 73
习题 73
第3章 程序设计语言 76
3.1 程序设计语言概述 76
3.2 声明和类型 83
3.3 类型系统 83
3.4 编译原理 83
3.5 程序设计语言的设计 89
本章小结 89
习题 89
第4章 程序设计基础 92
4.1 程序设计 92
4.2 程序设计方法 92
4.3 基本数据结构 101
4.4 事件驱动程序设计 109
本章小结 110
习题 110
第5章 算法与复杂性 112
5.1 算法分析 112
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.2 数据库系统 126
6.3 关系数据库 131
6.4 数据库查询语言SQL 135
6.5 关系数据库设计 136
6.6 数据库管理 137
6.7 常用数据库管理系统 139
6.8 数据库的新发展 141
本章小结 144
习题 145
第7章 软件工程 147
7.1 软件工程 147
7.2 软件开发模型 152
7.3 软件开发方法 157
7.4 软件质量评价和保证 160
7.5 软件复杂性 162
7.6 软件项目管理 163
7.7 软件可靠性 166
7.8 软件评审 167
7.9 容错软件技术 169
7.10 软件工程环境 170
本章小结 173
习题 174
第8章 操作系统 176
8.1 操作系统 176
8.2 操作系统的发展 180
8.3 操作系统的分类 183
8.4 操作系统的功能 184
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.14 操作系统的新发展 194
本章小结 195
习题 195
第9章 网络计算 197
9.1 通信与组网 197
9.2 计算机网络 201
9.3 Internet和TCP/IP协议 212
9.4 网络管理 218
9.5 移动通信与无线上网 220
9.6 网络安全 220
9.7 网格计算 224
9.8 云计算与物联网 225
9.9 互联网+ 227
本章小结 228
习题 229
第10章 图形学和可视化计算 231
10.1 图形学的基本概念 231
10.2 图形系统 235
10.3 计算机视觉和可视化 236
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.2 多媒体技术 250
本章小结 252
习题 252
第12章 离散结构 254
12.1 离散结构的研究对象及主要内容 254
12.2 数理逻辑 255
12.3 集合论 261
12.4 代数结构 267
12.5 图论 270
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.2 知识表示及推理 288
14.3 搜索技术 292
14.4 自然语言处理 292
14.5 计算智能 294
14.6 机器学习 296
14.7 智能技术 297
14.8 大数据分析 298
本章小结 298
习题 299
第15章 社会和职业问题 300
15.1 计算的社会背景 300
15.2 计算机与道德 301
15.3 基于计算机系统的风险与责任 303
15.4 知识产权 304
15.5 隐私与公民自由 306
15.6 计算机犯罪 307
15.7 团队合作 308
15.8 哲学框架 310
本章小结 310
习题 311
参考文献 313
第2章 计算机体系结构与组织
学习目标
了解数据的机器编码、计算机系统的组成、存储系统的组织结构、基本的输入/输出系统、计算机系统的分类、多核技术、高性能计算机、并行计算机、网络计算机、分布式系统。
掌握数值数据的表示和计算、非数值数据的编码、数字逻辑与数字系统。
学习计算机知识应从一些基本的概念入手,包括数值数据在计算机中的表示与运算、非数值数据的表示、数据的机器编码、数字逻辑与数字系统等与计算机相关的基础知识。
2.1 数 值 数 据
计算机只识别二进制编码的指令和数据,其他的如数字、字符、声音、图形、图像等信息都必须转换成二进制的形式,计算机才能进行识别和处理。二进制只有两个状态(即0和1),这正好与物理器件的两种状态相对应,如电压信号的高与低、门电路的导通与截止等;而十进制电路则需要用10种状态来描述,这将使得电路十分复杂,处理起来也非常困难。因此,采用二进制将使得计算机在物理实现上变得简单,且具有可靠性高、处理简单、抗干扰能力强等优点。下面对计算机中的各种数据表示进行详细介绍。
2.1.1 数的表示及数制转换
十进制数是日常生活中常用的,一直伴随着人们的生活,它也是中国的一大发明。在商代时,中国已采用了十进制。从现已发现的商代陶文和甲骨文中,可以看到当时已能够用一、二、三、四、五、六、七、八、九、十、百、千、万13个数字,记十万以内的任何自然数。这些记数文字的形状,在后世虽有所变化并演变成为现在的写法,但记数方法却从没有中断,一直被沿袭的同时日趋完善。十进制的记数法是古代世界中最先进、最科学的记数法,对世界科学和文化的发展起着不可估量的作用。正如李约瑟(Joseph Terence Montgomery Needham,1900—1995)所说的:“如果没有这种十进制,就不可能出现我们现在这个统一化的世界了。”
除了十进制外,其他进制,如十二进制(时钟)等也在生活中广泛使用。而在计算机内所有的数据都是以二进制代码的形式存储、处理和传送,但是在输入/输出或书写时,为了用户的方便,也经常用到八进制和十六进制。
前 言
“计算机科学导论”是计算机专业学生进入大学学习的第一门专业基础课程,其目的在于用统一的思想,对该学科进行系统化和科学化阐述,让学生认识计算机科学与技术学科的本质。本书按照教育部高教司主持评审的《中国计算机科学与技术学科教程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、华罗庚等,还采用了一些学者的照片,以丰富本书的内容,在此向这些学者表示感谢。本书的顺利出版,得到了各级领导的大力支持和帮助,以及计算机界众多学者的关心,在此一并致谢。
由于计算机科学与技术的发展迅速以及受作者水平所限,书中难免存在疏漏之处,恳请广大读者特别是同行批评指正。在使用本书过程中遇到任何问题,或者有好的意见和建议,请与编者联系,以便今后更好地修订本书,为广大读者服务。
编 者
在我看来,这本书的内容覆盖面确实很广,几乎囊括了计算机科学的入门级核心知识点。比如,它对操作系统的介绍,从进程管理、内存管理到文件系统,都做了相当详尽的阐述。我特别喜欢它在讲到进程调度的时候,列举了多种调度算法,并分析了它们的优缺点,让我对操作系统的“幕后工作”有了更深的理解。然而,在讲解网络通信的部分,虽然提到了TCP/IP协议栈,也简单介绍了HTTP协议,但对于一些更底层的细节,比如三次握手和四次挥手的具体过程,以及数据包在网络中的传输路径,描述得就相对模糊了。我尝试去理解数据是怎么从一台电脑传到另一台电脑的,但书本上的讲解,感觉只触及了表面,对于路由选择、拥塞控制这些更复杂的机制,只是简单带过,没有深入分析。我期待在这一部分能有更具体的案例或者示意图,来帮助我理解网络是如何工作的,而不是仅仅停留在概念层面。
评分这本书我刚开始看的时候,真的是抱着一种“入门”的心态,毕竟是导论嘛。第一章讲到计算机的起源和发展历史,我当时就觉得有点枯燥,很多名字和时间点,虽然知道很重要,但读起来总感觉像在背诵,不像是在理解。直到后面讲到数据表示和逻辑门,我才觉得有点意思了。看到二进制怎么转换成我们能理解的数字,然后通过那些简单的逻辑门组合出复杂的计算,就像在玩乐高积木一样,一点点搭起了计算机的“思考”方式。不过,书里在讲解逻辑运算的时候,图示有那么一点点不够清晰,我来回看了好几遍才算弄明白,特别是异或和同或的那些逻辑表达式,总觉得可以再加一些实际应用的例子,比如在电路设计中是怎么体现的。而且,关于早期计算机的硬件架构,虽然提到了冯·诺依曼体系,但细节描述不是特别深入,我有点好奇那些早期的物理开关和真空管是怎么运作的,它们和现在的晶体管有什么本质的区别,书里只是泛泛带过,让我觉得有点意犹未尽。总的来说,基础知识的铺垫是够的,但对于一个像我这样想深入了解“为什么”的读者来说,有些地方确实不够过瘾,需要自己再找资料补充。
评分这本书作为一本导论性的教材,在知识的广度上是无可挑剔的,它几乎触及了计算机科学的方方面面。我最欣赏它的一个点是,在最后几章提到了人工智能和机器学习的一些基础概念,让我对这个热门领域有了一个初步的认识。它简单介绍了监督学习、无监督学习,也提到了神经网络,虽然只是点到为止,但足以激起我的兴趣,让我了解到这些技术背后的基本思想。不过,在这一部分,我最大的感受是“意犹未尽”。比如,在讲到神经网络的时候,虽然提到了激活函数和反向传播,但对于具体的数学公式推导,以及如何训练一个神经网络模型,书本上的讲解就非常简略了。我希望能看到更具体的例子,比如如何用Python实现一个简单的神经网络,如何选择合适的损失函数和优化器。感觉这一块内容,作者是想让读者自己去探索,但对于完全零基础的人来说,仅仅提供概念,还是有点难度。
评分这本书在语言风格上,整体还是偏向学术化的,对于初学者来说,有些地方可能会显得比较生硬。它在阐述一些理论概念时,会用到很多专业术语,虽然前面有定义,但有时候读起来还是有点费力,需要反复咀嚼才能理解。比如,在讲到数据库原理的时候,它提到了范式理论,关系型数据库的模型,SQL语言的语法等等,这些内容都是非常重要的,但是书中对这些概念的引入和解释,似乎缺少了一些引人入胜的故事或者更贴近生活的例子。我总觉得,如果能用一些更生动的比喻,或者从实际的应用场景出发,比如一个电商平台的商品管理系统是怎么用数据库来实现的,这样来讲解,学习效果会好很多。另外,在介绍软件工程的部分,虽然提到了瀑布模型、敏捷开发等,但对这些开发模式的实际应用和选择,以及在不同项目中的优劣势分析,感觉描述得不够充分,只是简单的罗列,没有深入的探讨。
评分这本书的章节安排,我个人觉得还是比较合理的,从最基础的概念讲起,逐步深入。比如,它在讲解算法的时候,用了大量的伪代码和流程图,这一点我非常欣赏。虽然我之前对算法的概念有所了解,但通过书中提供的这些清晰的图示和具体的步骤分解,我能更直观地理解“什么是算法”以及“如何设计一个算法”。特别是那个关于排序算法的对比,各种算法的时间复杂度、空间复杂度都分析得挺到位,而且举了很多例子,让我能深刻体会到不同算法在效率上的差异。但问题也出在一些细节的描述上,比如在讲到数据结构时,虽然提到了链表、栈、队列这些,但对于它们在内存中的具体实现方式,以及在实际编程中如何高效地操作,书本上的讲解略显理论化,没有给出太多代码层面的指导。我有点希望作者能多提供一些C++或者Python的示例代码,让我们可以直接看到数据结构是如何在代码中实现的,以及它们是如何被操作的。这样,理论和实践的结合会更紧密,学习起来也会更有成就感。感觉在“如何做”这方面,书本还可以做得更详细一些。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有