第1章 计算机学什么 1
1.1 探索黑匣子——从一个程序谈起 2
1.1.1 探索黑匣子之计算机硬件 2
1.1.2 探索黑匣子之计算机软件 3
1.1.3 探索黑匣子之操作系统 4
1.1.4 计算机系统的层次 4
1.2 计算机编程的基本概念 7
1.2.1 初窥高级语言 7
1.2.2 乘Python之舟进入计算机语言的世界 9
小结 14
1.3 计算机核心知识——算法 15
1.3.1 算法的重要性 15
1.3.2 解平方根算法一 16
1.3.3 解平方根算法二 18
1.3.4 解平方根算法三 19
小结 21
1.4 什么是计算机 22
1.4.1 历史上的计算机 22
1.4.2 嵌入式系统 23
1.4.3 未来的计算机 25
小结 27
1.5 计算机前沿知识——大数据 27
1.5.1 数据 27
1.5.2 大数据 28
1.5.3 大数据的应用 28
小结 31
1.5.4 对数据和逻辑的正确态度——沙老师的话 31
1.6 计算机科学之美 34
1.6.1 无处不在的计算机 34
1.6.2 计算机学科本身包含的知识面之广 36
本章总结 38
习题1 39
第2章 神奇的0与1 40
2.1 进位制的概念 40
小结 42
2.2 不同进制间的转换 43
2.2.1 二进制数转换为十进制数 43
2.2.2 十进制数转换为二进制数 45
2.2.3 二、八、十六进制的巧妙转换 49
小结 49
2.3 计算中的二进制四则运算 50
2.3.1 无符号整数与加法 51
2.3.2 乘法与除法 52
2.3.3 带符号整数的减法 52
2.3.4 小数—浮点数 55
小结 56
2.4 一切都是逻辑 57
2.4.1 什么是逻辑运算 58
2.4.2 电路实现逻辑(课时不足时,可不讲本节) 59
2.4.3 用逻辑做加法 61
2.4.4 加法与控制语句 65
小结 66
2.5 计算机中的存储 67
2.5.1 数据的存储形式 67
2.5.2 存储设备 71
小结 73
2.6 谈0与1的美 74
2.6.1 简单开关的无限大用 74
2.6.2 二进制逻辑的神奇妙用 74
2.6.3 “亢龙有悔”和“否极泰来” 75
2.6.4 “若见诸相非相,即见如来” 76
习题2 77
第3章 程序是如何执行的 80
3.1 引例 80
3.2 a=a+1的执行过程 81
3.2.1 分解a=a+1的执行步骤 81
3.2.2 CPU中的核心部件 81
3.2.3 汇编指令的概念 82
3.2.4 a=a+1的完整执行过程 84
小结 86
3.3 控制结构的执行 86
3.3.1 if-else选择语句 87
3.3.2 分支跳转指令 87
3.3.3 if-else选择语句的执行 88
3.3.4 while循环语句的执行 90
3.3.5 for循环语句的执行 91
小结 92
3.4 关于Python的函数调用 92
3.4.1 函数的基本概念 93
3.4.2 Python函数入门 94
3.4.3 局部变量与全局变量 95
小结 99
3.5 函数调用过程的分析 99
3.5.1 返回地址的存储 100
3.5.2 函数调用时栈的管理 102
小结 108
3.6 几种通用的编程语言 108
小结 113
3.7 对计算机程序的领悟 113
3.7.1 清晰的语义 114
3.7.2 严谨的逻辑 114
3.7.3 巧妙的结构 115
3.7.4 智能是程序计算出来的 115
小结 118
习题3 118
第4章 学习Python语言 122
4.1 简洁的Python 122
4.2 Python内置数据结构 123
4.2.1 Python基本数据类型 123
4.2.2 列表 126
4.2.3 再谈字符串 131
4.2.4 字典——类似数据库的结构 133
4.3 Python赋值语句 138
4.3.1 基本赋值语句 138
4.3.2 序列赋值 138
4.3.3 扩展序列赋值 139
4.3.4 多目标赋值 139
4.3.5 增强赋值语句 140
4.4 Python控制结构 141
4.4.1 if语句 141
4.4.2 while循环语句 143
4.4.3 for循环语句 146
4.5 Python函数调用 148
4.6 Python自定义数据结构 156
4.6.1 面向过程与面向对象 156
4.6.2 面向对象基本概念——类与对象 157
4.7 基于Python面向对象编程实现数据库功能 158
4.7.1 Python面向对象方式实现数据库的学生类 159
4.7.2 Python面向对象方式实现数据库的课程类 160
4.7.3 Python创建数据库的学生与课程类组 160
4.7.4 Python实例功能模拟 161
4.8 有趣的小乌龟——Python之绘图 162
4.8.1 初识小乌龟 162
4.8.2 小乌龟绘制基础图形 163
4.8.3 小乌龟绘制迷宫 166
习题4 168
第5章 计算思维的核心——算法 171
5.1 计算思维是什么 172
小结 176
5.2 递归的基本概念 176
小结 183
5.3 分治法 183
小结 189
5.4 贪心算法 189
小结 192
5.5 动态规划 192
小结 201
5.6 以老鼠走迷宫为例 201
小结 205
5.7 谈计算思维的美 205
5.7.1 递归思想的美 206
5.7.2 计算思维求解问题的基本方式的美 207
5.7.3 问题复杂度的研究之美 208
习题5 211
第6章 操作系统简介 214
6.1 计算机的启动 215
6.1.1 启动自检阶段 215
6.1.2 初始化启动阶段 216
6.1.3 启动加载阶段 216
6.1.4 内核装载阶段 216
6.1.5 登录阶段 217
6.2 认识操作系统 220
6.3 操作系统对硬件资源管理——硬件中断与异常 221
6.3.1 操作系统对I/O设备管理——硬件中断 222
6.3.2 操作系统对CPU的管理——硬件中断 223
6.3.3 操作系统对内存的管理——“异常”中断 225
6.4 操作系统对应用程序提供较安全可靠的服务——软件中断 226
6.4.1 内核态与用户态 226
6.4.2 系统调用——软件中断 229
6.4.3 常用系统调用 230
6.4.4 系统调用实例:read系统调用 230
6.5 操作系统对多运行环境的管理 231
6.5.1 进程 232
6.5.2 进程状态 232
6.5.3 进程调度 233
6.6 文件系统 235
6.6.1 文件基本概念 235
6.6.2 目录树结构 236
6.6.3 Python中的文件操作 237
6.6.4 学生实例的扩展 239
习题6 242
第7章 计算机网络与物联网 244
7.1 无远弗届的网络 244
小结 248
7.1.1 物理层(Physical Layer) 248
小结 250
7.1.2 数据链路层(Data Link Layer) 251
小结 252
7.1.3 网络层(Network Layer) 253
小结 257
7.1.4 传输层(Transport Layer) 258
小结 261
7.1.5 应用层(Application Layer) 262
小结 263
7.2 Web=? 263
7.2.1 一个简单的网页代码 263
小结 264
7.2.2 网页访问流程 264
小结 266
7.2.3 网页的动静之分 266
7.2.4 网站用什么说话 267
小结 269
7.2.5 关于本地计算机上的一个小网页 270
7.3 对计算机网络的领悟 271
7.4 初窥物联网 273
7.4.1 未来生活中的物联网 274
7.4.2 智能家居 274
7.4.3 智能交通 274
7.4.4 医疗物联网 277
7.4.5 物联网相关技术 278
小结 280
习题7 280
第8章 信息安全 282
8.1 引言 282
8.2 常见威胁 284
8.2.1 网络的威胁 284
8.2.2 恶意软件 287
小结 294
8.2.3 拒绝服务 295
8.3 措施和技术 297
8.3.1 密码学 297
小结 305
8.3.2 防火墙 306
8.3.3 入侵检测 307
8.3.4 网络安全 309
8.3.5 系统安全 310
8.3.6 杀毒软件 311
8.4 手机病毒 312
8.5 硬件安全:木马电路与旁道攻击 313
8.5.1 硬件木马 314
8.5.2 旁道攻击 315
8.6 谈信息安全之美 316
习题8 317
参考文献 320