图书前言

前  言

计算机科学,这个看似复杂、高大上的学科,其实已经几十年如一日地、润物细无声地影响了人们的日常生活。从硬件的角度来看,个人计算机、智能手机、可穿戴设备,已经深入生活;从软件的角度来看,搜索引擎、推荐系统、人工智能等,已经无处不在。作为当下最火热的学科之一,计算机科学其实就在每个人的身边。

很多人都想学习计算机科学,但是不知道从何学起。因为计算机科学是建立在数学之上的科学,其理论本身对数学和逻辑的要求较高,所以计算机科学是一门门槛较高的学科,因而非专业读者对计算机科学相关的书籍有畏难情绪也就不难理解了。

本书作为计算机科学的科普图书,旨在通过日常生活里的寻常事例,将看似晦涩深奥的计算机科学的核心概念和知识鲜活地呈现在读者面前,为非专业但是对计算机科学感兴趣的读者提供一个独特而生动的学习途径。本书没有冗长复杂的理论、公式,取而代之的是中国本土广为大众所熟知的事例。本书适合对计算机科学感兴趣的广大读者阅读。

本书的内容可以解构为“科”和“普”两部分,由商静波和赵馨负责文字部分,由费赛尔负责配图工作。下面由商静波和赵馨分别从“科”和“普”两个角度向读者介绍本书。

从“科”的角度看本书—商静波

我有幸能很早地接触、钻研计算机科学:小学五年级暑假初学Pascal编程,拿到本市小学生竞赛第一名;初高中参加信息学奥林匹克竞赛,获得亚太地区国际金牌;在上海交通大学ACM班完成本科学习,并代表学校参加国际大学生程序设计竞赛,获得世界亚军;在美国伊利诺伊大学厄巴纳香槟分校(UIUC)师从数据挖掘开山鼻祖韩家炜教授,获得博士学位;在美国加州大学圣迭戈分校(UC San Diego)任教,用了4年多的时间,成为加州大学历史上最快获得计算机系和数据科学学院终身教授职位的人之一。

根据这一路的观察和总结,我认为在计算机科学的学习过程中,最重要的并不是对于知识点的掌握,而是对一整套思维模式的训练,这种思维模式就是计算机科学思维,简称计算思维。

计算思维,是一种将具体问题抽象化,并在抽象层面进行逻辑推理的模式。这种思维模式和以记忆、学习知识点为主的模式有本质的区别。它是一种更高效、简洁的思维模式,非常适合应对高速发展的现代社会—新知识不断涌现,亟须用计算思维加以推理总结、活学活用。计算思维也恰好是ChatGPT这类大模型所欠缺的:ChatGPT所体现出来的智能很大程度上来自对海量知识点的记忆和学习。写作这本书的初衷是让每个人都能接触到计算思维这个概念。通过具体实例,以小见大,在传递知识的同时,更注重思维模式的培养,让读者可以领略到计算机科学家思考问题的方式,从而做到一通百通。阅读本书不仅能让读者对计算机科学产生浓厚的兴趣,还能帮助读者更深刻地学习计算机专业知识、梳理体系。我期待和鼓励读者在读完本书后,通过计算思维来解读、思考日常生活中的小事,从而得到不同的理解。这样的思维方式不仅局限于计算机科学,更是一种通用的从科学角度分析问题和理解问题的精神。

为了实现这个目标,全书通过“我”(即计算机科学家商老师)的视角,把生活中的衣食住行、吃喝玩乐同计算机科学联系起来,将抽象的计算机科学知识同具体的生活事例相结合,具有很强的可读性和趣味性。通过由具体到抽象再到具体的过程,让读者对计算思维有一个直观的体验,从而在阅读后激发思考,逐步接受这种思维模式。

从知识体系的角度来看,全书涵盖了几乎所有计算机科学本科教育中所涉及的经典课程,从大一、大二必修的 “程序设计”“数据结构”“算法”课程,逐步进阶到大三、大四选修的“数据科学”“机器学习”“智能系统”“信息安全”“计算机硬件”等课程。各章节也依照本科教育的顺序来编排,从底层设计讲到顶层应用。由于底层设计更偏向抽象的数学和逻辑,而顶层应用本身更贴近生活,因此阅读难度可能会随着章节的深入而逐步降低。这也是计算机系本科生通常感到前两年的学习非常痛苦,但真正到了后两年偏运用阶段反而更自如的原因。

在全书的写作上,我将每个知识点通过独立的故事呈现,因此,即便读者对某一个知识点或者故事理解不够透彻,也不会影响对其他知识点和故事的理解。所以,尽管本书参考了本科计算机教育的系统顺序,读者仍然可以挑选自己感兴趣的部分独立阅读。本书的创作初衷是鼓励读者阅读和思考,尤其是在这个忙碌的时代下,我期待读者即使花了碎片时间来阅读本书,也能够很好地理解计算

思维。

考虑不同读者的基础和接受程度,我在一定程度上平衡了知识点的广度和深度。一些章节里的部分知识点可能对于有些读者来说具有一定的挑战性,如“最短路与负环:套餐定价和外汇兑换的约束”(第9章),“梯度下降:驾驶汽车和登山都用到了导数”(第21章),“非对称加密:公开的密钥能加密却不能解密”(第33章),但基于我的写作设计,读者即使跳过这些章节内偏技术的部分内容,对该章节的整体理解也不存在太大影响。

当然,我更鼓励读者能够系统地阅读本书,毫不夸张地说,如果读者能将本书的内容完全融会贯通,就可以打败90%的计算机系本科生了。因此,本书亦可以作为高等院校计算机相关专业的导论课程、非计算机专业的通识课程的教材。

从“普”的角度看本书—赵馨

熟悉我的朋友们应该知晓我是一个数学和逻辑都不太行的人(当初我选择法学院有一大半原因是不用学习数学),他们应该还知道我从小就有创作一本书的心愿。不过,他们大概没想到,我真地创作了一本书,还是和计算机科学、数学和逻辑相关的,我自己也没有想到!大概是2022年的春节时分,商老师和我彼时还是一对新手父母,每天焦头烂额地学习如何更好地照顾新生儿。在这个过程中,我们第一次接触到了很多写给小朋友甚至小婴儿的科普读物,遗憾的是,大多数这类书籍都是由外国作者结合外国事例撰写的。商老师和我不服气:咱们来写一本中国本土化的、大众化的计算机科普图书!

这是本书诞生的一个契机。

可是,光有雄心壮志还不行,真正开始着手写,发现这是一个艰难的过程,如何结合中国本土化事例来讲解计算机科学呢?因为商老师的工作就是和计算机科学打交道的,所以我们在生活中不可避免地会谈论计算机的很多话题,于是我们开始慢慢回忆生活中我们何时何地会讨论计算机相关的话题—在给小宝宝讲“老和尚给小和尚讲故事”的故事时,我们聊到过计算机科学里的递归;一起看《最强大脑》的时候,我们尝试过用启发式搜索和选手一起解题;用外卖App下单时,我们讨论过计算机科学中的最佳匹配和推荐系统;因为自然语言处理的复杂性,我们和朋友约着一起吃饭时闹过“粤菜”(一家餐厅的名字)和“粤菜”(菜系)的笑话。

我们意识到,计算机科学和生活是息息相关的。于是,我们从生活中的这些真实的经历出发,结合计算机科学的专业知识来构建这本书。本书中出现的每一个事例、每一个故事和每一段对话,都是我们生活中真实发生过的,只不过为了增加可读性,我们以商老师和赵律师为主体出发,增加了更多的角色。我们通过计算机科学家商老师的视角,把生活中的点滴和计算机科学联系起来,将抽象的计算机科学知识借由生活事例具象化。我们尽可能地将计算机科学中的很多概念通过日常生活里的寻常事例呈现给读者,期待以一种平易近人的方式为非专业但是对计算机科学感兴趣的读者来讲解这些概念和知识。

由此,我们厘清了本书的大致思路和结构,但接下来的另一个难题是如何撰写本书才能激发读者的兴趣并便于读者的理解。换句话说,就是如何平衡本书的科学性和通俗性,这对于我们来说是一个巨大的挑战。这本书里的很多概念和知识,对于商老师来说都是耳熟能详、手到擒来的,但是对于像我这样的门外汉而言,这些概念和知识是复杂且晦涩的。在创作本书的过程中,我总是期待以打比方、举例子的方式将这些概念和知识以大众容易接受的方式呈现;但是从科学性和严谨性的角度,商老师通常无法接受我打的比方或举的例子,因此商老师和我常常争论不休。我和商老师在一起创作本书之前,几乎从来不吵架,而在创作本书的过程中,我们两个吹胡子瞪眼、拍桌子争吵了不知道多少回。我记得有一次,商老师几乎崩溃地跟我说道:“要不咱不写了,再写下去感觉婚姻都要破裂了。”(现在想想,觉得是很好笑的事。)

总地来说,这本书由商老师构建主体知识和逻辑,这是商老师的专业领域,也是商老师所长之在;由我来润色思路和语言。我们总说,我既是作者,也是非专业的大众读者,商老师的第一个任务是保证非计算机专业的我能够看懂,这样非计算机专业的读者才能理解。另外,为了便于读者的理解,我们还邀请了中国美术学院毕业的费赛尔为每章配插图。费赛尔有很多年的插画经验。这个过程一般是由商老师对知识点和插图进行讲解和指导,由费赛尔执笔设计和配色。在本书的创作过程中,商老师的第二个任务是保证费赛尔能够理解并以艺术的方式呈现这本书里的知识点。按照这样的节奏,我们期待本书对于非计算机专业的大众读者来说是容易阅读且容易理解的。

因为平时还要工作,照顾孩子和家庭,本书的写作很多时候都是由我和商老师在深夜进行的,我们也没有想到,这样一写便写了两年多的时间。在两年前,我们刚开始决定写这本书的时候,ChatGPT还仅为学术界所知,而如今,ChatGPT已经是一个人尽皆知的火热概念,我们也顺应着时代的变化,添加了一个专门讲解ChatGPT的章节。

诚然,计算机科学理论本身对数学和逻辑的要求高,但是计算科学并不是在庙堂之上的。我们耳熟能详的“老和尚给小和尚讲故事”的故事,我们手机里下单的外卖App……其实都是普通人置身其中的计算机科学。数学和逻辑天分并不突出的我,都能够弄明白这本书里提到的计算机知识和概念,我想每一位读者也都可以理解本书的内容。

写在最后

我们非常希望这本书能让更多中国人,尤其是青少年,了解、喜爱计算机科学,让它从一个复杂、高大上的学科变成一种生活中随处可见的计算思维。此外,我们想衷心地感谢王中英编辑、宋亚东编辑在创作和出版过程中给予的鼓励和帮助,还要感谢一直站在身后支持我们的家人。

当然,计算机科学知识犹如一个广袤的宇宙,我们的认知仅仅是冰山一角,又囿于有限的精力和时间,书中错谬之处在所难免,恳请广大读者批评指正,我们将不胜感激。

商静波 赵 馨

2024年8月