本书首先从整体上介绍计算机科学的概念和内涵,随后就数据的表示与编码、计算机体系结构、计算机硬件组成、数据结构与算法、程序设计语言、操作系统、数据库与数据科学、软件工程、计算机网络、信息系统安全等内容依次展开介绍,最后介绍计算机科学近年来的新发展。
全书逻辑清晰,从历史和发展的角度来说,介绍了计算机科学发展过程中各阶段的主要成果;从技术的角度来说,层层推进,将计算机整体结构由底层的数据表示和编码逐步推进到上层的计算机操作系统、软件和网络。本书特别适合作为高等院校计算机相关专业的基础课程教材和非计算机专业的公共基础课程教材。
前 言
首先,感谢广大读者和采用《新编计算机科学概论》作为教材的教师!在你们的支持下,《新编计算机科学概论》第1版发行后不断重印,发行数量已经过万。现在,在这几年使用的基础上,我们紧跟计算机科学的发展步伐,汇集教学实践的宝贵经验,对《新编计算机科学概论》进行修订,为读者提供新的计算机科学领域知识。
在计算机科学发展突飞猛进,不断改变人类社会的今天,学习“计算机科学概论”课程将是一次美妙和激动人心的探索,可能为你今后从事任何充满挑战和令人兴奋的IT职业奠定扎实的基础。
计算机科学学科的发展充满了挑战和机遇,“计算机科学概论”课程是该学科的重要基础。随着计算机在各个领域的广泛、深入应用,很多非计算机专业(包括非理工科专业)都把“计算机科学概论”课程列为公共基础课程之一。
作为基础课程的教材,本书所设定的读者可以既没有计算机的应用经验,也不具备相关的计算机知识。即使是对计算机一无所知的人,也能够通过学习本书获取大量计算机科学的基本知识;已经具备一定的计算机应用经验和相关知识的读者,将在本书中发现很多有用的、更加深入的理论知识,以丰富计算机领域知识,提升自己的专业水平。
作为面向IT专业同时兼顾非IT专业的基础课程教材,本书力求做到:知识体系完整,覆盖面广,内容翔实,文风严谨,深入浅出,并且符合国内高校的教学实践需要。同时,本书紧跟时代潮流,在注重基础知识的同时,介绍计算机科学在大数据、云计算、物联网、人工智能、元宇宙等领域的新发展和新应用。
最重要的一点是,本书在吸取国内同类课程教学改革经验的基础上,遵循高等学校大学计算机课程教学指导委员会发布的《大学计算机基础课程教学基本要求》,同时大胆参考了国际计算机协会(ACM)推荐的CC和CS系列课程体系,与国际IT教材接轨,广泛覆盖了计算机科学的主要领域。
本书结构
本书是为“计算机科学概论/计算机科学导论”课程编写的。这些课程将为计算机及相关专业的本科生勾画出计算机科学的体系框架,为有志于从事IT行业的学生奠定计算机科学知识基础,架设进一步深入学习专业理论的桥梁。本书强调对核心概念的认知而不是数学模型或技术细节,通过大量的图表、示例增强读者对知识的理解和掌握,通过范例阐释概念和相关模型,通过小结和习题帮助读者掌握自己的学习情况。本书中提供的示例代码可以不加修改,直接在Python环境中运行。
本书包括12章,各章的主要内容如下:
第0章,绪论。本章从整体上介绍计算机科学的概念和内涵,概要介绍计算机发展历史,并分析计算机对现代社会的影响。
第1章,数据的表示与编码。数据是计算机处理的基本元素,本章讨论数据的内涵、表示和运算,以及不同的数据编码方式。
第2章,计算机体系结构。本章重点讨论计算机的体系结构,从系统的角度介绍计算机系统的层次结构,进而从体系结构的角度分别分析计算机硬件系统和软件系统的结构,并比较深入地讨论了处理器结构。
第3章,计算机硬件组成。本章专门讨论计算机硬件系统的组成,讲述计算机主要硬件部分的原理、结构、实现和发展趋势,讨论主流计算机的常用硬件。
第4章,数据结构与算法。本章讲解数据结构和算法的概念,包括算法的描述方法和基本结构,并讨论了计算机中最常用的数据结构和算法。
第5章,程序设计语言。本章讲述计算机程序设计语言的发展和分类,介绍程序设计语言的类型等基本知识,讨论程序编译的基本原理和过程。通过学习本章与第4章,读者可以对计算机软件设计有一定的认知。
第6章,操作系统。本章讨论计算机的操作系统,阐述操作系统的内涵、功能、基本构成和运行原理。
第7章,从数据库到数据科学。本章深入讨论数据的丰富内涵,阐述管理大量数据的数据库方法的基本概念、原理,结合关系数据库讨论SQL的基本情况,介绍数据挖掘技术和数据仓库的基本原理。本章还探讨了大数据的内涵和相关的存储管理技术、可视化等技术,最后介绍数据科学。
第8章,软件工程。本章讨论规模化的软件开发方法,包括软件过程、需求分析、软件工程方法、软件质量管理、软件项目管理等内容。
第9章,计算机网络。本章从计算机网络的形成与发展开始,讲述计算机网络体系结构、组建网络和互联网的基本技术及网络应用,特别是近年快速发展的移动互联网。
第10章,信息系统安全。本章从信息系统的安全威胁入手,讲述信息安全威胁和常用的信息安全技术以及我国在信息安全方面的法制建设情况。
第11章,计算机科学新发展。本章介绍云计算、物联网、区块链、人工智能、虚拟现实等近年来发展迅速的计算机科学领域的热点分支方向。
尽管本书包含的内容较多,但实际的教学进度和授课内容可以灵活确定,因为这取决于课堂教学的安排、读者的实际技能及读者对所讨论主题的熟悉程度。教学课时数建议安排在40~60课时。
本书特色
本书特别有助于入门者学习。本书在讲述理论知识的同时,注重理论发展的历史背景、思考方法;在注重知识的系统性、完整性的同
目 录
前言
第0章 绪论 1
0.1 计算机科学与计算思维 1
0.1.1 计算 1
0.1.2 计算思维 2
0.1.3 计算机科学 3
0.1.4 计算机与计算机模型 6
0.1.5 计算机科学中的经典问题 7
0.2 计算机的历史 10
0.2.1 计算机前传 10
0.2.2 现代计算机 11
0.2.3 计算机的未来 16
0.3 计算机的分类 17
0.3.1 巨型机 17
0.3.2 大型机、中型机、小型机 18
0.3.3 微型机与工作站 18
0.4 计算机与社会 18
0.4.1 计算机与生活 19
0.4.2 有关计算机的伦理 20
0.4.3 与计算机有关的犯罪 21
0.5 计算机科学的发展 22
本章小结 23
附?:Python环境安装指南 23
本章习题 28
第1章 数据的表示与编码 31
1.1 数和数制 31
1.1.1 数字系统 31
1.1.2 计数与进制 32
1.1.3 二进制和位 34
1.1.4 八进制和十六进制 35
1.1.5 不同进制间的相互转换 35
1.2 数值的表示与运算 39
1.2.1 整数的表示 39
1.2.2 实数的表示 42
1.2.3 位的算术运算 44
1.3 非数值信息的编码 45
1.3.1 字符的编码 46
1.3.2 静态图像的编码 49
1.3.3 动态数据的编码 51
本章小结 52
本章习题 53
第2章 计算机体系结构 56
2.1 计算机系统的多级层次结构 56
2.2 体系结构的基本概念 59
2.2.1 计算机体系结构 59
2.2.2 计算机组成 60
2.2.3 计算机实现 61
2.3 冯·诺依曼结构和哈佛结构 63
2.3.1 冯·诺依曼理论 63
2.3.2 冯·诺依曼体系结构 64
2.3.3 冯·诺依曼结构的演变 66
2.3.4 哈佛结构 67
2.3.5 改进型哈佛结构 67
2.4 处理器体系结构 67
2.4.1 指令系统 68
2.4.2 CISC结构 69
2.4.3 RISC结构 71
2.4.4 并行处理与流水线技术 73
2.5 计算机软件系统 76
2.5.1 软件的含义 76
2.5.2 软件系统的组织 77
2.5.3 软件的社会形态 79
本章小结 83
本章习题 84
第3章 计算机硬件组成 86
3.1 计算机硬件系统组成 86
3.2 处理器 86
3.2.1 运算器 87
3.2.2 控制器 89
3.2.3 摩尔定律与处理器的发展 90
3.3 存储器 91
3.3.1 计算机的多级存储系统 91
3.3.2 主存储器和高速缓存 93
3.3.3 辅助存储器 95
3.4 I/O设备 98
3.4.1 I/O设备的分类 99
3.4.2 常见输入设备 99
3.4.3 常见输出设备 100
3.5 总线与接口 102
3.5.1 总线 102
3.5.2 接口 104
本章小结 108
本章习题 109
第4章 数据结构与算法 111
4.1 概述 111
4.1.1 数据结构 111
4.1.2 算法 113
4.2 线性结构 117
4.2.1 线性表和串 117
4.2.2 栈和队列 119
4.2.3 数组 120
4.3 非线性结构 120
4.3.1 树 120
4.3.2 图 123
4.4 抽象类型 124
4.4.1 指针 124
4.4.2 类与对象 125
4.5 基本算法 126
4.5.1 排序 126
4.5.2 查找 129
4.6 递归 130
本章小结 131
本章习题 132
第5章 程序设计语言 135
5.1 计算机语言的发展 135
5.1.1 自然语言与形式语言 136
5.1.2 机器语言与汇编语言 137
5.1.3 高级语言 138
5.1.4 脚本语言 139
5.2 程序设计语言的几种范型 140
5.3 程序设计语言的语法元素和功能
??划分 141
5.4 程序的生成和运行 146
5.4.1 编译和解释 146
5.4.2 程序设计环境 150
本章小结 151
本章习题 152
第6章 操作系统 155
6.1 操作系统概述 155
6.1.1 操作系统的内涵 155
6.1.2 操作系统的功能 156
6.1.3 操作系统的分类 157
6.2 操作系统的运行 160
6.2.1 处理器管理与进程调度 160
6.2.2 存储管理 166
6.3 文件系统 167
6.3.1 文件的基本概念 168
6.3.2 文件的结构与存取 168
6.3.3 文件的基本类型 171
6.3.4 文件的编码与操作 173
6.4 设备管理与驱动 175
6.4.1 设备管理 175
6.4.2 驱动 176
6.5 典型操作系统 177
6.5.1 Windows系列 177
6.5.2 Mac OS系列 178
6.5.3 UNIX 178
6.5.4 从Linux到鸿蒙 179
6.5.5 智能手表操作系统 183
本章小结 183
本章习题 184
第7章 从数据库到数据科学 187
7.1 数据 187
7.1.1 数据的内涵 187
7.1.2 数据模型与维度 188
7.1.3 数据与信息 190
7.1.4 数据简史 191
7.2 数据库的基本概念 192
7.2.1 什么是数据库 192
7.2.2 数据模型 196
7.2.3 数据字典 198
7.2.4 数据库系统 198
7.3 关系数据库及其运算 200
7.3.1 关系模型 200
7.3.2 结构化查询语言 204
7.4 数据仓库与数据挖掘 206
7.4.1 数据仓库 206
7.4.2 数据挖掘 207
7.5 数据科学 212
7.5.1 大数据 212
7.5.2 大数据存储与管理 216
7.5.3 大数据挖掘与可视化 218
7.5.4 认识数据科学 226
本章小结 228
本章习题 228
第8章 软件工程 232
8.1 从软件到软件工程 232
8.1.1 再认识软件 232
8.1.2 软件工程的内涵 233
8.2 软件开发过程 235
8.2.1 软件生命周期 235
8.2.2 软件过程模型 236
8.3 软件工程的方法与工具 238
8.3.1 结构化方法 238
8.3.2 面向对象的方法 242
8.3.3 计算机辅助软件工程 245
8.4 软件需求管理 247
8.4.1 软件需求 247
8.4.2 需求分析 247
8.4.3 需求管理 249
8.5 软件质量管理 250
8.5.1 软件质量与评价 250
8.5.2 软件评审与测试 252
8.6 软件项目管理 254
8.6.1 项目管理内容 254
8.6.2 项目管理过程 255
8.6.3 团队 256
8.6.4 管理者 257
8.6.5 敏捷开发 258
本章小结 263
本章习题 264
第9章 计算机网络 267
9.1 什么是计算机网络 267
9.1.1 计算机网络的历史 267
9.1.2 计算机网络的含义 268
9.1.3 计算机网络的分类 269
9.2 计算机网络体系结构 272
9.2.1 概述 272
9.2.2 OSI参考模型 273
9.2.3 TCP/IP模型 274
9.3 组建网络 277
9.3.1 计算机网络拓扑 277
9.3.2 网络的物理组成 278
9.3.3 连接网络 279
9.4 Internet及应用 280
9.4.1 Internet简介 280
9.4.2 传输协议与地址 281
9.4.3 Internet应用 285
9.4.4 Internet发展新趋势 288
9.5 移动互联网技术及发展 289
9.5.1 蜂窝移动通信网 290
9.5.2 蜂窝移动通信网发展的基本
过程 293
本章小结 294
本章习题 295
第10章 信息系统安全 298
10.1 信息安全概述 298
10.1.1 安全威胁 298
10.1.2 对信息系统安全的理解 300
10.1.3 如何才能安全 301
10.2 数据加密 304
10.2.1 密码学基础 304
10.2.2 加密技术 305
10.3 计算机病毒 307
10.3.1 计算机病毒概论 308
10.3.2 计算机病毒的作用机理 309
10.3.3 计算机病毒的防治 311
10.4 防火墙与入侵检测 313
10.4.1 防火墙 313
10.4.2 入侵检测技术 315
本章小结 319
本章习题 320
第11章 计算机科学新发展 323
11.1 云计算 323
11.1.1 资源虚拟化 323
11.1.2 云计算的相关概念 325
11.1.3 云计算的技术特点 330
11.2 物联网 331
11.2.1 物联网的内涵 331
11.2.2 物联网系统的技术架构 333
11.2.3 物联网的主要特点 335
11.3 区块链 335
11.3.1 区块链简史 335
11.3.2 区块链的基本概念 336
11.3.3 区块链的特征 337
11.3.4 区块链的关键技术 338
11.3.5 区域链的主要技术类型 340
11.4 人工智能 341
11.4.1 人工智能的概念 341
11.4.2 人工智能的基本发展过程 341
11.4.3 人工智能的研究内容与层次 342
11.4.4 人工智能的主要学派和学科
??体系 343
11.4.5 人工智能的典型应用领域 345
11.5 从虚拟现实到元宇宙 347
11.5.1 虚拟现实及相关概念 347
11.5.2 虚拟现实的基本特征 351
11.5.3 虚拟现实的关键技术 352
11.5.4 虚拟现实技术的典型应用 354
11.5.5 元宇宙 355
本章小结 357
本章习题 357
参考文献 360