第1章 什么是计算思维 1
1.1 趣味故事:用小白鼠检验毒水瓶 1
1.2 什么是计算思维 2
1.2.1 二进制思维 2
1.2.2 二分法——人类普遍应用的思维 3
1.2.3 过程化与符号变换思维 4
1.2.4 计算思维的概念 5
1.3 扩展学习:计算思维的价值在哪里 5
1.3.1 0和1及其特性 6
1.3.2 偶校验:判断数据传输有无错误 7
1.3.3 类比小白鼠问题判断哪一位出错 8
1.4 基础知识:进位制及其相互转换 10
1.4.1 二进制、十进制与r进制 10
1.4.2 进位制之间的相互转换 12
1.5 计算之树——大学计算思维教育空间 14
1.6 为什么要学习和怎样学习计算思维 15
1.6.1 为什么:设计、构造和应用典型的计算工具需要计算思维 15
1.6.2 怎样学:了解认知学习的不同深度 16
1.6.3 怎样学:对比—联想式学习方法 16
第2章 计算思维基础:0和1与逻辑 17
2.1 用0和1表示万事万物 17
2.1.1 用0和1进行编码 17
2.1.2 用0和1编码表示英文字母与符号 18
2.1.3 用0和1表示中文文字 19
2.1.4 用0和1表示图像 21
2.1.5 习与练:识别0/1串表示的语义 22
2.1.6 扩展学习:用0和1表示万事万物 23
2.2 用0和1与逻辑表达计算 26
2.2.1 基本逻辑运算:与、或、非、异或 26
2.2.2 基于0和1表达的逻辑运算 27
2.2.3 习与练:应用逻辑运算表达复杂计算关系 28
2.3 用0和1与逻辑实现自动化 31
2.3.1 用开关性元件实现基本逻辑运算 31
2.3.2 用另一种符号表达逻辑运算 31
2.3.3 习与练:应用逻辑运算认识电子电路 32
2.4 为什么要学习和怎样学习本章内容 33
2.4.1 为什么:符号化—计算化—自动化思维是计算机最本质的思维模式 33
2.4.2 怎样学:习练式学习方法 34
第3章 计算思维基础:0和1与机器程序 35
3.1 如何让机器自动计算一个多项式 35
3.2 用0和1表达机器中的数据:机器数 36
3.2.1 机器存储数据的一些限制 36
3.2.2 有符号数及符号的表达 37
3.2.3 扩展学习:小数点的表达 39
3.2.4 扩展学习:减法是可以用加法实现的 40
3.3 用0和1表达机器能够完成的动作(指令):一种形式的编码 42
3.4 用0和1表达机器程序 43
3.4.1 习与练:读一读机器程序 43
3.4.2 习与练:改一改机器程序 44
3.5 基础知识:机器语言、汇编语言与高级语言 45
3.5.1 计算机语言 45
3.5.2 机器语言及微程序语言 46
3.5.3 汇编语言 46
3.5.4 高级语言 46
3.6 为什么要学习和怎样学习本章内容 48
3.6.1 为什么:数据、指令和程序是计算思维最基本的内容 48
3.6.2 怎样学:体验式学习方法 48
第4章 机器程序的执行 49
4.1 机器数据和机器程序的保存与读写:存储器 49
4.1.1 存储单元:存储地址与存储内容的区别 49
4.1.2 习与练:读一读存储器中的程序与数据 51
4.2 从概念层面理解机器程序的执行 54
4.3 从内部结构层面理解机器程序的执行 55
4.3.1 运算器:实现基本运算的部件 55
4.3.2 控制器:机器程序的解读与执行部件 55
4.3.3 一台完整的计算机 56
4.3.4 扩展学习:信号传递次序的控制机制——时钟与节拍 57
4.4 从动态执行过程层面理解机器程序的执行 58
4.4.1 机器指令的执行:取指令与执行指令 58
4.4.2 习与练:场景中模拟机器程序的执行 60
4.5 为什么要学习和怎样学习本章内容 63
4.5.1 为什么:学习计算机,首先要理解机器程序是如何被执行的 63
4.5.2 怎样学:场景理解式学习方法 63
第5章 程序构造是一种计算思维 65
5.1 表达程序的一种简单方法:数值与运算组合式 65
5.1.1 一种简单的语言:运算组合式 65
5.1.2 习与练:用运算组合式进行组合构造训练 67
5.2 程序构造基本——命名计算对象 69
5.2.1 计算对象的命名、再构造与计算执行 69
5.2.2 习与练:计算对象的命名、再构造与计算执行 70
5.3 程序构造基本:定义新运算/新过程 70
5.3.1 定义新运算符,即新的运算(或新的过程) 70
5.3.2 习与练:新运算符的定义、使用与计算执行 72
5.3.3 运算组合式的两种计算模式 75
5.4 扩展学习:复杂程序的构造 75
5.4.1 运算组合式中条件的表达方法 75
5.4.2 习与练:用条件运算组合式构造复杂的程序 77
5.5 为什么要学习和怎样学习本章内容 79
5.5.1 为什么:程序是体现计算系统千变万化功能的表达手段 79
5.5.2 怎样学:练中学与学中练 80
第6章 程序的基本构造手段:递归与迭代 81
6.1 一些需要递归表达的示例 81
6.2 计算中的递推式与递归函数 83
6.2.1 递推式与递归函数的概念 83
6.2.2 习与练:体验递归函数的构造魅力 84
6.3 体验两种不同递归函数的魅力 86
6.3.1 习与练:体验两种递归函数的计算过程 86
6.3.2 两种递归函数的计算过程分析 87
6.4 习与练:递归与迭代的运用 88
6.4.1 语言语法要素的递归定义及运用 88
6.4.2 汉诺塔——一种似乎只能用递归求解的问题 91
6.5 扩展学习:递归程序的执行过程 92
6.5.1 实现阶乘运算的递归程序和迭代程序执行过程比较 92
6.5.2 实现斐波那契数列的递归程序和迭代程序执行过程比较 94
6.6 为什么要学习和怎样学习本章内容 96
6.6.1 为什么:递归和迭代是表达机器重复执行动作的基本方法 96
6.6.2 怎样学:模拟式学习方法 96
第7章 计算机语言与程序编写 97
7.1 一个高级语言程序设计的示例及分析 97
7.2 高级语言程序的基本要素 100
7.2.1 常量、变量与赋值语句 100
7.2.2 算术表达式、比较表达式与逻辑表达式 101
7.2.3 分支结构控制语句If 102
7.2.4 有界循环结构控制语句For 103
7.2.5 条件循环结构控制语句Do While 104
7.2.6 函数结构语句 104
7.2.7 系统函数及其调用 106
7.2.8 几种计算机语言的程序基本要素书写规范比较 106
7.3 习与练:用高级语言编写程序 108
7.3.1 基本表达式及赋值语句的书写练习 108
7.3.2 基本程序控制语句的书写练习 109
7.3.3 啤酒瓶问题求解的程序设计 110
7.3.4 利用差分法求解多项式的程序设计:迭代法 111
7.3.5 阅读并模拟执行高级语言程序 113
7.4 为什么要学习和怎样学习本章内容 115
7.4.1 为什么:计算机语言是人与机器交流的工具 115
7.4.2 怎样学:写程序与读程序 115
第8章 理解复杂计算环境:计算思维与管理 116
8.1 基本的计算环境:存储体系 116
8.1.1 不同类型的存储器 116
8.1.2 不同类型的存储器需组合使用,实现性能—价格的优化 117
8.1.3 现代计算机的基本计算环境 119
8.2 计算环境的管理者:操作系统 120
8.2.1 操作系统的作用 120
8.2.2 “分工—合作—协同”思维理解操作系统 121
8.3 习与练:存储资源的化整为零与还零为整 123
8.3.1 一个化整为零的示例 123
8.3.2 磁盘与文件管理 124
8.3.3 进一步理解化整为零与还零为整 127
8.4 现代计算机的演进与发展 130
8.4.1 了解操作系统管理CPU的方式 130
8.4.2 现代计算机的演进与发展 132
8.5 为什么要学习和怎样学习本章内容 134
8.5.1 为什么:由理解“计算资源的管理”到理解“社会资源的管理” 134
8.5.2 怎样学:化复杂为简单 135
第9章 问题求解策略与算法表达 136
9.1 问题求解与算法:两个问题的提出 136
9.2 算法及其基本表达方法 139
9.2.1 一种问题求解思维及算法的概念 139
9.2.2 算法的3种基本表达方法 140
9.2.3 习与练:基本算法的表达 142
9.3 习与练:用遍历策略与贪心策略进行问题求解 147
9.3.1 用遍历策略求解TSP问题与背包问题 147
9.3.2 遍历策略求解存在什么问题 149
9.3.3 用贪心策略求解TSP问题与背包问题 151
9.4 习与练:算法表达 153
9.4.1 TSP问题求解的算法表达 153
9.4.2 背包问题求解的算法表达 154
9.5 为什么要学习和怎样学习本章内容 156
9.5.1 为什么:所有的计算问题都体现为算法 156
9.5.2 怎样学:阅读算法、表达算法与构造算法 156
第10章 数据管理思维也是一种计算思维 158
10.1 数据与数据管理 158
10.2 数据的基本形态:表与关系 159
10.2.1 熟悉表及其相关的术语 159
10.2.2 习与练:深入理解“表/关系”的特性 161
10.3 数据表的基本操作:关系操作 164
10.3.1 熟悉表的基本操作:关系操作 164
10.3.2 习与练:用关系操作及其组合操纵数据 165
10.4 扩展学习:关系及关系代数 170
10.4.1 关系:“表”的数学定义 170
10.4.2 关系代数:“表”操作的数学定义 172
10.5 为什么要学习和怎样学习本章内容 175
10.5.1 为什么:数据管理需要抽象、理论和设计 175
10.5.2 怎样学:理解—区分—命名—表达 176
第11章 数据库系统与数据库语言 177
11.1 数据库系统与数据库管理系统 177
11.1.1 数据库系统 177
11.1.2 关系数据库管理系统的基本思维模式 179
11.2 关系数据库语言SQL 180
11.2.1 由关系模型初步认识SQL 180
11.2.2 SQL语言总体概览 181
11.2.3 熟悉建立数据库的SQL语句 182
11.2.4 习与练:利用SQL语言建立数据库 183
11.3 习与练:用SQL语言进行数据查询 184
11.3.1 熟悉SELECT-FROM-WHERE-ORDER BY语句 184
11.3.2 习与练:用SELECT-FROM-WHERE-ORDER BY语句进行数据查询 185
11.4 习与练:用SQL语言进行数据统计计算 189
11.4.1 熟悉SELECT-FROM-WHERE-GROUP BY语句 189
11.4.2 习与练:用SELECT-FRCM-WHERE-GRCUP BY语句进行统计计算 189
11.5 扩展学习:用SQL语言进行复杂查询 192
11.5.1 熟悉子查询 192
11.5.2 利用子查询进行复杂查询 193
11.6 扩展学习:数据库管理系统的功能 194
11.7 为什么要学习和怎样学习本章内容 196
11.7.1 为什么:数据管理也是计算思维 196
11.7.2 怎样学:案例式对比式学习 196
第12章 数据与社会:数据也是生产力 197
12.1 什么是大数据 197
12.2 数据分析示例:多维数据分析 198
12.2.1 一个例子:超市数据库 198
12.2.2 熟悉最基本的数据分析方法——二维交叉表 200
12.2.3 由二维数据分析发展为多维数据分析 201
12.3 数据挖掘示例:炒股不看股盘看微博 204
12.3.1 啤酒与尿布的故事 204
12.3.2 理解一些基本概念 204
12.3.3 由事务数据库挖掘关联规则——数据挖掘示例 206
12.3.4 还能挖掘什么样的规则 209
12.3.5 还能从哪些形式数据中挖掘 210
12.4 大数据与社会 211
12.4.1 大数据运用的一个例子 211
12.4.2 大数据价值发现:不一样的思维 212
12.4.3 大数据的隐私问题 213
12.5 扩展学习:大数据的管理 213
12.5.1 大数据管理:由结构化到非结构化 213
12.5.2 各种资源聚集成库 215
12.6 为什么要学习和怎样学习本章内容 216
12.6.1 为什么:大数据改变了人的观念,不可能的也许就是可能 216
12.6.2 怎样学习:思维上要浮想联翩,技术上要不求甚解 216
第13章 网络化社会基础:计算机网络 218
13.1 计算机网络——社会互联的基础 218
13.1.1 通信基础 218
13.1.2 协议、分层与不同的编解码器 223
13.1.3 计算机网络的分类 226
13.2 对比邮政网络,理解计算机网络 228
13.2.1 解剖邮政网络 228
13.2.2 对比邮政网络,理解计算机网络中的有关层次及概念 229
13.3 扩展学习:TCP/IP不同层次协议的简要解析 233
13.3.1 网络层(IP层)——对应收发邮局层 233
13.3.2 应用层协议——对应发件人/收件人层 235
13.3.3 传输层协议——对应聚集点/分送点层 237
13.3.4 数据链路层——对应发送站点/接收站点层 239
13.3.5 物理层——对应运输层 239
13.4 为什么要学习和怎样学习本章内容 240
13.4.1 为什么:互联互通是信息社会的高级阶段 240
13.4.2 怎样学习:类比分析式学习法 240
第14章 信息网络:信息组织与信息传播的基本思维 241
14.1 机器成为信息的新载体,互联网成为信息传播的新手段 241
14.2 标记语言:信息网络构建的基础 243
14.2.1 熟悉信息网络中一种广泛应用的语言:标记语言 243
14.2.2 万维网的基本思维 246
14.3 无限资源库的发掘和利用 250
14.3.1 网络自动搜索——搜索引擎 251
14.3.2 互联网半/非结构化数据管理:XML 253
14.3.3 扩展学习:半/非结构化数据(文档)的查找与搜索 256
14.3.4 扩展学习:互联网网页排序的基本思维 257
14.4 为什么要学习和怎样学习本章内容 261
14.4.1 为什么:互联网的智能化基础 261
14.4.2 怎样学习:内容驱动技术的学习方法 261
第15章 网络与社会:互联的世界 262
15.1 互联网的创新思维 262
15.1.1 大众产生内容,大众创造价值 262
15.1.2 大众开发软件,大众消费软件,大众创造价值 263
15.1.3 由购买转为租用,由销售转为出租:云计算/云服务 265
15.2 “互联网+”的创新思维 266
15.2.1 什么是“互联网+” 266
15.2.2 基于物联网的产品全生命期服务:不卖产品卖服务 266
15.2.3 万般皆服务与共享经济 268
15.2.4 智慧地球与国家人工智能规划 270
15.3 网络化与社会:问题与挑战 272
15.4 为什么要学习和怎样学习本章内容 272
15.4.1 为什么:自动化—网络化—智能化是发展趋势 272
15.4.2 怎样学习:不怕做不到,只怕想不到 273