第一章 计算思维基础知识 1
1.1 科学与计算科学 1
1.1.1 科学的概念 1
1.1.2 计算科学与计算学科 3
1.1.3 计算机科学与计算机学科 6
1.2 思维与科学思维 7
1.2.1 思维基础 7
1.2.2 科学思维 8
1.2.3 科学思维的分类 9
1.3 计算思维的概念 10
1.3.1 计算思维的定义 10
1.3.2 计算思维的特征 11
1.3.3 计算思维的本质 12
1.3.4 计算思维与计算机的关系 12
1.4 计算思维的应用领域 13
1.4.1 生物学 13
1.4.2 脑科学 14
1.4.3 化学 15
1.4.4 经济学 16
1.4.5 艺术 17
1.5 计算学科的典型问题 18
1.5.1 排序问题 19
1.5.2 汉诺塔问题 19
1.5.3 国王的婚姻 20
1.5.4 旅行商问题 20
本章小结 21
思考题 22
参考文献 22
第二章 计算理论与计算模型 23
2.1 计算的几种视角 23
2.1.1 计数与计算 23
2.1.2 逻辑与计算 24
2.1.3 算法与计算 25
2.2 计算理论 26
2.2.1 计算与计算过程 26
2.2.2 可计算性理论 27
2.2.3 停机问题 29
2.2.4 计算复杂性理论 30
2.2.5 问题求解的过程 33
2.3 计算模型 34
2.3.1 图灵机 34
2.3.2 冯·诺依曼机 36
2.3.3 量子计算机 39
2.3.4 生物计算机 42
2.4 计算科学的数学基础 45
2.4.1 数理逻辑 45
2.4.2 集合论 47
2.4.3 代数系统 49
2.4.4 图论 50
本章小结 53
思考题 53
参考文献 54
第三章 算法基础 55
3.1 算法的概念 55
3.1.1 算法的起源 55
3.1.2 算法的定义和特征 55
3.2 算法的描述 56
3.2.1 自然语言 57
3.2.2 流程图 57
3.2.3 伪代码 58
3.2.4 程序设计语言 60
3.3 算法的设计 61
3.3.1 穷举法 61
3.3.2 回溯法 62
3.3.3 递归 64
3.3.4 分治法 66
3.3.5 贪心法 67
3.3.6 动态规划 69
3.4 算法的评价和分析 70
3.4.1 算法的正确性 70
3.4.2 算法的复杂度 71
3.5 算法中的常用数学工具 76
3.5.1 求和 76
3.5.2 递归方程求解 78
本章小结 79
思考题 80
参考文献 80
第四章 程序设计语言 82
4.1 程序设计语言简介 82
4.1.1 机器语言 82
4.1.2 汇编语言 83
4.1.3 高级语言 84
4.2 程序设计语言发展历程 86
4.3 命令式程序设计语言 88
4.3.1 结构化程序设计 88
4.3.2 面向对象程序设计 94
4.4 函数式程序设计语言 98
4.5 逻辑式程序设计语言 100
4.6 标记语言和Web开发语言 102
4.6.1 标记语言 102
4.6.2 Web开发语言 103
4.7 SQL语言 106
本章小结 107
思考题 107
参考文献 107
第五章 计算机硬件基础 109
5.1 数制与运算 109
5.1.1 数制的概念 109
5.1.2 常用的数制 109
5.1.3 各种数制的转换 111
5.1.4 计算机为什么采用二进制 113
5.2 数据的存储与表示 113
5.2.1 存储容量单位及地址 113
5.2.2 数值的表示 115
5.2.3 字符的表示 118
5.2.4 汉字的表示 119
5.2.5 声音的表示 121
5.2.6 图像的表示 122
5.3 布尔逻辑与门电路 124
5.3.1 布尔逻辑和运算 124
5.3.2 门电路 125
5.3.3 组合逻辑电路举例 127
5.4 计算机硬件组成 128
5.4.1 计算机硬件结构 128
5.4.2 中央处理器 129
5.4.3 存储系统 131
5.4.4 输入设备 136
5.4.5 输出设备 139
5.5 指令系统及执行 142
5.5.1 指令和程序 142
5.5.2 计算机的工作过程 143
5.6 组网与互联网 146
5.6.1 网络基础知识 146
5.6.2 网络体系结构 153
5.6.3 因特网及应用 157
5.6.4 网络安全基础 164
5.6.5 物联网与云计算 171
本章小结 176
思考题 177
参考文献 178
第六章 计算机软件基础 180
6.1 计算机软件概述 180
6.1.1 计算机软件的概念 180
6.1.2 计算机软件的发展历史 181
6.1.3 计算机软件的层次结构 181
6.1.4 计算机软件与硬件的关系 182
6.2 操作系统 183
6.2.1 操作系统的概念 183
6.2.2 常用操作系统 190
6.2.3 协调机器的活动 194
6.2.4 竞争控制 197
6.2.5 操作系统的计算思维 199
6.3 办公软件 202
6.3.1 文字处理 202
6.3.2 电子表格 203
6.3.3 演示文稿 203
6.4 数据库系统 204
6.4.1 数据库系统基础 204
6.4.2 关系模型 207
6.4.3 数据挖掘 209
6.5 软件工程 210
6.5.1 软件危机 211
6.5.2 软件工程定义 211
6.5.3 软件生存周期 211
6.5.4 软件工程方法 213
6.6 人工智能 214
6.6.1 人工智能基础 214
6.6.2 人工神经网络 218
6.6.3 机器人学 220
本章小结 222
思考题 223
参考文献 223
第七章 计算文化与计算机职业道德教育 225
7.1 计算文化 225
7.1.1 计算文化与专业素质 225
7.1.2 人类对计算本质的认识 228
7.1.3 计算文化历史:其人其事 233
7.1.4 计算机发展的启示 244
7.2 网络文化 245
7.2.1 网络文化概述 246
7.2.2 网络文化消费 251
7.2.3 人肉搜索与自组织理论 253
7.2.4 网络舆情分析与引导 255
7.2.5 社会计算与平行系统 258
7.3 计算机职业道德教育 261
7.3.1 道德和职业道德 261
7.3.2 计算机伦理与网络伦理 267
7.3.3 计算机知识产权 273
7.3.4 网络隐私与自由 277
7.3.5 计算机犯罪 280
本章小结 283
思考题 284
参考文献 285
索引 286