绪论 1
0.1 计算机的产生 1
0.1.1 算法 1
0.1.2 计算机的产生 2
0.2 计算机的发展 6
0.3 计算机学科的构成 10
0.3.1 应用层 10
0.3.2 专业基础层 10
0.3.3 专业基础的理论基础层 11
第1章 图灵机模型 12
1.1 图灵机概述 12
1.1.1 图灵机的直观描述 13
1.1.2 图灵机的形式化描述 13
1.2 计算“x+1”的图灵机 13
1.3 通用图灵机 15
1.4 图灵机模型的启示 17
关键术语 19
思考与练习 19
第2章 数据编码与存储 20
2.1 二进制 20
2.1.1 数制 20
2.1.2 八进制和十六进制 21
2.1.3 二进制与其他数制的转换 21
2.2 二进制位的存储 23
2.2.1 逻辑运算和门 23
2.2.2 触发器 24
2.2.3 其他存储技术 25
2.3 存储器 26
2.3.1 主存储器 26
2.3.2 辅助存储器 26
2.4 数值数据编码 27
2.4.1 机器数 27
2.4.2 整数和实数 27
2.4.3 带符号数的表示 29
2.5 字符数据编码 30
2.5.1 西文字符 30
2.5.2 汉字编码 31
2.6 图形和图像数据编码 33
2.6.1 基本概念 33
2.6.2 图形与图像的数字化 34
2.7 音频数据的表示 34
2.8 数据压缩 36
2.8.1 无损压缩 36
2.8.2 有损压缩 39
2.9 误码及对策 40
2.9.1 奇偶校验 40
2.9.2 纠错码 40
关键术语 42
思考与练习 43
第3章 计算机结构 44
3.1 系统结构 45
3.1.1 运算器 46
3.1.2 控制器 47
3.1.3 多核处理器 47
3.1.4 计算机的引导过程 47
3.2 指令系统 48
3.2.1 指令系统的概念 48
3.2.2 RISC和CISC 48
3.2.3 指令系统的设计要求 49
3.2.4 指令格式 49
3.3 寻址方式 51
3.3.1 指令的寻址方式 51
3.3.2 操作数寻址方式 52
3.4 指令执行 52
3.5 流水线技术 54
3.5.1 什么是流水线 54
3.5.2 理想流水线性能分析 55
3.5.3 流水操作中的主要障碍 55
3.6 存储系统 56
3.6.1 存储器的层次结构 56
3.6.2 存储体系涉及的问题 57
3.6.3 高速缓冲存储器 58
3.6.4 内存 58
3.6.5 Flash存储器 59
3.6.6 虚拟存储器 60
3.6.7 外部存储设备 62
3.7 外围设备 65
3.8 输入输出方式 65
3.8.1 程序查询方式 66
3.8.2 中断方式 66
3.8.3 直接内存访问方式 67
关键术语 68
思考与练习 68
第4章 操作系统 69
4.1 操作系统的发展 69
4.1.1 串行处理 69
4.1.2 简单批处理 70
4.1.3 多道批处理 71
4.1.4 分时系统 73
4.1.5 实时系统 73
4.1.6 嵌入式操作系统 74
4.1.7 网络操作系统 74
4.1.8 分布式操作系统 75
4.2 操作系统的结构 75
4.2.1 操作系统的功能 75
4.2.2 操作系统的组成 76
4.2.3 系统的引导 78
4.3 现代操作系统处理的难题 79
4.3.1 进程 79
4.3.2 并发控制的难题 81
4.3.3 有效地分配处理器 82
4.3.4 提供充足和高效的存储器 84
4.4 常见的操作系统 88
4.4.1 DOS操作系统 88
4.4.2 Windows操作系统 88
4.4.3 UNIX操作系统 90
4.4.4 Linux操作系统 90
4.4.5 苹果iOS移动操作系统 91
4.4.6 谷歌(Google)的Android移动操作系统 92
关键术语 92
思考与练习 93
第5章 程序设计基础 94
5.1 计算机程序设计语言 94
5.1.1 通用程序设计语言 95
5.1.2 专用程序设计语言 98
5.2 编译系统 102
5.3 结构化程序设计 104
5.3.1 结构化程序设计的概念 104
5.3.2 过程和函数 105
5.3.3 顺序结构 106
5.3.4 分支结构 106
5.3.5 循环结构 107
5.4 面向对象程序设计 109
5.4.1 面向对象概述 109
5.4.2 面向对象与面向过程的区别 109
5.4.3 对象和类 110
5.4.4 面向对象技术的基本特征 111
5.4.5 面向对象程序设计语言 113
关键术语 116
思考与练习 116
第6章 算法与数据结构 117
6.1 算法概述 117
6.2 算法的时空效率 119
6.3 经典排序算法 121
6.3.1 冒泡排序 121
6.3.2 插入排序 123
6.3.3 快速排序 124
6.4 算法策略 125
6.4.1 递归和分治 125
6.4.2 枚举和动态规划 126
6.4.3 贪心算法 128
6.4.4 回溯法 129
6.5 数据结构概述 129
6.6 线性表 133
6.6.1 数组 134
6.6.2 栈 135
6.6.3 队列 135
6.7 树和图 136
6.7.1 树 136
6.7.2 图 137
关键术语 138
思考与练习 138
第7章 软件工程 140
7.1 软件危机 141
7.2 软件工程 142
7.2.1 软件工程框架模型 143
7.2.2 软件工程本质特征 145
7.2.3 软件工程基本原理 145
7.2.4 软件过程 145
7.2.5 软件过程模型 146
7.3 软件工程方法学 147
7.3.1 结构化方法学 147
7.3.2 面向对象方法学 150
7.4 标准建模语言 153
7.4.1 标准建模语言UML的出现 153
7.4.2 UML的内容 154
7.4.3 UML的主要特点 157
7.4.4 UML的应用领域 158
7.5 统一开发过程 158
7.6 能力成熟度模型 161
7.7 软件项目管理 163
7.7.1 计划 163
7.7.2 组织 164
7.7.3 控制 164
7.7.4 国际标准 165
关键术语 166
思考与练习 166
第8章 信息系统 167
8.1 信息与信息系统 167
8.1.1 信息与数据 167
8.1.2 信息系统及其需求 168
8.2 信息管理技术的发展 169
8.2.1 人工管理阶段:20世纪50年代以前 170
8.2.2 文件系统阶段:20世纪50年代后期~60年代中期 170
8.2.3 数据库系统阶段 172
8.2.4 大数据阶段 173
8.3 数据库与数据库系统 174
8.3.1 数据模型与数据库 175
8.3.2 关系数据库语言 179
8.3.3 数据库系统的构成 180
8.4 基于数据库的应用系统 182
8.4.1 数据库应用系统分类 182
8.4.2 数据库应用系统结构 183
8.4.3 数据库应用系统设计 185
8.5 数据仓库与数据挖掘技术 187
8.5.1 数据仓库 187
8.5.2 数据挖掘技术 189
8.6 信息系统的展望 193
关键术语 194
思考与练习 195
第9章 人工智能 196
9.1 人工智能概述 196
9.1.1 人工智能定义 197
9.1.2 人工智能的研究方法 198
9.1.3 人工智能的研究目标 199
9.1.4 人工智能发展简史 200
9.2 基于符号推理的传统人工智能 206
9.2.1 知识表示 206
9.2.2 推理方法 208
9.2.3 匹配方法 210
9.2.4 冲突消解策略 210
9.2.5 搜索策略 211
9.3 基于连接机制的计算智能 212
9.3.1 计算智能基本概念 212
9.3.2 模糊计算 212
9.3.3 神经计算 214
9.3.4 进化计算 215
9.4 人工智能主要应用与研究领域 216
9.4.1 专家系统 216
9.4.2 机器学习 217
9.4.3 机器人 218
9.4.4 模式识别 219
9.4.5 计算机视觉 220
9.4.6 自然语言理解 221
9.4.7 自动定理证明 222
9.4.8 自动程序设计 223
9.4.9 博弈 223
9.4.10 智能决策支持系统 224
9.4.11 智能搜索 224
9.4.12 数据挖掘与知识发现 225
关键术语 225
思考与练习 226
第10章 图形图像和多媒体 227
10.1 计算机图形学 227
10.1.1 计算机图形学的发展 227
10.1.2 计算机图形系统的组成和功能 229
10.1.3 图形显示系统 230
10.1.4 常用的图形输入/输出设备 232
10.1.5 计算机图形学研究的内容 234
10.1.6 计算机图形学的应用 236
10.1.7 计算机图形学的进展与展望 239
10.2 计算机图像处理 241
10.2.1 图像处理概述 241
10.2.2 数字图像 243
10.2.3 图像处理系统的硬件设备 246
10.2.4 数字图像识别技术 248
10.2.5 数字水印技术 250
10.3 多媒体技术及其应用 252
10.3.1 多媒体技术的定义 252
10.3.2 多媒体的关键技术 253
10.3.3 多媒体系统 255
10.3.4 音频处理技术 256
10.3.5 多媒体技术的应用 257
10.3.6 多媒体技术的发展方向 258
关键术语 259
思考与练习 259
第11章 计算机网络 260
11.1 计算机网络概述 260
11.2 计算机网络的体系结构 262
11.3 计算机网络硬件 264
11.4 集群、网格与云 266
11.4.1 集群 266
11.4.2 网格 266
11.4.3 云 267
11.5 网络操作系统 267
11.5.1 网络操作系统的分类 268
11.5.2 网络操作系统的功能 268
11.5.3 Windows 269
11.5.4 UNIX 270
11.5.5 Linux 270
11.6 计算机网络应用 271
11.6.1 万维网 271
11.6.2 电子邮件 271
11.6.3 FTP 272
11.6.4 即时通信 272
11.6.5 博客 272
11.6.6 微博 273
11.6.7 微信 273
关键术语 273
思考与练习 274
第12章 计算机安全 275
12.1 计算机安全概述 275
12.1.1 研究内容 275
12.1.2 发展历程 276
12.2 计算机密码学 277
12.2.1 基本概念 278
12.2.2 密码编码学 279
12.2.3 密码分析学 285
12.3 计算机病毒 286
12.3.1 计算机病毒概述 286
12.3.2 病毒分类 287
12.3.3 最新常见病毒介绍 289
12.3.4 病毒的检测 290
12.3.5 病毒的防护 292
12.4 计算机网络安全 292
12.4.1 网络的特点及安全问题 293
12.4.2 网络的数据加密 295
12.4.3 防火墙技术 297
12.4.4 虚拟专网技术 298
12.4.5 入侵检测 300
12.4.6 了解黑客 303
关键术语 304
思考与练习 305
附录 计算机发展大事记 307
主要参考文献 318