第1章 绪论 1
本章导读 1
知识要点 1
1.1 科学与科学研究 2
1.1.1 科学与科学理论 2
1.1.2 科学研究方法 3
1.1.3 学习与知识创新 5
1.2 人类思维与逻辑学 6
1.2.1 人类的思维活动 6
1.2.2 逻辑思维与逻辑学 8
1.3 信息社会与知识社会 13
1.3.1 信息社会定义 13
1.3.2 信息社会的特征 14
1.3.3 个人素质与信息素养 15
1.4 计算科学与计算思维 17
1.4.1 计算与计算科学 17
1.4.2 计算思维 19
1.5 学科交叉与融合 23
1.6 思想的力量与启示 25
本章小结 31
思考题 31
第2章 计算与计算机 33
本章导读 33
知识要点 33
2.1 数与计算问题 34
2.1.1 数的起源 34
2.1.2 计算工具 36
2.2 计算的自动化 42
2.2.1 电子计算机诞生前夜 42
2.2.2 计算机的理论基础 45
2.2.3 计算模型与图灵机 50
2.2.4 电子计算机的诞生 53
2.2.5 计算机的发展 56
2.3 数据与数据编码 60
2.3.1 数与进制 60
2.3.2 数的原码、反码与补码表示 64
2.3.3 数的定点表示和浮点表示 65
2.3.4 字符数据与字符编码 68
2.3.5 数据的存储单位 73
2.4 计算机系统结构 74
2.4.1 计算机体系结构 74
2.4.2 计算机的组成 77
2.4.3 微型计算机举例 85
2.5 计算机系统管理 88
2.5.1 计算机操作系统 88
2.5.2 处理器管理 90
2.5.3 存储器管理 91
2.5.4 文件与外存管理 92
2.5.5 设备管理 95
2.5.6 人机界面 96
2.5.7 几种典型的操作系统 97
2.6 计算机的运行 99
2.6.1 计算机是如何启动的 100
2.6.2 计算机运行时的内存视图 102
2.6.3 计算机的关闭 103
2.7 计算机应用 104
2.7.1 数值计算 104
2.7.2 数据处理 104
2.7.3 计算机辅助 104
2.7.4 过程控制 105
2.7.5 人工智能 105
本章小结 107
思考题 107
第3章 问题求解与算法 110
本章导读 110
知识要点 110
3.1 问题与问题求解 111
3.1.1 领域问题及形式化描述 111
3.1.2 问题抽象与数学建模 115
3.1.3 计算机求解问题模型 118
3.2 算法与算法分析 121
3.2.1 算法及其描述 121
3.2.2 算法复杂性分析 125
3.3 算法设计及算法分类 131
3.3.1 算法设计 131
3.3.2 穷举法 132
3.3.3 递推法 134
3.3.4 递归法 137
3.3.5 回溯法 140
3.3.6 迭代法 143
3.3.7 分治法 145
3.3.8 贪心法 147
3.3.9 动态规划法 150
3.3.10 其他算法 153
3.4 搜索问题与查找算法 154
3.4.1 搜索问题 155
3.4.2 顺序查找 155
3.4.3 折半查找 157
3.5 排序问题及排序算法 159
3.5.1 排序问题 160
3.5.2 选择排序 160
3.5.3 交换排序 161
3.5.4 插入排序 165
3.5.5 归并排序 166
3.5.6 基数排序 167
3.6 网络搜索问题 169
3.6.1 搜索引擎及其工作原理 169
3.6.2 PageRank排序算法 173
3.6.3 搜索引擎的启示 174
本章小结 175
思考题 175
第4章 数据与数据结构 177
本章导读 177
知识要点 177
4.1 数、数据及数据结构 178
4.1.1 数与数据的概念 178
4.1.2 数据抽象与数据类型 180
4.1.3 数据结构 182
4.2 线性结构 183
4.2.1 排队问题 183
4.2.2 线性表 184
4.2.3 堆栈与队列 188
4.3 树形结构 190
4.3.1 博弈与决策问题 190
4.3.2 树形结构 193
4.3.3 二叉树 194
4.3.4 常用操作及应用 197
4.4 图结构 199
4.4.1 图的概念 199
4.4.2 图的存储 202
4.4.3 图的遍历 205
4.4.4 生成树和最小生成树 206
4.5 应用举例 208
4.5.1 网络与最短通路问题 208
4.5.2 工程拓扑排序问题 211
4.5.3 工程关键路径问题 211
本章小结 214
思考题 214
第5章 计算机程序 216
本章导读 216
知识要点 216
5.1 计算机程序概述 217
5.1.1 自然语言与形式语言 217
5.1.2 抽象与程序设计语言 219
5.1.3 计算机程序及其分类 223
5.1.4 问题约简与结构化编程 224
5.1.5 计算机软件系统开发 225
5.2 C/C++程序设计语言 227
5.2.1 C语言及C程序结构 227
5.2.2 C语言基本符号 229
5.2.3 数据与数据类型 232
5.2.4 计算、运算符与表达式 233
5.2.5 赋值语句和输入/输出 234
5.2.6 分支语句 235
5.2.7 循环控制语句 239
5.2.8 函数 244
5.3 面向对象的思维方式 247
5.3.1 实体、对象及其抽象 247
5.3.2 对象的创建及操作 252
5.4 数据存储与管理 254
5.4.1 数据文件及其操作 254
5.4.2 数据库与数据库管理系统 258
5.4.3 结构化查询语言SQL 261
5.5 Web应用 274
5.5.1 计算机应用模式的演变 274
5.5.2 Web应用及其优势 276
本章小结 277
思考题 277
第6章 计算机网络 282
本章导读 282
知识要点 282
6.1 计算机网络技术 283
6.1.1 计算机网络的产生与发展 283
6.1.2 计算机网络的功能和分类 284
6.1.3 开放系统互联与OSI参考模型 287
6.1.4 网络协议的智慧 290
6.1.5 TCP/IP网络模型 291
6.1.6 网络设备及其功能 297
6.2 互联网 301
6.2.1 ARPA计划 301
6.2.2 互联网的诞生 304
6.2.3 维网 305
6.2.4 连接到互联网 308
6.3 网络服务 309
6.3.1 计算机应用的客户/服务器模式 309
6.3.2 域名与域名解析 311
6.3.3 Web服务与浏览器/服务器模式 315
6.3.4 电子邮件服务 317
6.3.5 远程维护与远程控制 319
6.4 网络与信息安全 321
6.4.1 网络信息安全问题 322
6.4.2 信息安全的主要威胁 323
6.4.3 数据加密技术 324
6.4.4 信息安全措施 328
6.4.5 病毒与木马及其防范 329
6.5 互联网社会效应 331
6.5.1 新兴的传播媒介 332
6.5.2 网络通信 332
6.5.3 电子商务的兴起 333
6.5.4 社交网络 336
6.5.5 网络社会生态学 339
本章小结 340
思考题 340
第7章 计算科学前沿 342
本章导读 342
知识要点 342
7.1 计算的新模式 343
7.1.1 并行计算与超级计算机 343
7.1.2 分布式计算 346
7.1.3 网格计算 347
7.1.4 云计算 348
7.1.5 无处不在的计算 349
7.2 数字化生存 352
7.2.1 数字化地球 352
7.2.2 物联网 355
7.2.3 智慧城市 356
7.2.4 大数据技术 358
7.2.5 个人隐私 359
7.3 新型计算机 360
7.3.1 超导计算机 360
7.3.2 量子计算机 362
7.3.3 光计算机 366
7.3.4 神经网络计算机 367
7.3.5 DNA生物计算机 369
本章小结 372
思考题 372
参考文献 373