新書推薦:
《
有兽焉.8
》
售價:NT$
305.0
《
大学问·明清经济史讲稿
》
售價:NT$
330.0
《
中国国际法年刊(2023)
》
售價:NT$
539.0
《
早点知道会幸福的那些事
》
售價:NT$
295.0
《
迈尔斯普通心理学
》
售價:NT$
760.0
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:NT$
1990.0
《
掌故家的心事
》
售價:NT$
390.0
《
孤独传:一种现代情感的历史
》
售價:NT$
390.0
|
編輯推薦: |
1. 易懂:结合生活中的故事,通俗讲解计算机科学知识;2. 透彻:直击概念本质,不仅学知识,更解锁知识之上的计算思维;3. 实用:那些生活中的困惑,本书为你揭开谜底;4. 颜值:全彩印刷,无损呈现180 幅精美插图。
|
內容簡介: |
计算机科学是当下最火热的学科之一,看似复杂、高大上,其实离每个人并不遥远。本书作为该学科的专业科普图书,通过常见的生活场景切入 38 个计算机科学知识点,涵盖计算机科学本科教育中的经典课程,包括大一、大二必修的“程序设计”“数据结构”“算法”课程,以及大三、大四选修的“数据科学”“机器学习”“智能系统”“信息安全”“计算机硬件”等课程。每个知识点通过独立故事呈现,读者可以按任意顺序阅读。
本书最大的特色是,以一个个日常生活中的寻常事例来讲计算机科学,没有公式和代码,旨在从原理和本质上讲透计算机科学的重要概念,同时让读者真切体会到计算思维在生活中随处可见。本书不仅故事丰富有趣,还配了精美插图,方便读者透彻理解内容。
本书适合对计算机科学感兴趣的中学生和非专业大众读者,亦可以作为高等院校计算机相关专业的导论课程、非计算机专业的通识课程的教材。
|
關於作者: |
商静波 美国加州大学圣迭戈分校(UC San Diego)计算机系和数据科学学院终身教授。2014年本科毕业于上海交通大学ACM班,2013年带领上海交大ACM队获得ACM全球
总决赛金牌、亚军。本科毕业后赴美国伊利诺
伊大学厄巴纳香槟分校(UIUC)攻读数据挖
掘方向博士,师从数据挖掘领域开山鼻祖韩家
炜教授。在数据挖掘、自然语言处理、大模型
方向上的研究成果在业界得到广泛应用,并获NSF CAREER Award、谷歌学者、WAIC云帆奖·璀璨明星、SIGKDD最佳博士论文奖(亚军)等荣誉。
赵馨 法律从业者,曾在中美两国的不同类型
公司如五百强企业、初创公司和上市公司任职。因为爱好,一直坚持写作;因为嫁了一位计算
机科学家,开始了解计算机科学;因为养育孩子,想要为科普读物做一点小事。
费赛尔 现从事地图编发工作,大学毕业于中国美术学院。
很高兴负责本书插画,书中插图讲究科学上的严谨性,更偏向释义而非装饰。感谢商老师的小课堂,献祭了无数根头发,终于艰难地完成了这项任务。
|
目錄:
|
第1篇生活中的程序设计与数据结构
第1章 递归:老和尚给小和尚讲故事 002
1.1 “老和尚给小和尚讲故事”中的递归 002
1.2 《盗梦空间》中的递归 006
1.3 生活中的递归 008
第2章 二进制:靠掰手指居然能数几万个数 009
2.1 用双手表示0~99的任意数字 009
2.2 用双手表示0~1023的任意数字 011
2.3 用双手表示更大的数字 013
第3章 循环与上下文切换:怎么更有效地做重复劳动 015
3.1 按说明书组装玩具书,重复劳动多 016
3.2 优化一:同类操作集中做,减少上下文切换 019
3.3 优化二:调整组装顺序,减少额外开销 021
3.4 优化三:两人合作变身“双核CPU” 022
第4章 二分法与二叉树:图书馆保安应该怎么找到没借过的书 023
4.1 用二分法在有序数组中定位数字 024
4.2 用二分法找没有借过的书,闹出了大乌龙 025
4.3 二叉树可以更好地对借书问题建模 027
4.4 二叉树的层数:需要的检测次数 028
第5章 队列与栈:明天该穿什么衣服 031
5.1 把T恤衫组织成栈结构 032
5.2 把T恤衫组织成队列结构 033
5.3 生活中的其他队列结构 035
5.4 生活中的其他栈结构 035
第2篇生活中的算法与理论
第6章 蛋糕怎么切才公平:多赢是可能的 038
6.1 切蛋糕是一个博弈论问题 039
6.2 A切B选算法 040
6.3 悬线切蛋糕算法 041
第7章 启发式搜索:《最强大脑》里的那些
计算力小游戏 043
7.1 掌握正确算法,你就是最强大脑 043
7.2 启发式搜索解数独 044
7.3 启发式搜索解珍珑棋局 045
第8章 深度优先遍历:迷宫里的右手法则 050
8.1 矩形迷宫中的右手法则 050
8.2 右手法则与深度优先搜索 052
8.3 右手法则与迷宫拓扑结构 054
8.4 右手法则在其他迷宫未必奏效 055
第9章 最短路与负环:套餐定价和外汇兑换的约束 057
9.1 合理的菜单定价与三角形不等式 058
9.2 从菜单到图论 059
9.3 用最短路算法进行合理性检验 061
9.4 最短路算法与货币兑换中的负环 063
第10章 最佳匹配:外卖平台是怎样派单的 066
10.1 外卖派单与二分图 066
10.2 二分图匹配与运力判定问题 067
10.3 二分图最大匹配:匈牙利算法 069
10.4 从最大匹配到最优匹配 070
第11章 旅行商问题:怎样逛超市最省时间 073
11.1 逛超市采购是一个旅行商问题 074
11.2 生活中的其他旅行商问题 075
11.3 旅行商问题极具复杂性 076
11.4 旅行商问题的近似算法 078
第3篇生活中的数据科学
第12章 数据标注:验证码里的大生意 082
12.1 训练数据通常需要人工数据标注 082
12.2 先有训练数据,才有人工智能模型 084
12.3 训练数据的质量与数量都很重要 085
12.4 巧妙使用验证码来进行数据标注 086
第13章 数据库:抢火车票的背后发生了什么 090
13.1 关系数据库:最经典的数据库 091
13.2 索引:为了更高效的数据库查询 092
13.3 多表单数据库:提高整体查询效率 093
13.4 数据库中的并发与锁:为什么查到有票却买不到 095
13.5 为什么购物平台往往比购票平台更高效 096
第14章 大数据:啤酒和尿布为什么要摆放在一起售卖 098
14.1 频繁模式:看两种物品同时出现的频率 099
14.2 关联规则:用户购买A了,还有多大概率购买B 100
14.3 分布式挖掘频繁模式:高效探索关联规则 100
第15章 最优化:为什么肯德基、麦当劳总是开在一起 102
15.1 店铺选址的“最优化”目标究竟是什么 103
15.2 生活中的其他最优化问题 105
第16章 特征工程:如何区分三个“一模一样”的灯泡 107
16.1 区分浣熊和猫咪的特征构建:特征工程重要且复杂 108
16.2 提取灯泡发热的特征,妙解特征工程的经典面试题 109
16.3 好的特征工程能力处处有用 111
第4篇生活中的机器学习
第17章 最近邻算法:孟母三迁背后的假设 114
17.1 最近邻算法不需要“学习” 114
17.2 最近邻算法的关键:如何定义相似度 116
17.3 从最近邻到K-最近邻:综合考虑更稳健 117
第18章 支持向量:美国大选基本只需要看摇摆州 120
18.1 得摇摆州者,得美国大选 120
18.2 从二分类的角度看支持向量:寻找最优分界线 121
18.3 远离最大化边界的点对最优分界线没有影响 124
第19章 过拟合:高考失误真的是因为心态吗 125
19.1 人类学习与机器学习的类比 126
19.2 高考表现得不好可能是因为过拟合 126
19.3 过拟合产生的原因 129
19.4 如何避免过拟合 131
第20章 集成学习:疑难杂症要多看几个专家 133
20.1 集成学习与寻医问诊 133
20.2 Bagging框架:群策群力、一人一票 135
20.3 Boosting框架:考虑专家可信度加权平均 137
第21章 梯度下降:驾驶汽车和登山都用到了导数 140
21.1 一尺之棰,日取其半,万世不竭 140
21.2 位移、速度、加速度之间的导数关系 141
21.3 梯度下降:利用导数寻找最优解 143
21.4 登山、高尔夫球中的“梯度下降” 144
第22章 朴素贝叶斯:为什么我的邮件被识别为垃圾邮件 147
22.1 垃圾邮件中的关键词 147
22.2 关键词分类背后的朴素贝叶斯算法 148
22.3 元数据也是垃圾邮件分类的重要依据 150
22.4 如何避免正常邮件被误分为垃圾邮件 151
第5篇生活中的智能系统
第23章 个体与系统的博弈:外卖骑手的困局 154
23.1 博弈论的概念 154
23.2 外卖平台中的博弈 155
23.3 博弈的初衷是 “三赢” 156
23.4 算法的“智能”会打破博弈的平衡 157
23.5 个体之间的团结有利于博弈的平衡 159
第24章 搜索引擎:孕妇到底能不能吃螃蟹 161
24.1 早期搜索引擎:看字面相似度 162
24.2 现代搜索引擎:从字面到语义 164
24.3 搜索关键词的设计 166
第25章 同温层效应:为什么我的App内容越来越同质化 168
25.1 协同过滤:相似的用户喜欢相似的内容 169
25.2 现代个性化推荐系统:用户画像 170
25.3 用户如何与个性化推荐系统更好地磨合 172
25.4 个性化推荐系统的弊端:同温层现象 173
第26章 天梯匹配系统:网络游戏如何让玩家欲罢不能 175
26.1 天梯积分是一种Elo等级分制度 176
26.2 玩家在天梯匹配系统下的期望胜率通常是50% 178
26.3 天梯匹配系统也不仅仅是Elo等级分制度 180
26.4 如何利用天梯匹配系统科学上分 181
第27章 大语言模型:啥是ChatGPT 182
27.1 什么是GPT 183
27.2 GPT以外的其他语言模型 185
27.3 Scaling Law:模型越大,能力越强 185
27.4 ChatGPT带来的机遇、挑战和风险 188
第28章 人脸识别:我的脸解锁了妈妈的手机 190
28.1 人脸识别的常见流程 190
28.2 人脸识别常用的特征 192
28.3 人脸识别的挑战:如何识别伪造的人脸 193
第29章 自然语言处理:NLP is so hard 194
29.1 基于自然语言处理的应用随处可见 195
29.2 中文的分词极具挑战性 196
29.3 英语的语义也常有歧义 197
29.4 歧义性也是一种魅力 198
第6篇生活中的信息安全
第30章 浏览器:隐私浏览模式到底有多隐私 200
30.1 上网冲浪的过程到底能被谁看到 201
30.2 隐私浏览模式到底保护了什么隐私 203
第31章 区块链:比特币的共识 205
31.1 区块链本质上是一个分布式账本 206
31.2 区块链的独特之处:去中心化的账本 207
31.3 比特币的价值在哪里 209
第32章 哈希算法:好网站都不保存用户的明文密码 210
32.1 好的哈希函数是一个特级名厨 211
32.2 用户识别:比较登录密码的哈希值就够了 212
32.3 黑客如何根据哈希值反向破解密码 213
32.4 “适量加盐”可以让密码更难破解 214
32.5 靠浏览器记住密码靠谱吗 216
第33章 非对称加密:公开的密钥能加密却不能解密 217
33.1 加密已经是上网冲浪的标配了 218
33.2 对称加密的风险问题 218
33.3 非对称加密的优势 219
33.4 图灵奖级别的工作:RSA算法 220
33.5 中间人攻击:非对称加密也没法避免的问题 222
第7篇生活中的硬件系统
第34章 文件系统:我的聊天记录没有了还能找回来吗 226
34.1 文件和文件系统 227
34.2 快捷方式与懒删除 229
第35章 内存与存储:为什么手机“内存”比电脑内存还大 231
35.1 计算机存储的分类 232
35.2 外存是一种非易失性存储器 233
35.3 内存是一种易失性存储器 233
35.4 手机广告中提到的“内存”通常不是计算机科学中的
“内存” 235
第36章 网络:为什么“1000M”的宽带网络没有“1000M”
的运行速度 237
36.1 bit和Byte的区别 237
36.2 网速的瓶颈可能让人意想不到 238
36.3 为什么上传速度通常比下载速度慢 239
36.4 网速为什么会随着时间波动 240
36.5 Wi-Fi里的2.4GHz和5GHz是什么意思 241
第37章 物联网:体感游戏的秘诀 242
37.1 体感游戏如何评分 243
37.2 体感游戏评分难免有误差 244
37.3 记步数到底有多可靠 245
37.4 传感器之间如何联动提高准确度 247
第38章 分布式计算:一小时做完年夜饭 249
38.1 锅碗瓢盆都是烹饪过程中的“计算节点” 250
38.2 分布式计算和烹饪共同面对的问题 251
38.3 高效烹饪与高效分布式计算的核心都在于调度协调 252
38.4 计算资源决定了分布式计算的上限 254
38.5 生活中的其他分布式计算 255
|
內容試閱:
|
计算机科学,这个看似复杂、高大上的学科,其实已经几十年如一日地、润物细无声地影响了人们的日常生活。从硬件的角度来看,个人计算机、智能手机、可穿戴设备,已经深入生活;从软件的角度来看,搜索引擎、推荐系统、人工智能等,已经无处不在。作为当下最火热的学科之一,计算机科学其实就在每个人的身边。
很多人都想学习计算机科学,但是不知道从何学起。因为计算机科学是建立在数学之上的科学,其理论本身对数学和逻辑的要求较高,所以计算机科学是一门门槛较高的学科,因而非专业读者对计算机科学相关的书籍有畏难情绪也就不难理解了。
本书作为计算机科学的科普图书,旨在通过日常生活里的寻常事例,将看似晦涩深奥的计算机科学的核心概念和知识鲜活地呈现在读者面前,为非专业但是对计算机科学感兴趣的读者提供一个独特而生动的学习途径。本书没有冗长复杂的理论、公式,取而代之的是中国本土广为大众所熟知的事例。本书适合对计算机科学感兴趣的广大读者阅读。
本书的内容可以解构为“科”和“普”两部分,由商静波和赵馨负责文字部分,由费赛尔负责配图工作。下面由商静波和赵馨分别从“科”和“普”两个角度向读者介绍本书。
从“科”的角度看本书—商静波
我有幸能很早地接触、钻研计算机科学:小学五年级暑假初学Pascal编程,拿到本市小学生竞赛第一名;初高中参加信息学奥林匹克竞赛,获得亚太地区国际金牌;在上海交通大学ACM班完成本科学习,并代表学校参加国际大学生程序设计竞赛,获得世界亚军;在美国伊利诺伊大学厄巴纳香槟分校(UIUC)师从数据挖掘开山鼻祖韩家炜教授,获得博士学位;在美国加州大学圣迭戈分校(UC San Diego)任教,用了4年多的时间,成为加州大学历史上最快获得计算机系和数据科学学院终身教授职位的人之一。
根据这一路的观察和总结,我认为在计算机科学的学习过程中,最重要的并不是对于知识点的掌握,而是对一整套思维模式的训练,这种思维模式就是计算机科学思维,简称计算思维。
计算思维,是一种将具体问题抽象化,并在抽象层面进行逻辑推理的模式。这种思维模式和以记忆、学习知识点为主的模式有本质的区别。它是一种更高效、简洁的思维模式,非常适合应对高速发展的现代社会—新知识不断涌现,亟须用计算思维加以推理总结、活学活用。计算思维也恰好是ChatGPT这类大模型所欠缺的:ChatGPT所体现出来的智能很大程度上来自对海量知识点的记忆和学习。写作这本书的初衷是让每个人都能接触到计算思维这个概念。通过具体实例,以小见大,在传递知识的同时,更注重思维模式的培养,让读者可以领略到计算机科学家思考问题的方式,从而做到一通百通。阅读本书不仅能让读者对计算机科学产生浓厚的兴趣,还能帮助读者更深刻地学习计算机专业知识、梳理体系。我期待和鼓励读者在读完本书后,通过计算思维来解读、思考日常生活中的小事,从而得到不同的理解。这样的思维方式不仅局限于计算机科学,更是一种通用的从科学角度分析问题和理解问题的精神。
为了实现这个目标,全书通过“我”(即计算机科学家商老师)的视角,把生活中的衣食住行、吃喝玩乐同计算机科学联系起来,将抽象的计算机科学知识同具体的生活事例相结合,具有很强的可读性和趣味性。通过由具体到抽象再到具体的过程,让读者对计算思维有一个直观的体验,从而在阅读后激发思考,逐步接受这种思维模式。
从知识体系的角度来看,全书涵盖了几乎所有计算机科学本科教育中所涉及的经典课程,从大一、大二必修的 “程序设计”“数据结构”“算法”课程,逐步进阶到大三、大四选修的“数据科学”“机器学习”“智能系统”“信息安全”“计算机硬件”等课程。各章节也依照本科教育的顺序来编排,从底层设计讲到顶层应用。由于底层设计更偏向抽象的数学和逻辑,而顶层应用本身更贴近生活,因此阅读难度可能会随着章节的深入而逐步降低。这也是计算机系本科生通常感到前两年的学习非常痛苦,但真正到了后两年偏运用阶段反而更自如的原因。
在全书的写作上,我将每个知识点通过独立的故事呈现,因此,即便读者对某一个知识点或者故事理解不够透彻,也不会影响对其他知识点和故事的理解。所以,尽管本书参考了本科计算机教育的系统顺序,读者仍然可以挑选自己感兴趣的部分独立阅读。本书的创作初衷是鼓励读者阅读和思考,尤其是在这个忙碌的时代下,我期待读者即使花了碎片时间来阅读本书,也能够很好地理解计算
思维。
考虑不同读者的基础和接受程度,我在一定程度上平衡了知识点的广度和深度。一些章节里的部分知识点可能对于有些读者来说具有一定的挑战性,如“最短路与负环:套餐定价和外汇兑换的约束”(第9章),“梯度下降:驾驶汽车和登山都用到了导数”(第21章),“非对称加密:公开的密钥能加密却不能解密”(第33章),但基于我的写作设计,读者即使跳过这些章节内偏技术的部分内容,对该章节的整体理解也不存在太大影响。
当然,我更鼓励读者能够系统地阅读本书,毫不夸张地说,如果读者能将本书的内容完全融会贯通,就可以打败90%的计算机系本科生了。因此,本书亦可以作为高等院校计算机相关专业的导论课程、非计算机专业的通识课程的教材。
从“普”的角度看本书—赵馨
熟悉我的朋友们应该知晓我是一个数学和逻辑都不太行的人(当初我选择法学院有一大半原因是不用学习数学),他们应该还知道我从小就有创作一本书的心愿。不过,他们大概没想到,我真地创作了一本书,还是和计算机科学、数学和逻辑相关的,我自己也没有想到!大概是2022年的春节时分,商老师和我彼时还是一对新手父母,每天焦头烂额地学习如何更好地照顾新生儿。在这个过程中,我们第一次接触到了很多写给小朋友甚至小婴儿的科普读物,遗憾的是,大多数这类书籍都是由外国作者结合外国事例撰写的。商老师和我不服气:咱们来写一本中国本土化的、大众化的计算机科普图书!
这是本书诞生的一个契机。
可是,光有雄心壮志还不行,真正开始着手写,发现这是一个艰难的过程,如何结合中国本土化事例来讲解计算机科学呢?因为商老师的工作就是和计算机科学打交道的,所以我们在生活中不可避免地会谈论计算机的很多话题,于是我们开始慢慢回忆生活中我们何时何地会讨论计算机相关的话题—在给小宝宝讲“老和尚给小和尚讲故事”的故事时,我们聊到过计算机科学里的递归;一起看《最强大脑》的时候,我们尝试过用启发式搜索和选手一起解题;用外卖App下单时,我们讨论过计算机科学中的最佳匹配和推荐系统;因为自然语言处理的复杂性,我们和朋友约着一起吃饭时闹过“粤菜”(一家餐厅的名字)和“粤菜”(菜系)的笑话。
我们意识到,计算机科学和生活是息息相关的。于是,我们从生活中的这些真实的经历出发,结合计算机科学的专业知识来构建这本书。本书中出现的每一个事例、每一个故事和每一段对话,都是我们生活中真实发生过的,只不过为了增加可读性,我们以商老师和赵律师为主体出发,增加了更多的角色。我们通过计算机科学家商老师的视角,把生活中的点滴和计算机科学联系起来,将抽象的计算机科学知识借由生活事例具象化。我们尽可能地将计算机科学中的很多概念通过日常生活里的寻常事例呈现给读者,期待以一种平易近人的方式为非专业但是对计算机科学感兴趣的读者来讲解这些概念和知识。
由此,我们厘清了本书的大致思路和结构,但接下来的另一个难题是如何撰写本书才能激发读者的兴趣并便于读者的理解。换句话说,就是如何平衡本书的科学性和通俗性,这对于我们来说是一个巨大的挑战。这本书里的很多概念和知识,对于商老师来说都是耳熟能详、手到擒来的,但是对于像我这样的门外汉而言,这些概念和知识是复杂且晦涩的。在创作本书的过程中,我总是期待以打比方、举例子的方式将这些概念和知识以大众容易接受的方式呈现;但是从科学性和严谨性的角度,商老师通常无法接受我打的比方或举的例子,因此商老师和我常常争论不休。我和商老师在一起创作本书之前,几乎从来不吵架,而在创作本书的过程中,我们两个吹胡子瞪眼、拍桌子争吵了不知道多少回。我记得有一次,商老师几乎崩溃地跟我说道:“要不咱不写了,再写下去感觉婚姻都要破裂了。”(现在想想,觉得是很好笑的事。)
总地来说,这本书由商老师构建主体知识和逻辑,这是商老师的专业领域,也是商老师所长之在;由我来润色思路和语言。我们总说,我既是作者,也是非专业的大众读者,商老师的第一个任务是保证非计算机专业的我能够看懂,这样非计算机专业的读者才能理解。另外,为了便于读者的理解,我们还邀请了中国美术学院毕业的费赛尔为每章配插图。费赛尔有很多年的插画经验。这个过程一般是由商老师对知识点和插图进行讲解和指导,由费赛尔执笔设计和配色。在本书的创作过程中,商老师的第二个任务是保证费赛尔能够理解并以艺术的方式呈现这本书里的知识点。按照这样的节奏,我们期待本书对于非计算机专业的大众读者来说是容易阅读且容易理解的。
因为平时还要工作,照顾孩子和家庭,本书的写作很多时候都是由我和商老师在深夜进行的,我们也没有想到,这样一写便写了两年多的时间。在两年前,我们刚开始决定写这本书的时候,ChatGPT还仅为学术界所知,而如今,ChatGPT已经是一个人尽皆知的火热概念,我们也顺应着时代的变化,添加了一个专门讲解ChatGPT的章节。
诚然,计算机科学理论本身对数学和逻辑的要求高,但是计算科学并不是在庙堂之上的。我们耳熟能详的“老和尚给小和尚讲故事”的故事,我们手机里下单的外卖App……其实都是普通人置身其中的计算机科学。数学和逻辑天分并不突出的我,都能够弄明白这本书里提到的计算机知识和概念,我想每一位读者也都可以理解本书的内容。
写在最后
我们非常希望这本书能让更多中国人,尤其是青少年,了解、喜爱计算机科学,让它从一个复杂、高大上的学科变成一种生活中随处可见的计算思维。此外,我们想衷心地感谢王中英编辑、宋亚东编辑在创作和出版过程中给予的鼓励和帮助,还要感谢一直站在身后支持我们的家人。
当然,计算机科学知识犹如一个广袤的宇宙,我们的认知仅仅是冰山一角,又囿于有限的精力和时间,书中错谬之处在所难免,恳请广大读者批评指正,我们将不胜感激。
商静波 赵 馨
2024年8月
|
|