内容简介 · · · · · ·
从1999年开始,作者在普林斯顿大学开设了一门名叫“我们世界中的计算机”的课程(COS 109:Computers in Our World),这门课是向非计算机专业的学生介绍计算机基本常识的,多年来大受学生追捧。除了向学生讲解计算机理论知识,这门课还有相应的实验课——学生可以试着用流行的编程语言写几行代码,大家一起讨论苹果、谷歌和微软的技术如何渗入日常生活的每个角落。本书就是以这门课程的讲义为主要内容重新编写而成,它解释了计算机和通信系统的工作原理,并讨论了新技术带来的社会、政治和法律问题。
普林斯顿计算机公开课的创作者
· · · · · ·
-
布莱恩·克尼汉 作者
作者简介 · · · · · ·
Brian W. Kernighan
世界顶尖计算机科学家,曾为贝尔实验室计算科学研究中心高级研究人员,现为普林斯顿大学教授。他是AWK语言和AMPL语言的发明人,还参与过UNIX和许多其他系统的开发,同时出版了《The C Programming Language》《The Practice of Programming》《The Elements of Programming Style》等在计算机领域影响深远的著作。
Kernighan主张所有人都应该了解计算机,在他心目中,此书相当于“写给未来总统的计算机读物”,是新一代公民必读之作。本书中讲解的内容甚至会影响我们在微博和社区上的活动,以及使用智能手机的方式。
目录 · · · · · ·
前言
引言
第一部分 硬件
第1章 计算机里有什么 …… 6
1.1 逻辑结构 …… 9
1.1.1 CPU …… 10
1.1.2 RAM …… 12
1.1.3 硬盘和其他二级存储器 …… 13
1.1.4 其他 …… 16
1.2 物理结构 …… 17
1.3 摩尔定律 …… 22
1.4 小结 …… 24
第2章 位、字节和信息的表示 …… 25
2.1 模拟和数字 …… 26
2.2 模数转换 …… 28
2.3 位、字节和二进制 …… 36
2.3.1 位 …… 36
2.3.2 2的幂和10的幂 …… 38
2.3.3 二进制数 …… 39
2.3.4 字节 …… 42
2.4 小结 …… 45
第3章 深入CPU …… 47
3.1 玩具计算机 …… 48
3.1.1 第一个玩具程序 …… 49
3.1.2 第二个玩具程序 …… 51
3.1.3 跳转指令 …… 53
3.1.4 RAM中的表示 …… 56
3.2 真实的CPU …… 58
3.3 缓存 …… 61
3.4 其他种类的计算机 …… 63
3.5 小结 …… 66
硬件总结 …… 68
第二部分 软件
第4章 算法 …… 74
4.1 线性算法 …… 76
4.2 二分查找 …… 78
4.3 排序 …… 81
4.4 难题与复杂性 …… 87
4.5 小结 …… 90
第5章 编程与编程语言 …… 93
5.1 汇编语言 …… 94
5.2 高级语言 …… 96
5.3 软件开发 …… 105
5.3.1 库、接口和开发包 …… 107
5.3.2 缺陷 …… 109
5.4 知识产权 …… 112
5.4.1 商业秘密 …… 113
5.4.2 版权 …… 113
5.4.3 专利 …… 115
5.4.4 许可 …… 117
5.5 标准 …… 120
5.6 开源 …… 121
5.7 小结 …… 124
第6章 软件系统 …… 126
6.1 操作系统 …… 127
6.2 操作系统的工作原理 …… 134
6.2.1 系统调用 …… 136
6.2.2 设备驱动程序 …… 136
6.3 其他操作系统 …… 138
6.4 文件系统 …… 139
6.4.1 磁盘文件系统 …… 141
6.4.2 清除文件 …… 144
6.4.3 其他文件系统 …… 147
6.5 应用程序 …… 148
6.6 软件的层次 …… 152
6.7 小结 …… 155
第7章 学习编程 …… 157
7.1 编程语言的概念 …… 159
7.2 第1个JavaScript范例 …… 160
7.3 第2个JavaScript范例 …… 162
7.4 循环语句 …… 164
7.5 条件语句 …… 166
7.6 库和接口 …… 168
7.7 JavaScript的工作原理 …… 170
7.8 小结 …… 171
软件总结 …… 173
第三部分 通信
第8章 网络 …… 184
8.1 电话与调制解调器 …… 185
8.2 电缆与DSL …… 186
8.3 局域网与以太网 …… 189
8.4 无线 …… 192
8.5 手机 …… 195
8.6 带宽 …… 200
8.7 压缩 …… 202
8.8 错误检测与纠错 …… 205
8.9 小结 …… 207
第9章 因特网 …… 209
9.1 因特网概述 …… 211
9.2 域名与地址 …… 215
9.2.1 域名系统 …… 216
9.2.2 IP地址 …… 218
9.2.3 根服务器 …… 219
9.2.4 注册自己的域名 …… 221
9.3 路由 …… 222
9.4 TCP/IP …… 224
9.4.1 IP——因特网协议 …… 226
9.4.2 TCP——传输控制协议 …… 227
9.5 高层协议 …… 229
9.5.1 Tel与SSH——远程登录 …… 231
9.5.2 SMTP——简单邮件传输协议 …… 232
9.5.3 文件共享与点对点协议 …… 234
9.6 因特网上的版权 …… 236
9.7 物联网 …… 239
9.8 小结 …… 240
第10章 万维网 …… 244
10.1 万维网的工作原理 …… 246
10.2 HTML …… 248
10.3 cookie …… 251
10.4 网页上的动态内容 …… 254
10.5 其他地方的动态内容 …… 256
10.6 病毒、蠕虫和特洛伊木马 …… 258
10.7 网络安全 …… 261
10.7.1 攻击客户机 …… 262
10.7.2 攻击服务器 …… 268
10.7.3 攻击传输中的信息 …… 270
10.8 自我防御 …… 271
10.9 小结 …… 275
第11章 数据与信息 …… 277
11.1 搜索 …… 278
11.2 跟踪 …… 285
11.3 社交网络 …… 294
11.4 数据挖掘与聚合 …… 298
11.5 云计算 …… 302
11.6 小结 …… 309
第12章 隐私与安全 …… 311
12.1 加密 …… 312
12.1.1 密钥加密 …… 315
12.1.2 公钥加密 …… 317
12.2 匿名 …… 323
12.2.1 Tor与Tor浏览器 …… 324
12.2.2 比特币 …… 329
12.3 小结 …… 331
第13章 结束语 …… 335
注释 …… 341
术语表 …… 357
· · · · · · (收起)
原文摘录 · · · · · ·
-
第2章位、字节和信息的表示 举个例子,我们可以用0表示“关”,用1表示“开”,或者反过来,哪个值表示哪个状态都无所谓,只要大家都没有意见就 行。图2-7是我的打印机的电源开关,由此可见,惯例还是用0表示关,用1表示“开”。 图27开关和标准开关标志 一个位表示开/关、真/假之类的二选一的情形没有问题,但我们经常还要面对更多选项,表示更复杂的事物。为此,可以使用组位,然后为不同的0和1的组合赋予不同的含义。比如,可以用两个位来表示大学四年:新生(00)、大ニ(01)、大三(10)和毕业班(11)。如果再多考虑一种情况,比如研究生,那两个位就不够用了,因为两个位只有4种组合,没有第5种可能。 (查看原文) —— 引自章节:2.3.1 位 …… 36 -
那为什么用数字代替模拟呢?毕竟,我们的世界是模拟的,而像手表和速度表这样的模拟设备更容易让人一目了然。然而,很多现代技术都是数字化的,在很多方面,这就是本书想讲的内容。来自外部世界的数据——声音、图像、位置变化、温度等,一输入就被转换为数字形式,而且最后输出时还会被转换回模拟形式。这么做的原因是数字数据对于计算机来说更容易处理。它可以以多种方式存储、运输和加工,而无论其来源如何。就像我们将在第8章看到的那样,数字信息可以通过压缩重复或不重要的信息的方式进行压缩。它可以为了安全和隐私目的而加密,与其他数据合并,精确地复制,通过互联网传输到任意地区,而且可以存储在无数不同种类的设备中。然而对于模拟信息,大部分这样的处理是不可行的,甚至根本无法做到。 数字系统与模拟系统相比还有另一个优势:它们更容易被扩展。在秒表模式下,我的数字手表可以百分之一秒的精度显示流逝的时间,而将这一功能添加到模拟手表中将是一个挑战。另一方面,模拟系统有时也具有优势:像泥板、石刻、羊皮纸、纸张和摄影胶片等旧媒体都以数字形式可能无法做到的方式经受住了时间的考验。 (查看原文) —— 引自章节:2.1 模拟和数字
丛书信息
· · · · · ·
喜欢读"普林斯顿计算机公开课"的人也喜欢的电子书 · · · · · ·
喜欢读"普林斯顿计算机公开课"的人也喜欢 · · · · · ·
-
- 漫画计算机原理 8.4
-
- 爱上电子学(第2版) 8.8
-
- 计算机简史(第三版) 8.6
-
- 计算机科学概论 8.7
-
- CUDA 编程 9.1
-
- 了不起的芯片 7.6
-
- 图解云计算架构:基础设施和API 6.8
-
- Python工匠 9.1
普林斯顿计算机公开课的书评 · · · · · · ( 全部 6 条 )
是错发于18版的书评,真是大尴尬
这篇书评可能有关键情节透露
18年哪来的新冠…… 拿到手是一本很小巧,略厚的书,味道也有点小重。翻开看给了我们很大的惊喜。。有一种教授真的把我们当作小白,高屋建瓴的用生动的话语为我们打开新世界的感觉。直到读引言之前,我都没有想到这本书是这么的新。作者引用了狄更斯的一句话“这是最好的时代,... (展开)《Understanding the Digital World》
深入计算机世界 重发版
这篇书评可能有关键情节透露
拿到手是一本很小巧,略厚的书,味道也有点小重。翻开看给了我们很大的惊喜。。有一种教授真的把我们当作小白,高屋建瓴的用生动的话语为我们打开新世界的感觉。直到读引言之前,我都没有想到这本书是这么的新。作者引用了狄更斯的一句话“这是最好的时代,也是最坏的时代”,... (展开)> 更多书评 6篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部5 )
-
Princeton University Press (2021)暂无评分 4人读过
-
机械工业出版社 (2023)9.3分 130人读过
-
Princeton University Press (2017)暂无评分 5人读过
-
商業周刊 (2022)暂无评分
以下书单推荐 · · · · · · ( 全部 )
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于普林斯顿计算机公开课的评论:
feed: rss 2.0


7 有用 tangerine 2019-07-05 19:29:01
从一个重工业girl走向一个计算机girl…终于有人解释明白OS是什么了!(是一个控制和分配计算机资源的软件,区分的方法在于代码是否能够确保一个app不会干扰到另一个app…)整体讲的泛而不深,还是被《编码》折服更多
0 有用 千都般 2023-03-06 20:52:52 陕西
关于计算机的一切都可以在本书找到,当然受限于成书时间,有些知识有所遗漏,但大体基础知识都在其中。
1 有用 ExMaterial 2022-02-11 14:14:19
祝我跑路成功,加油。
0 有用 白旭亮 2022-03-25 07:48:43
前面部分更棒,后面有点水
1 有用 波斯波利斯 2020-04-06 21:00:36
迈出的第一步