前言 掌握计算思维,迈入“计算第三纪元”

写作灵感

市面上有很多关于自然科学的“通俗”图书,这些书以简单易懂的讲解方 式让普通读者了解到现代科学的最新进展。在过去的半个世纪里,计算机科学 极大地改变了世界,但是有关计算机科学的通俗图书却很少。本书将尝试改变 这种失衡的局面,以通俗易懂的方式讲解计算机科学的起源与根基。一言以蔽 之,本书的目标是解释计算机的工作原理、发展历程以及未来的发展方向。

本书的写作灵感主要来源于诺贝尔物理学奖得主理查德·费曼(Richard Feynman)。费曼是少数为公众所熟知的物理学家之一,这主要有三个原因: 第一,在英国,费曼参与录制了一些非常棒的电视节目,谈到了自己对物理 的热爱;第二,他撰写了畅销书《别逗了,费曼先生》(Surely You’re Joking,Mr. Feynman!),讲述了很多自己在物理学研究中遇到的趣事,那本书从在美国洛斯阿拉莫斯国家实验室参与研制原子弹的曼哈顿计划,一直讲到在康奈尔大学与加州理工学院担任教授的日子;第三,当他正在顽强与癌症做斗争时(最终因癌症去世),应邀参与了调查“挑战者号”航天飞机失事事件。费曼在电视新闻发布会上现场演示了橡皮环的冰水效应,用浅显易懂的方式向人们解释 了航天飞机失事的根本原因:火箭助推器的O 形环密封圈在低温下失去弹性, 引发事故。

在物理学家中,费曼最著名的研究成果是费曼图,这让他获得了1965 年 的诺贝尔物理学奖。费曼图提供了一组计算工具,借助这组工具,物理学家不 仅能够理解量子电动力学(这一理论是电磁学的基础),而且还能理解相对论 量子场论(这一理论用来描述基本粒子间的弱交互作用与强交互作用)。费曼 不仅是一位伟大的研究者,而且还是一位梦想家。他的研究成果,体现在三卷 本的《费曼物理学讲义》(The Feynman Lectures on Physics)之中,这本书是他在加州理工学院讲授课程的基础上集结整理而成的。谈到梦想,1959 年, 费曼在加州理工学院的物理年会上发表了题为《底下的空间还大得很》的演讲, 首次提出了纳米技术的想法,也就是接近原子大小的微小器件的行为。

到了20 世纪80 年代早期,费曼开始对计算感兴趣。在生命的最后5 年 里,他一直在讲授有关计算的课程。前两年中,他联合加州理工学院的两个同 事卡弗·米德(Carver Mead)和约翰·霍普菲尔德(John Hopfield)一起讲 授一门雄心勃勃的计算课程。在第三年里,费曼在麻省理工学院计算机科学家 格里·苏斯曼(Gerry Sussman)的协助下推出了自己设计的课程。这些讲义 巧妙地融合了常见的计算机科学资料,还加入了对计算热力学的讨论与量子计 算机的分析。在去世之前,费曼请求本书作者托尼·海依(Tony Hey)把自己 的笔记整理出版,这些讲义才最终得以重见天日,形成了《费曼计算学讲义》 (The Feynman Lectures on Computation)。此外,费曼还曾担任思考机器计算机公司的顾问,这家公司由麻省理工学院研究员丹尼·希利斯(Danny Hillis)创立。

本书的作者之一托尼·海依(Tony Hey)是《新量子宇宙》(The New Quantum Universe)的作者。《新量子宇宙》是一本之前广受欢迎的科学图书。它的写作灵感就来自于费曼的量子力学入门讲义。《费曼计算学讲义》似乎也催生出了其他一些广受欢迎的作品。费曼还在伊沙兰学院做过题为《 计算机: 从内到外》的演讲,对计算机做了简要的介绍。在演讲中,费曼解释了计算机 必不可少的工作步骤,并且拿一个非常愚蠢的档案管理员做了类比。我们写的 这本通俗的计算机科学图书,最初的灵感来源正是《费曼计算学讲义》。

写作本书时,我们也受到了其他一些图书的启发,比如特雷西·基德尔 (Tracy Kidder)所写的《新机器的灵魂》(The Soul of a New Machine)。 虽然它讲的是新式微型计算机的设计与构造,但是读起来就像是一本惊险 小说。另外一本书是计算机史学家斯坦·奥格登(Stan Augarten)所写的 《最先进的技术》(The State of the Art),它用图片呈现了摩尔定律的发展 史。还有一本书也出自奥格登之手,书名是Bit by Bit: An Illustrated History of Computers,这本图解计算机史的书从计算机器讲到了个人计算机,其 写作意图与本书最接近。除此之外,还有以色列计算机科学家戴维·哈雷 尔(David Harel) 写的《算法学: 计算精髓》(Algorithmics: The Spirit of Computing),以及计算机设计师丹尼·希利斯写的《通灵芯片 : 计算机 运作的简单原理》(The Pattern on the Stone: The Simple Ideas That Make Computers Work)。

计算思维与计算机科学

在学校里,我们把精通3R(阅读、写作、算术,三个单词的英文首字母缩写都为R)看作生活的必备技能。现在,还要加上一条,那就是我们希望所有孩子都会使用计算机,可以创建电子文档、使用电子表格、做PPT 演示、浏览网页。但是,这些基本的“计算思维”并不是“计算机科学”这一术语所表达的内容。计算机科学是一门研究计算机的学问——如何制造计算机、了解它的局限以及使用它强大的计算能力解决复杂问题。阿兰·图灵(Alan Turing)是一位天才,他是探索这些问题的先驱之一,通过模仿计算员(指负责计算工作的人)在解决计算问题时的做法,图灵提出了一个理论机器模型,即图灵机。图灵机给出了推断计算机行为所必需的数学基础。计算机科学不仅关乎数学,而且还与工程学密切相关,即创建复杂系统来做有用之事。在计算机工程中,我们还可以更自由地探究虚拟系统,它们结构复杂却不受实际物理系统的限制。

计算机科学家周以真(Jeannette Wing)把“计算思维”定义为运用计算 机科学的基本概念来解决难题、设计复杂系统以及理解人类行为的能力。她认 为,培养人的计算思维在21 世纪是必需的,就像此前的3R 一样。计算思维包 含抽象与分解技巧,帮助我们开发算法以解决复杂任务或设计复杂系统。以相 应的计算机科学概念(如冗余、损失控制、错误纠正)为思维方式进行思考, 也能够得到一些与系统思想相关的新见解,比如预防、保护与修复。计算思维 还有助于我们把来自机器学习与贝叶斯统计的“想法”运用到日常问题之中。 由于生活的许多方面存在着不确定性,我们会遇到规划与学习的问题,而大数 据的计算思维则广泛应用于科学研究与商业活动中。

我们如何指导计算机解决特定问题呢?首先,我们必须使用专门的编程语 言写下自己的算法,即用来解决问题的一系列步骤,有点儿像一份烹饪菜谱。 我们把这种特定的指令序列称为“程序”,它是计算机软件的一部分,由计算 机执行以解决特定的问题。然后,这些使用编程语言编写的指令被翻译成可被 计算机硬件底层组件所执行的操作。在计算机上运行程序还需要其他一些软件 的参与,比如操作系统,它管理着数据的输入与输出、存储设计与打印机的使 用等。编程就是把我们的计算机科学算法翻译成计算机能够理解的程序。类似 于计算思维,编程能力无疑是一个人投身信息技术产业所必需的技能,但是它 只是周以真所提出的计算思维的很小一部分。

本书目标

写作本书不是为了再出一本关于计算机的教科书,或者又来一本讲解计算 历史的图书,而是为了帮助读者(特别是学生群体)清楚地了解计算机的历史, 激发他们对计算机科学的兴趣,鼓励他们积极投身到这项事业中。我们也希望 本书浅显易懂的讲解方式能够帮助普通读者理解计算机的工作原理,以及窥得 计算机网络所带来的无限可能。为了让本书更易读,更有趣,我们还在书中选择性地添加了一些科学家与工程师的简短传记与趣闻轶事。

说来奇怪,学校里会讲解伟大的数学家、物理学家、化学家、生物学家 的成就,但对伟大的计算机先驱鲜有提及。针对于此,本书的目标之一就是通 过着重介绍计算机先驱的伟大贡献来纠正这种失衡的状态,希望能够改变这一 状况。本书介绍的这一类内容包括阿兰·图灵、约翰·冯·诺依曼(John von Neumann)的早期理论思想,以及第一批计算机工程师的伟大成就,比如美国 的约翰·埃克特(John Eckert)、约翰·莫奇利(John Mauchly),欧洲的莫 里斯·威尔克斯(Maurice Wilkes)、康拉德·楚泽(Konrad Zuse)等。故事 伴随着IBM 与Digital 的崛起,一直到施乐帕克研究中心诞生的计算机传奇, 即不可思议的Alto 计算机,它由艾伦·凯(Alan Kay)、查克·撒克(Chuck Thacker)、巴特勒·兰普森(Butler Lampson)制造。确切地说,计算的故事 伴随着摩尔定律的演变与半导体行业的崛起。微处理器(芯片上的计算机)引 起了个人计算机革命,涌现的先驱有苹果的史蒂夫·乔布斯(Steve Jobs)和史 蒂夫·沃兹尼亚克(Steve Wozniak)、微软的比尔·盖茨(Bill Gates)和保罗·艾 伦(Paul Allen)。

在计算机诞生后的第一个30 年中,它只是用来做计算,而在接下来的 30 年中,计算机则用来进行沟通交流。故事从J. C. R. 利克莱德(J. C. R. Licklider)最早的交互计算与网络猜想开始,到保罗·巴兰(Paul Baran)与 唐纳德·戴维斯(Donald Davies)的分组交换思想,再到鲍勃·泰勒(Bob Taylor)、拉里·罗伯茨(Larry Roberts)的阿帕网和BBN,再到鲍勃·卡恩 (Bob Kahn)与温特·瑟夫(Vint Cerf)的互联网协议。早期范内瓦·布什 (Vannevar Bush)、泰德·尼尔森(Ted Nelson)、道格拉斯·恩格尔巴特(Douglas Engelbart)关于超文本与链接文档的思想逐步演化成了今天无处不在的互联网。类似地,斯坦福大学研究生谢尔盖·布林(Sergey Brin)和拉里·佩奇(Larry Page)发明的网页排序算法PageRank 直接触发了互联网搜索引擎的崛起,成就了谷歌、必应和百度等公司。

如今,我们能够较为准确地预测天气,访问海量信息,与网络中的任何人 交谈、玩游戏、合作完成工作,轻松与他人分享信息。如果我们愿意,甚至可 以把自己的想法散播到全世界。计算机世界的机会看似没有止境,但我们仅仅 处在未来无限可能性的起始阶段而已。根据图灵奖得主巴特勒·兰普森的说法, 下一个30 年我们将会进入“计算第三纪元”,届时计算机将能代表我们做出 智能行为。这些发展也会在伦理道德、安全隐私等方面带来严重的问题,这些 内容已经超出本书的讨论范围。在本书的结束部分,我们将一起探讨一些可能 出现的计算机技术以及计算机科学在未来所面临的挑战。

本书速览

本书第1 章至第6 章将从数字计算机的诞生讲到计算机软硬件如何共 同协作解决问题。其中,第4 章讲解编程语言与软件工程思想,第5 章讲解 算法。第6 章可能是本书最难的一章,尝试解释阿兰·图灵与阿隆佐·丘奇 (Alonzo Church)关于可计算性与普适性的基础理论。在第一次阅读本书时 你可以先跳过第6 章,这不会影响你对后面章节内容的理解。针对那些对硬件 感兴趣的读者,第7 章讲解晶体管、集成电路(硅芯片)的发现史,摩尔定律 的起源,以及半导体量子力学。第15 章讲解摩尔定律的终结,以及随着微型 化逼近原子水平而催生的一些硅的未来替代品。

第1 章与第2 章结尾的历史讲解部分,提供了更多有关计算机科学历史的 背景知识,包括查尔斯·巴贝奇(Charles Babbage)与埃达·洛夫莱斯(Ada Lovelace)的早期想法、鲜为人知的巨人机(由英国邮政局多利士山研究实验 室建造,供布莱切利庄园的密码破译员使用)、LEO(世界上第一台商用计算 机)、首批存储程序计算机(曼彻斯特大学的Baby 和剑桥大学的EDSAC)。 在第8 章中也有一个历史版块,用来讲解交互计算与个人计算机的几位先驱。

第8 章讲解基于微处理器的个人计算机的发展,以及在迈向当今的智能手机、平板计算机、触摸交互时代过程中扮演关键角色的施乐帕克研究中心、IBM、微软和苹果。第9 章介绍计算机游戏与计算机图形的起源。第10 章至第12 章是介绍互联网、搜索引擎和恶意软件三大关键章节。

人工智能与著名的图灵测试是第13 章讲解的主题,而第14 章则讲解机器学习技术的现代应用,主要涉及计算机视觉、计算机语音和语言处理。所有这些都在IBM 的计算机沃森(Watson)设计中有所体现,它曾在电视游戏节目《危险边缘!》中大获全胜。第16 章展望未来,讲解机器人科学技术与物联网的发展过程,结尾部分讨论了强人工智能与意识问题。

第17 章是关于出现在科幻小说中的计算机的随笔。

目录

  • 前言 掌握计算思维,迈入“计算第三纪元”
  • 如何阅读本书
  • 序幕 技术史中的重要时刻
  • 01 革命的开端
  • 02 硬件
  • 03 软件在“洞”里
  • 04 编程语言和软件工程
  • 05 算法
  • 06 令人赞叹的图灵机
  • 07 摩尔定律和硅革命
  • 08 个人计算机的诞生
  • 09 计算机游戏
  • 10 利克莱德的星际计算机网络
  • 11 “编织”万维网
  • 12 网络的黑暗面
  • 13 人工智能和神经网络
  • 14 机器学习和自然语言处理
  • 15 “摩尔定律”的终结
  • 16 第三代计算机
  • 17 科幻小说中的计算机
  • 后记 从图灵上锁的水杯到今天
  • 附录Ⅰ 长度的尺度
  • 附录Ⅱ 计算机科学研究和信息技术产业
  • 致谢