第1章 计算机的产生与发展 1
1.1计算的起源 1
1.1.1数的概念及记数方法的诞生 1
1.1.2古埃及数学及记数体系 2
1.1.3巴比伦数学及记数体系 3
1.1.4中国古代记数体系及算术 3
1.1.5古印度数学及记数体系 6
1.2早期的计算工具 6
1.2.1世界最早的计算工具——中国算筹 6
1.2.2耐普尔算筹 7
1.2.3计算尺 8
1.3机械计算机的研制 9
1.4电磁计算机 11
1.5电子计算机的发明 14
1.6电子计算机的发展与应用 17
1.6.1电子计算机的发展阶段 17
1.6.2巨型机的研究与发展 20
1.6.3微型机的发展 23
科学人物 25
参考文献 28
第2章 计算理论 29
2.1计算科学的理论基础 29
2.1.1布尔代数 29
2.1.2有穷自动机 31
2.1.3图灵机 34
2.2计算科学概述 36
2.2.1计算科学的基本问题 36
2.2.2计算科学的基本内容 37
2.2.3计算科学与其他相关学科的关系 39
2.3计算科学中的典型问题 39
2.3.1哥尼斯堡七桥问题 40
2.3.2四色问题 40
2.3.3 36军官问题 41
2.3.4哈密顿回路及旅行推销员问题 42
2.3.5 Hanoi塔问题 43
2.3.6生产者-消费者问题与哲学家共餐问题 44
2.4计算机学科的典型方法 46
2.4.1抽象方法 46
2.4.2构造性方法 46
2.4.3公理化方法 47
2.4.4形式化方法 48
2.4.5原型方法与演化方法 48
2.5算法复杂度 48
2.5.1算法复杂度的衡量 49
2.5.2 NP完全理论 51
2.6公钥密码体制 53
2.6.1预备知识 55
2.6.2 RSA公钥密码体制 57
知识链接 58
科学人物 59
阅读材料 62
参考文献 71
第3章 数据表示与数字逻辑 72
3.1数制 72
3.1.1进位记数制 72
3.1.2不同进位制数的转换 74
3.2编码 79
3.2.1 BCD 79
3.2.2文本 81
3.2.3图像 85
3.2.4声音 86
3.2.5可靠性编码 86
3.3二进制逻辑运算 91
3.4二进制算术运算 92
3.4.1原码、反码及补码 92
3.4.2定点数与浮点数 95
3.4.3算术运算 97
3.5逻辑门电路 100
3.5.1晶体管 100
3.5.2非门 102
3.5.3与非门 102
3.5.4或非门 102
3.6组合逻辑电路 103
3.6.1逻辑函数 103
3.6.2译码器 104
3.6.3多路复用器 105
3.6.4加法器 105
3.7时序逻辑电路 107
3.7.1存储单元 107
3.7.2时序逻辑电路的结构 110
3.7.3计数器 110
3.7.4内存 112
知识链接 113
阅读材料 114
参考文献 117
第4章 计算机组成与体系结构 118
4.1概述 118
4.1.1冯·诺依曼计算机结构 118
4.1.2计算机组成与体系结构的差别 119
4.1.3计算机的分类 120
4.2中央处理器 121
4.2.1机器指令 121
4.2.2 CPU的功能与组成 122
4.2.3 CISC和RISC 125
4.2.4指令流水线 126
4.2.5向量计算机 127
4.3存储器 128
4.3.1存储器概述 128
4.3.2存储器的层次结构 129
4.3.3半导体存储器 130
4.3.4主存储器 132
4.3.5 Cache 133
4.3.6磁盘存储器 136
4.3.7光盘存储器 138
4.3.8虚拟存储器 139
4.3.9 NAS和SAN 143
4.4总线 145
4.4.1总线的基本概念 145
4.4.2总线的分类 146
4.4.3总线特性及性能指标 147
4.4.4总线标准 148
4.5输入输出系统 152
4.5.1输入输出设备 152
4.5.2输入输出接口 153
4.5.3 I/O编址 154
4.5.4 I/O控制方式 154
4.6并行计算机 157
4.6.1并行计算机的分类 157
4.6.2片内并行 158
4.6.3单片多处理器 159
4.6.4协处理器 160
4.6.5多处理器 160
4.6.6多计算机 161
4.6.7网格 162
知识链接 164
阅读材料 165
参考文献 168
第5章 操作系统 170
5.1操作系统概论 170
5.1.1操作系统的功能 170
5.1.2操作系统的特征 171
5.2操作系统的发展与分类 172
5.2.1手工处理阶段 172
5.2.2批处理系统 172
5.2.3多道程序系统 174
5.2.4分时操作系统 175
5.2.5实时操作系统 177
5.2.6微机操作系统 178
5.2.7多处理器系统 178
5.2.8网络操作系统 179
5.2.9分布式操作系统 181
5.3进程管理 182
5.3.1进程的概念 182
5.3.2进程的组成 183
5.3.3进程的创建 184
5.3.4进程的终止 184
5.3.5进程的状态 185
5.3.6处理器调度 185
5.3.7线程 188
5.4进程的并发控制 189
5.4.1进程的互斥 189
5.4.2进程的同步 191
5.4.3信号量与PV操作 191
5.4.4管程 192
5.4.5死锁与饥饿 193
5.5存储管理 194
5.5.1存储管理的功能 195
5.5.2存储管理基本技术 196
5.5.3分页和分段存储管理 197
5.5.4虚拟存储技术 197
5.6文件系统 198
5.6.1文件的概念 198
5.6.2文件的实现 200
5.6.3目录的概念 203
5.6.4目录的实现 205
5.6.5文件的共享和保护 206
5.7设备管理 207
5.7.1设备管理的目标与功能 207
5.7.2设备的分类 208
5.7.3输入输出控制方式 209
5.7.4缓冲技术 209
5.7.5设备驱动程序 210
5.7.6设备分配 210
知识链接 212
阅读材料 214
参考文献 225
第6章 高级程序设计语言 226
6.1程序设计语言的发展 226
6.1.1机器语言 226
6.1.2汇编语言 227
6.1.3高级语言 229
6.2程序设计的一般过程 230
6.2.1分析问题寻求算法 230
6.2.2程序设计 231
6.2.3程序实现 231
6.2.4程序正确性检验 231
6.3程序的基本结构 232
6.4数据类型与运算 233
6.4.1基本字符、标识符和关键字 234
6.4.2类型与数据表示 235
6.4.3算术运算符、算术表达式 238
6.4.4计算与类型 240
6.5数组 241
6.5.1数组的概念、定义和使用 241
6.5.2数组实例 244
6.6程序控制结构 246
6.6.1条件语句 247
6.6.2 while循环语句 249
6.6.3 for循环语句 250
6.7函数 252
6.7.1一个简单的函数调用 252
6.7.2函数定义的形式 254
6.7.3形参与实参 255
6.7.4函数与程序 256
6.8程序设计方法 258
6.8.1结构化程序设计 258
6.8.2面向对象程序设计 259
6.8.3程序设计方法的发展 260
6.9程序的书写规则 261
6.9.1变量的命名 261
6.9.2语句的层次和对齐 261
6.9.3注释 262
知识链接 263
阅读材料 264
参考文献 267
第7章 数据结构与算法 268
7.1概述 268
7.1.1数据结构 268
7.1.2算法 269
7.2线性结构 269
7.2.1数组 269
7.2.2链表 271
7.2.3栈 273
7.2.4队列 275
7.3树 277
7.3.1树的实现 277
7.3.2二叉树包 279
7.4图 282
7.4.1图的存储 283
7.4.2图的遍历 284
7.4.3最小生成树 285
7.5暴力求解策略 287
7.5.1 0-1背包问题 288
7.5.2八皇后问题 290
7.6递归与分治策略 291
7.6.1递归 292
7.6.2分治策略 293
7.7动态规划 294
7.8贪心算法 298
7.9回溯法 299
7.10分支限界法 302
知识链接 303
科学人物 303
参考文献 305
第8章 数据库技术 306
8.1数据管理的发展 306
8.2数据模型与数据库系统 309
8.2.1数据模型及其组成要素 309
8.2.2概念模型 310
8.2.3基于层次模型的数据库系统 311
8.2.4基于网状模型的数据库系统 312
8.2.5基于关系模型的数据库系统 313
8.2.6常用的数据库管理系统 315
8.3 SQL 316
8.3.1 SQL的产生和发展 316
8.3.2 SQL的特点 317
8.3.3 SQL的功能 317
8.4事务处理技术与并发控制 318
8.4.1事务 318
8.4.2数据库并发控制 319
8.5几种新型的数据库系统 320
8.5.1分布式数据库 321
8.5.2联邦式数据库 321
8.5.3并行数据库 322
8.5.4主动数据库 322
8.5.5知识库 322
8.5.6面向对象数据库 323
8.5.7多媒体数据库 324
8.5.8模糊数据库 324
8.5.9数据仓库 324
8.6数据库系统的应用 325
8.6.1信息与信息系统 325
8.6.2事务处理系统 327
8.6.3管理信息系统 327
8.6.4决策支持系统 328
8.6.5数据挖掘 329
知识链接 330
科学人物 330
参考文献 335
第9章 软件工程 336
9.1软件与软件工程 336
9.1.1软件与软件危机 336
9.1.2软件工程简介 338
9.2可行性论证与需求分析 340
9.2.1可行性论证 340
9.2.2需求分析 340
9.3总体设计 342
9.3.1总体设计的任务 342
9.3.2总体设计的过程 343
9.4详细设计与软件编码 344
9.4.1详细设计 344
9.4.2软件编码 345
9.5软件测试 346
9.5.1软件测试的基本概念 347
9.5.2软件测试方法 348
9.5.3软件测试策略 349
9.6软件维护 350
9.6.1软件维护的概念 350
9.6.2软件维护的特点 351
9.6.3软件维护的过程 351
9.7面向对象方法 352
9.7.1面向对象分析 352
9.7.2面向对象设计 353
9.7.3面向对象实现 355
9.8统一建模语言 355
9.8.1 UML的组成 356
9.8.2静态建模 356
9.8.3动态建模 357
9.8.4基于UML的统一建模过程 358
阅读材料 358
参考文献 362
第10章 计算机网络 364
10.1计算机网络的产生与发展 364
10.2计算机网络的结构与组成 368
10.2.1计算机网络分类 368
10.2.2计算机网络的拓扑结构 369
10.3计算机网络体系结构 371
10.3.1通信协议 371
10.3.2网络系统的体系结构 372
10.3.3开放系统互连参考模型 374
10.3.4 TCP/IP参考模型 376
10.3.5 OSI参考模型和TCP/IP参考模型的比较 383
10.3.6 5层网络参考模型 384
10.4常用计算机网络设备 385
10.5计算机网络安全 391
10.5.1基本概念 391
10.5.2网络安全攻击 392
10.5.3网络安全策略 393
10.5.4网络安全机制 393
10.5.5防火墙 396
10.5.6入侵检测 398
10.6网络应用中的社会问题 401
10.7计算机网络技术的新发展 403
10.7.1新型网络应用技术 403
10.7.2宽带网络技术 405
10.7.3统一网络技术 406
10.7.4 P2P网络研究与发展 409
10.7.5计算机网络技术发展展望 414
阅读材料 416
参考文献 428
第11章 计算机科学前沿技术 429
11.1人工智能 429
11.1.1人工智能的产生 429
11.1.2人工智能主要研究内容 435
11.1.3人工智能发展与应用展望 438
11.2人工神经网络 440
11.2.1多层感知神经网络 441
11.2.2自组织竞争型神经网络 442
11.2.3 Hopfield神经网络 442
11.3深度学习 444
11.3.1神经网络与深度学习的发展历程 444
11.3.2生活中的深度学习 445
11.3.3卷积神经网络的构成 445
11.3.4卷积神经网络的结构 448
11.4区块链 456
11.4.1比特币 456
11.4.2区块链技术 461
11.4.3结束语 470
11.5云计算 470
11.5.1云计算简介 471
11.5.2云计算的特点 472
11.5.3云计算技术分类 473
11.6大数据 476
11.6.1大数据的概念和特征 476
11.6.2大数据的产生和数据类型 477
11.6.3大数据计算模式和系统 478
11.6.4大数据的主要技术层面和技术内容 478
11.6.5大数据的典型应用 480
科学人物 481
参考文献 487