Computer Science Department, Carnegie Mellon University,
Pittsburgh, PA 15213, USA
摘要
计算思维将影响每个领域的每个人。这一愿景对我们的社会,特别是对我们的儿童提出了新的教育挑战。在思考计算时,我们需要适应我们领域的三个驱动力:科学,技术和社会。加速的技术进步和巨大的社会需求迫使我们重新审视计算的最基本的科学问题。
关键词:计算思维;抽象;自动化;计算;可计算;智能
计算思维
计算思维是一种解决问题、设计系统和理解人类行为的方法,它借鉴了计算的基本概念(*wing@cs.cmu.edu 我所说的“计算”是指非常广泛的领域,包括计算机科学、计算机工程、通信、信息科学和信息技术。)。
计算思维是分析思维的一种。它与数学思维在我们解决问题的一般方法上是相同的。在设计和评估一个在真实的世界的约束下运行的大型复杂系统时,它与工程思维的一般方式是相同的。它与科学思维在我们理解可计算性、智能、思维和人类行为的一般方式上是相同的。
计算:抽象与自动化
计算思维的本质是抽象。在计算中,我们抽象的概念超越了时间和空间的物理维度。我们的抽象是非常一般的,因为它们是符号的,而数字抽象只是一个特例。
在两个方面,我们的抽象往往比数学和物理科学更丰富和更复杂。首先,我们的抽象并不一定享受数学的干净,优雅或容易定义的代数属性。
物理世界的抽象概念,如真实的数或集合。例如,元素堆栈是计算中使用的常见抽象数据类型。我们不会认为“添加”两个堆栈,因为我们将两个整数。算法是一步一步地获取输入并产生所需输出的过程的抽象。“交错”两个算法是什么意思,也许是为了有效的并行处理?编程语言是一组字符串的抽象,每个字符串在解释时都会影响一些计算。“联合收割机”是什么意思?这些类型的组合子本身就是抽象的,需要仔细思考,也许需要整个研究议程来定义。其次,由于我们的抽象最终是在物理世界的约束下实现的,因此我们必须担心边缘情况和失败情况。当磁盘已满或服务器没有响应时会发生什么? 当一个程序在运行时遇到一个应该在编译时就被捕获的错误时,会发生什么?我们如何让机器人在走廊里移动而不撞到人?
在处理丰富的抽象时,定义“正确的”抽象是至关重要的。抽象过程决定我们需要强调哪些细节以及我们可以忽略哪些细节是计算思维的基础。
抽象过程引入了层。在计算中,我们同时处理至少两个,通常更多的抽象层:感兴趣的层和下面的层;或者感兴趣的层和上面的层。层之间定义良好的接口使我们能够构建大型复杂的系统。给定软件组件的应用程序编程接口(API),用户不需要知道组件实现的细节就知道如何与它交互,并且实现者不需要知道组件的所有潜在用户可能是谁才能正确地实现它。互联网的分层体系结构,特别是“细腰”互联网协议层,既支持在底层并入新的计算设备和联网技术,又支持在顶层添加新的、不可预见的应用。
在处理抽象层时,我们必须记住每对层之间的关系,无论是通过抽象函数,模拟关系,转换还是更一般的映射来定义。我们使用这些映射在显示一个抽象的状态机和它的一个可能的改进之间的可观察到的等价性,在证明一个规范的实现的正确性,并在编译一个程序编写的高级语言更有效的机器代码。
因此,计算思维中的基本要素是定义抽象,处理多个抽象层,并理解不同层之间的关系。抽象是计算的“精神”工具。
我们的“精神”工具的力量被我们的“金属”工具的力量放大。计算是我们抽象的自动化。我们通过机械化我们的抽象、抽象层及其关系来操作。机械化是可能的,因为我们精确和严格的符号和模型。自动化意味着需要某种计算机来解释抽象。最明显的计算机类型是机器,即具有处理,存储和存储功能、通信能力的物理设备(显而易见的物理设备是今天的机械或电气设备。我还想把未来的物理设备包括在内,例如纳米计算机和量子计算机;甚至包括未来的生物设备,例如有机计算机、DNA计算机和分子计算机)。
是的,计算机可以是机器,但更微妙的是,它可以是人。人类处理信息;人类计算。换句话说,计算思维不需要机器。此外,当我们将人类和机器的组合视为计算机时,我们可以利用人类与机器的组合处理能力。例如,人类在解析和解释图像方面仍然比机器更好;另一方面,机器在执行某些类型的指令方面比人类快得多,并且处理的数据集远远超过人类可以处理的范围。
在操作上,计算关心的是回答“我如何让计算机解决这个问题?”其中计算机可以是机器、人、机器和人的组合,或者递归地,这些计算机的组合(例如网络)。在回答这个问题时,隐含的是我们识别适当的抽象,并为任务选择适当的计算机类型。不幸的是,回答这个问题太容易了,因为我们没有认真考虑定义正确的抽象,然后选择一台马力很大的机器来使用蛮力解决问题。计算思维可以提供比机械计算机的简单使用更多的东西。
计算思维无处不在
计算思维正在影响几乎所有学科的研究,无论是在科学还是人文学科”(Bundy 2007)。计算思维对其他领域影响的证据比比皆是:计算思维正在改变统计学,通过机器学习,贝叶斯方法的自动化和概率图形模型的使用使得有可能识别大量数据集中的模式和异常,如天文地图,功能性磁共振成像扫描,信用卡购买和杂货店收据(例如,机器学习部门2008)。计算思维正在改变生物学,首先是鸟枪测序算法加速了我们对人类基因组进行测序的能力,现在是我们对自然界中发现的动态过程的抽象,从细胞周期到蛋白质折叠(例如Fisher & Henzinger 2007)。 计算思维正在改变经济学,催生了一个新的计算微观经济学领域,其应用包括广告投放、在线拍卖、声誉服务,甚至为n路肾脏交换寻找最佳捐赠者(Abraham et al. 2007)。
在其他领域,计算思维还停留在简单的计算思维阶段:花费几天的机器周期来解决问题。许多科学和工程学科依赖于对自然界中发现的物理过程的数学模型进行大量的计算机模拟。航空航天依赖于能够模拟整个飞机或空间使命。地球科学敢于想要模拟地球,从它的内核到它的表面到太阳。在人文和艺术领域,书籍、收藏品和人工制品的数字图书馆通过数据挖掘和数据联合等计算方法创造了机会,以发现我们理解和欣赏人类的新趋势、模式和联系。
展望未来,通过选择更聪明或更复杂的抽象,更深入的计算思维可能使科学家和工程师能够在比今天更大的数量级上建模和分析他们的系统。通过使用抽象层,例如通过分层分解,我们期待何时能够:在多个时间尺度和三个空间维度的多个分辨率上对系统进行建模;对这些复杂系统的相互作用进行建模,以确定临界点和紧急行为的条件;增加这些模型中的参数和初始条件集的数量;在时间上前后播放这些模型;并根据地面实况验证这些模型。
更深入的计算思维不仅可以帮助我们对越来越复杂的系统进行建模,还可以帮助我们分析我们收集和生成的大量数据。通过分布式传感器网络的部署、监测和监视系统的日常使用、移动的(手机)上数码相机的普及、世界信息的数字化、复杂系统模型的模拟等,我们将收集和生成越来越多的数据进行分析。通过计算思维–表示和处理数据的抽象–我们将能够提取隐藏在数据中或散布在数据中的知识。这是一个开放的反馈回路:这些知识激发了我们的好奇心,将引导我们提出需要收集更多数据的新问题;这些知识将帮助我们微调模拟模型,从而生成更多数据。
视觉1号。我设想,计算思维将有助于在所有领域的努力新的发现和创新。
人人都有计算思维
如果计算思维将在任何地方使用,那么它将直接或间接地触及每个人。这就提出了一个教育挑战。如果计算思维被加入到思维能力的剧目中,那么人们应该如何以及何时学习这种思维,我们应该如何以及何时教授这种思维?让我们假设在所有领域的研究中使用计算思维的趋势已经发生,从而已经影响到研究生的培养。让我们进一步假设,大学已经开始将计算思维纳入其本科课程,从而认识到下一代必须能够思考才能在现代社会中取得成功。因此,让我们把这个问题集中在小学到高中的教育水平。 事实上,如果我们想确保所有人都能理解和应用计算思维,那么这种学习最好在童年早期完成。
我提出以下问题,作为对计算机科学、学习科学和教育界的挑战。
挑战一号。什么是有效的方法学习(教)计算思维的儿童?
这个问题引出了更根本的问题:计算思维的基本概念是什么?教育工作者
计算机科学家已经回答了这个问题,并将继续回答这个问题,他们通常为一年级的本科生开设课程,重点是计算原理,而不仅仅是计算机编程技能。随着计算领域的不断成熟,这个问题值得再次讨论,特别是在早些年。
此外,值得与学习科学和教育的学者合作重新审视这个问题。例如,什么计算思维概念(如果有的话)是人类认知与生俱来的,就像数字的数学概念一样?人类的视觉是并行处理的。哪些任务是我们最自然地并行或学习完成的,而不是顺序完成的?孩子们通过数学和语言体验无穷大和递归的概念;在正式学习环境中早期命名和教授这些基本概念将为计算思维提供强大的构建模块。
随着孩子学习能力的发展,在教孩子的过程中,概念的有效顺序是什么?以此类推,我们在幼儿园(5岁时)教孩子数字,在初中(12岁)教代数,在高中(18岁)教微积分。可能有许多可能的方法来构建计算思维概念的进展;哪种方法对哪种学习者最有效?
我们应该如何最好地将工具与概念教学结合起来?这里和
此后,让“工具”指计算机(§1a中的一种特殊的“金属”工具)。我们的计算领域是在一个独特的情况下,因为不仅有计算概念教,但也有一个工具教。这一工具带来了一些挑战和机遇。
一个挑战是,我们不希望工具妨碍理解概念。我们也不希望人们仅仅能够使用工具,但没有学习概念(一个很好的例子:使用计算器与理解算术)。更糟糕的是,我们不希望人们认为他们理解这些概念,因为他们擅长使用这个工具。第二个挑战是,我们希望按照概念学习的顺序来跟踪如何使用工具的学习。我们在什么时候介绍计算机的每一个强大功能?我们在什么时候让孩子们接触到机器如何工作的复杂性?这些问题类似于选择正确的抽象,现在的标准是由学习能力定义的。
一个机会是我们可以使用该工具来强化我们所教授的概念。
计算很酷:它就是让抽象变得生动!通过有效的可视化和动画,即使在低年级,我们也可以直观地展示多项式时间算法和指数时间算法之间的差异,或者展示树是一种特殊的图形;在高年级,通过掌握编程技能,学生可以自动化自己的抽象。事实上,这个工具不仅可以用来强化计算思维概念,还可以强化其他领域的概念。第二个机会是,今天的大多数孩子都很容易使用该工具,并且不害怕探索和玩它。我们可以利用孩子们在家里和学校日常接触计算设备的机会。今天。
考虑到最后一点,我们还应该探索非正式学习和正式学习。学习可以通过多种方式在课堂之外进行:孩子们互相教导;向父母和家人学习;在家里、博物馆和图书馆学习;通过业余爱好、上网和生活经验学习。
愿景2号。我设想计算思维将成为儿童教育的一个组成部分。
图1.计算的三大驱动力:科学、技术和社会。
请注意在实现这一愿景方面存在着许多文化、经济、政治和社会障碍,特别是在教育系统不是中央控制的国家。为实现这一愿景而努力仍然可以产生有价值的好处。
关于计算
计算领域受到科学问题、技术创新和社会需求的驱动。我提醒我们这一点有两个原因。首先,在我们的领域,我们经常被我们的技术进步或社会期望所席卷,以至于我们忘记了我们的领域背后有深刻的科学问题。第二,对于计算之外的其他人来说,重要的是要解释每一个的重量,以及我们的三个驱动力科学,技术和社会的结合使我们的领域独一无二,确实有别于其他科学,数学和工程。为什么不庆祝这一区别?
此外,如图1中的双向箭头所示,在这三个驱动因素之间存在着奇妙的相互作用-推动和拉动:在通常的循环中,科学发现为技术创新提供动力,技术创新为新的社会应用提供动力;在相反的方向上,新技术激发新的创造性社会应用,这可能需要新的科学发现。社会需要新科学的一个例子是:我们自己的计算和通信机器的普及,从数万台服务器的巨型数据中心到数十亿部移动的电话,需要科学的新进步来更有效地利用能源。社会对新技术需求的一个例子是:对更高保真和更逼真的虚拟环境的需求正在使我们的网络能力紧张,无法实时同时传输多个多媒体(音频、视频和文本)数据流。 技术拉动的另一个例子是,表达个人身份和与志同道合者联系的基本社会愿望如何导致Facebook、MySpace和YouTube等社交网络的意外和迅速崛起,这反过来又为我们的经济增加了一个新的产业。
我们的领域最自然地预测技术趋势,并拥抱社会的需求和期望,所以让我们从技术驱动力开始,然后是社会,然后是科学。
技术驱动因素
从计算基底层面开始,我们预测摩尔定律将在未来10-15年内终结(Engadget 2006)。硅基技术的直接后果是生产多核架构机器;挑战是理解如何编程它们以有效地使用它们的并行处理能力。
除了硅,我们还研究纳米计算、生物计算甚至量子计算。从某种意义上说,他们已经到了。Nano就在这里:IBM(2006)宣布其研究人员已经围绕单个碳纳米管分子构建了第一个完整的集成电路。Bio在这里:Adleman(1994)用DNA计算解决了七点哈密顿路径问题; Benenson等人(2004)在Nature中描述了DNA计算机的构造。我们现在正在建造分子机器。量子要来了?瑞士人(Messmer 2007)使用量子密码术来确保选举中的选票。纳米计算机和生物计算机的设计必须考虑量子效应(例如Heller et al. 2005)。
在器件层面,Strukov等人(2008)宣布他们可以创建忆阻器(Chua 1971),即与电阻器、电容器和电感器一起缺失的第四个元件沿着。在更大的范围内,我们看到越来越多地使用移动的电话、射频识别标签、传感器、执行器和机器人。我们的汽车都装有嵌入式计算机:宝马汽车“现在实际上是一个计算机网络”(经济学家2007)。
在数据方面,我们正在淹没在数据中。传感器无处不在,存储很便宜,我们一直处于信息过载的状态。
在通信方面,Web 3.0或语义Web是一个活跃的研究领域。我们将看到更复杂的虚拟世界;第二人生是今天的马赛克。未来的科学家和工程师将通过虚拟组织开展工作,促进国际合作。
在意义深远的技术机器方面,人们渴望建造模拟人脑的机器。IBM和EPFL的蓝脑计划(2005)旨在创建一个生物学上准确的大脑功能模型。初创公司Numenta(2005)正在构建一个模仿人类新皮层的智能计算软件平台。
这些只是当今的几个技术趋势;在10年后阅读本文的这一部分,看看我们在哪里以及我们将走多远,这将是很有趣的。
社会驱动因素
我们的信息技术,包括计算机和通信的成功,提高了社会对我们的期望。人们现在要求每天24小时的可用性,100%的可靠性,100%的连接性,即时响应,永久存储任何东西的能力,以及任何人随时随地访问任何东西的能力。
我们技术的用户类别不仅限于科学家和工程师。相反,我们的用户是年轻人和老年人,有能力的和残疾的,富有的和贫穷的,识字的和文盲的。
我们的技术还必须支持一系列用户:从个人到群体,再到人口,再到全球社会。个人需要高度个性化的设备和服务;搜索公司通过跟踪我们的查询和个性化我们看到的广告来实现这一愿望。朋友的小圈子导致更大的熟人网络,如LinkedIn或社交网络,如Facebook。不同的人群可以使用信息和网络技术来保护他们的文化遗产。
互联网和万维网一起是一个伟大的均衡器。另一方面,在问责制、匿名、身份管理和隐私方面仍然存在科学和技术挑战。
挑战二。我们如何使我们的技术和我们的应用程序的财富为所有人所用?如何平衡开放与隐私?
科学驱动因素
Wing(2008)提出了五个“计算中的深层问题”,以提醒我们自己,在我们个人的研究追求或技术创新的基础上存在着科学挑战。为了本文的完整性,我重复了这一组问题(即没有隐含的顺序)。这一组是一个起点,整个社区都在添加新的问题。
- P等于NP吗?- 什么是可计算的?- 什么是智能?- 什么是信息?
- (如何)简单地构建复杂系统?
结束问题。考虑到对应的哲学,它说计算思维是由我们对自动化抽象的渴望所告知的,其中计算机可以是人和/或机器,相关材料中概述的技术趋势,它测试了香农的信息论和图灵机作为计算的基本模型的充分性,我们甚至可能会问最基本的问题:什么是计算机?
我感谢许多人阅读了我在2006年3月的ACM观点通信或听我谈论计算思维。大家的大力支持令人欣慰。我还要感谢卡内基梅隆大学和微软研究院的同事们,他们很早就支持了我让计算思维变得司空见惯的愿景,也感谢国家科学基金会的同事们,他们帮助我强化和深化了这一愿景背后的想法。这篇文章是基于工作部分支持的国家科学基金会,而在基金会工作。本材料中表达的任何意见,发现和结论或建议都是作者的意见,不一定反映国家科学基金会的观点。
引用
- Abraham, D., Blum, A. & Sandholm, T. 2007 Clearing algorithms for barter exchange markets:
enabling nationwide kidney exchanges. In Proc. 8th ACM Conf. on Electronic Commerce,
pp. 295–304. New York, NY: Association for Computing Machinery. - Adleman, L. M. 1994 Molecular computation of solutions to combinatorial problems. Science 266,
1021–1024. (doi:10.1126/science.7973651) - Benenson, Y., Gil, B., Ben-Dor, U., Adar, R. & Shapiro, E. 2004 An autonomous molecular
computer for logical control of gene expression. Nature 429, 423–429. (doi:10.1038/nature02551) - Blue Brain Project 2005 See http://bluebrain.epfl.ch/.
- Bundy, A. 2007 Computational thinking is pervasive. J. Scient. Pract. Comput. 1, 67–69.
- Chua, L. 1971 Memristor—the missing circuit element. IEEE Trans. Circuit Theory 18, 507–519.J. M. Wing3724
- Economist 2007 Quote from R. Achatz, Seimens, from ‘Revving up’. The Economist, 11 October 2007.
- Engadget 2006 See http://www.engadget.com/2007/09/19/gordon-moore-predicts-end-to-moores-law-in-10-years/.
- Fisher, J. & Henzinger, T. A. 2007 Executable cell biology. Nat. Biotechnol. 25, 1239–1249. (doi:10.1038/nbt1356)
- Heller, M. J., Sullivan, B. & Dehling, D. 2005 Fabrication of photonic transfer DNA–quantum dot nanostructures. In Technical Proc. 2005 NSTI Nanotechnology Conference and Trade Show,vol. 1, ch. 12, pp. 769–772.
- IBM 2006 See http://domino.watson.ibm.com/comm/pr.nsf/pages/news.20060324_carbonnano-
tube.html. - Machine Learning Department 2008 Research projects home page, Carnegie Mellon University. See http://www.ml.cmu.edu/research/index.html.
- Messmer, E. 2007 Quantum cryptography to secure ballots in Swiss election. Network World, 11
- October 2007. See http://www.networkworld.com/news/2007/101007-quantum-cryptography-secure-ballots.html.
- Numenta 2005 See http://www.numenta.com.
- Strukov, D. B., Snider, G. S., Stewart, D. R. & Williams, R. S. 2008 The missing memristor found.Nature 453, 80–83. (doi:10.1038/nature06932)
- Wing, J. M. 2006 Computational thinking. Commun. ACM 49, 33–35.
- Wing, J. M. 2008 Five deep questions in computing. Commun. ACM 51, 58–60. (doi:10.1145/1327452.1327479)