第1章 作为科学的计算 1
计算的范型 5
计算的重要原理 9
计算在科学中的位置 12
本书的关注点 13
总结 14
致谢 14
第2章 计算领域 15
领域和基本原理 16
信息安全 19
人工智能 20
云计算 22
大数据 24
总结 26
第3章 信息 27
信息的表示 28
通信系统 30
信息的测量 34
信息的转换 38
交互系统 40
解决悖论 41
信息和发现 42
总结 43
致谢 44
第4章 机器 45
机器 46
可以计算的机器 49
程序及其表示 53
栈式计算机:计算机系统的一种简单模型 54
过程与异常 56
选择的不确定性 61
结论 64
第5章 程序设计 65
程序、程序员和程序设计语言 66
程序设计实践 68
程序中的错误 70
自动翻译 72
总结 76
第6章 计算 78
简单问题 80
实例1 简单的线性搜索 81
实例2 二分搜索 81
实例3 排序 82
实例4 矩阵乘法 84
指数级困难问题 85
实例5 所有的十位数 85
实例6 背包问题 85
实例7 参观所有城市 86
实例8 合数分解 87
计算困难但容易验证的问题 88
NP完全 89
不可计算问题 92
总结 96
第7章 存储 98
存储系统 99
存储器的基本使用模型 100
命名 101
映射 105
虚拟存储 105
共享 107
能力 108
认证 111
层级结构中的定位 112
为什么局部性是基础 116
结论 117
第8章 并行 119
并行计算的早期方向 120
并行系统的模型 123
协作的顺序进程 124
功能系统 124
事件驱动的系统 125
MapReduce系统 125
协作的顺序进程 125
功能系统 131
结论 134
第9章 排队 136
排队论遇上计算机科学 137
用模型计算和预测 139
服务器、作业、网络和规则 140
瓶颈 144
平衡方程 146
ATM 147
电话交换机 148
分时系统 149
用模型来计算 150
结论 152
第10章 设计 154
什么是设计 156
软件系统的准则 158
需求 158
正确性 159
容错性 159
时效性 160
适用性 160
设计原理、模式和示意 161
原理 161
模式 162
示意 163
软件系统的设计原理 163
层级式聚合 164
封装 165
级别 166
虚拟机 168
对象 170
客户端与服务器 171
总结 172
第11章 网络 173
弹性网络 174
数据包交换 175
互联网络协议 178
传输控制协议 179
客户端与服务器 180
域名系统 181
网络软件的组织结构 183
万维网 184
网络科学 187
致谢 188
第12章 后记 189
没有意识的机器 189
智能机器 189
架构和算法 191
经验思维 192
一个崭新的机器时代来临 192
我们的思维方式正在转变 193
设计的核心性 193
各章概要 195
注释 200
参考文献 213
索引 227