计算思维与信息技术课程的发展
计算思维与信息技术课程的发展 (2012-02-12 23:58:34)
最近,一些从事信息技术教学的中小学教师向我咨询,未来信息技术课程改革与发展的方向和趋势是什么,如何提高信息技术课程的教学质量?关于信息技术课程发展的方向,可以参考周以真教授提出的“计算思维”,并结合自己学校的实际情况来考虑。
据美国自然科学基金官方网站消息,卡内基-梅隆大学计算机学院院长、亚裔女性周以真(Jeannette Wing)将出任NSF 计算机与信息科学与工程部(CISE )副部长。她将于2007年7月1日上任。周以真将负责管理美国NSF 在信息科学和计算机研究领域的基金。CISE 每年的预算高达五亿两千七百万美元,CISE 提供的经费占整个美国联邦政府对计算机科学研究经费的86%。
卡内基梅隆大学的校长Jared L Cohon评价说:“周以真是当今世界上最有创新精神、最具原创力的计算机科学家之一。她在科研、教学和行政上均做出了重大贡献。NSF 不可能找到一个比周以真更好的人选了。”
以下有关“计算思维”的内容转引自华南师范大学附小吴向东老师博客,吴老师早在2007年就开始关注计算思维与科学教学改革的问题,http://blog.iiris.cn/post/1191.html
周以真:计算思维
Jeannette M. Wing (周以真)
翻译:徐韵文,王飞跃 校对:王飞跃
中国计算机学会通讯 2007年第十一期
计算思维建立在计算过程的能力和限制之上,由人由机器执行。计算方法和模型使我们敢于去处理那些原本无法由任何个人独自完成的问题求解和系统设计。计算思维直面机器智能的不解之谜:什么人类比计算机做得好?什么计算机比人类做得好?最基本的问题是:什么是
可计算的?迄今为止我们对这些问题仍是一知半解。
计算思维可以做什么?
计算思维是每个人的基本技能,不仅仅属于计算机科学家。我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Reading, wRiting, and aRithmetic——3R ),还要学会计算思维。正如印刷出版促进了3R 的普及,计算和计算机也以类似的正反馈促进了计算思维的传播。
计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。
当我们必须求解一个特定的问题时,首先会问:解决这个问题有多么困难?怎样才是最佳的解决方法?计算机科学根据坚实的理论基础来准确地回答这些问题。表述问题的难度就是工具的基本能力,必须考虑的因素包括机器的指令系统、资源约束和操作环境。
为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就够了,是否可以利用一下随机化,以及是否允许误报(false positive)和漏报(false negative)?计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道怎样解决的问题。
计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由广义量纲分析进行的类型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处。对于间接寻址和程序调用的方法,它既知道其威力又了解其代价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。
计算思维采用了抽象和分解来迎接庞杂的任务或者设计巨大复杂的系统。它是关注的分离(SOC 方法)。它是选择合适的方式去陈述一个问题,或者是选择合适的方式对一个问题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为。它是我们在不必理解每一个细节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信息。它就是为预期的未来应用而进行的预取和缓存。
计算思维是按照预防、保护及通过冗余、容错、纠错的方式从最坏情形恢复的一种思维。它称堵塞为“死锁”,称约定为“界面”。计算思维就是学习在同步相互会合时如何避免“竞争条件”(亦称“竞态条件”)的情形。
计算思维利用启发式推理来寻求解答,就是在不确定情况下的规划、学习和调度。它就是搜索、搜索、再搜索,结果是一系列的网页,一个赢得游戏的策略,或者一个反例。计算思维利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行权衡。 考虑下面日常生活中的事例:当你女儿早晨去学校时,她把当天需要的东西放进背包,这就是预置和缓存;当你儿子弄丢他的手套时,你建议他沿走过的路寻找,这就是回推;在什么时候停止租用滑雪板而为自己买一付呢?这就是在线算法;在超市付帐时,你应当去排哪个队呢?这就是多服务器系统的性能模型;为什么停电时你的电话仍然可用?这就是失败的无关性和设计的冗余性;完全自动的大众图灵测试如何区分计算机和人类,即CAPTCHA[注1]程序是怎样鉴别人类的?这就是充分利用求解人工智能难题之艰难来挫败计算代理程序。 计算思维将渗透到我们每个人的生活之中,到那时诸如算法和前提条件这些词汇将成为每个人日常语言的一部分,对“非确定论”和“垃圾收集”这些词的理解会和计算机科学里的含义驱近,而树已常常被倒过来画了。
我们已见证了计算思维在其他学科中的影响。例如,机器学习已经改变了统计学。就数学尺度和维数而言,统计学习用于各类问题的规模仅在几年前还是不可想象的。各种组织的统计部门都聘请了计算机科学家。计算机学院(系)正在与已有或新开设的统计学系联姻。
近来,计算机学家们对生物科学越来越感兴趣,因为他们坚信生物学家能够从计算思维中获益。计算机科学对生物学的贡献决不限于其能够在海量序列数据中搜索寻找模式规律的本领。最终希望是数据结构和算法(我们自身的计算抽象和方法)能够以其体现自身功能的方式来表示蛋白质的结构。计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式。
这种思维将成为每一个人的技能组合成分,而不仅仅限于科学家。普适计算之于今天就如计算思维之于明天。普适计算是已成为今日现实的昨日之梦,而计算思维就是明日现实。
它是什么,又不是什么?
计算机科学是计算的学问——什么是可计算的,怎样去计算。因此,计算思维具有以下特性:
概念化,不是程序化。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远不止能为计算机编程,还要求能够在抽象的多个层次上思维。
根本的,不是刻板的技能。根本技能是每一个人为了在现代社会中发挥职能所必须掌握的。刻板技能意味着机械的重复。具有讽刺意味的是,当计算机像人类一样思考之后,思维可就真的变成机械的了。
是人的,不是计算机的思维方式。计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考。计算机枯燥且沉闷,人类聪颖且富有想象力。是人类赋予计算机激情。配置了计算设备,我们就能用自己的智慧去解决那些在计算时代之前不敢尝试的问题,实现“只有想不到,没有做不到”的境界。
数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,因为像所有的科学一样,其形式化基础建筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够设计超越物理世界的各种系统。 是思想,不是人造物。不只是我们生产的软件硬件等人造物将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动的计算概念;而且,
面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再表现为一种显式之哲学的时候,它就将成为一种现实。
许多人将计算机科学等同于计算机编程。有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围。许多人认为计算机科学的基础研究已经完成,剩下的只是工程问题。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。我们特别需要抓住尚未进入大学之前的听众,包括老师、父母和学生,向他们传送下面两个主要信息:
智力上的挑战和引人入胜的科学问题依旧亟待理解和解决。这些问题和解答仅仅受限于我们自己的好奇心和创造力;同时
一个人可以主修计算机科学而从事任何行业。一个人可以主修英语或者数学,接着从事各种各样的职业。计算机科学也一样。一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。
计算机科学的教授应当为大学新生开一门称为“怎么像计算机科学家一样思维”的课程,面向所有专业,而不仅仅是计算机科学专业的学生。我们应当使入大学之前的学生接触计算的方法和模型。我们应当设法激发公众对计算机领域科学探索的兴趣,而不是悲叹对其兴趣的衰落或者哀泣其研究经费的下降。所以,我们应当传播计算机科学的快乐、崇高和力量,
致力于使计算思维成为常识。
[注释] 1. Completely Automated Public Turing Test to Tell Computers and Humans Apart——全自动区分计算机和人类的图灵测试,由CMU 注册商标。CAPTCHA 的目的是开发区分计算机和人类的一种程序算法,这种程序必须能生成并评价人类能很容易通过但计算机却通不过的测试。
[翻译] 王飞跃 徐韵文
[作者] 周以真(Jeannette M. Wing),曾任CMU 计算机科学系主任,现任NSF 计算机和信息科学与工程部(CISE )主任。于1983年在MIT 获得计算机科学博士学位。主要研究方向为并行分布式系统的规范和认证以及编程语言。
[相关资料] 2007年3月,CMU 和微软宣布建立微软-卡内基梅隆计算思维中心(Microsoft Carnegie Mellon Center for Computational Thinking)。他们将从事计算机科学新兴领域的研究,尤其是那些能够对其他学科的思维产生影响的领域。该中心将采用一种称为面向问题探索(Problem-Oriented Explorations)的方法进行核心的计算机科学领域的研究。
[原文] Communications of ACM, Vol.49, No.3, March 2006, Pages 33-35
附:
卡内基梅隆大学计算机系主任周以真演讲
新浪科技讯 11月1日,第七届“二十一世纪的计算”大型学术研讨会在杭州召开。届时国际著名的计算机大师包括图灵奖获得者、美国国家工程院院士及美国国家科学院院士等多位著名科学家莅临大会。会议由国家自然科学基金委员会、微软亚洲研究院、杭州市人民政府以及浙江大学联合举办。
图为:卡内基梅隆大学计算机系主任周以真(Jeannette Wing)教授演讲。
以下为其演讲全文:
Jeannette Wing :大家早晨好!非常荣幸能够今天早上到这里为这么多公众以及非常优秀的人士发言,我想感谢微软组织了这次会议,也要感谢浙江大学,以及感谢地方官员,作为东道主在杭州这个美丽的城市举办这个会议。
我保证我要讲的是可预测的软件,这基本上是一个摘要,但是我想借此机会向在座的学生、系主任、校校长、计算机科学的研究人员,本着这次会议的主题,也就是“二十一世纪的计算”来介绍一下我的想法,这一点也是与计算机科学有关的。开始的时候我先用一分钟跟大家讲一下计算的讲法,之后讲一下可预见的软件。
我对这个领域总的想法是这样的,计算机科学要超过任何行政、任何国家的边界,这是我对于计算机科学的一个远大想法。计算机应该是在二十一世纪中期每个人都应该掌握的一个技能,就像读书写字一样,这也是我的梦想。大家可以想象每个孩子都知道如何像计算机科学家那样思考,这会是怎样的世界呢?要实现这个梦想,计算和计算机就要一起来工作,我要给大家讲一下计算思维的例子。每一次面对一个问题的时候我们都要面对一个问题,这个问题的难度有多大,每一次我们都有精确的问这个问题的方式,也有回答这个问题的方式。计算的想法就是把看来更加困难的问题换成一种我们知道是如何解决的问题,通过嵌入、转换、模拟等等,计算的方法就是选择一个适当的代表或者模型反映出这个问题的有关方面,
使得它有不可更总性,计算的想法就是把解决复杂的问题分开来解决,同时也要判断它的设计和好处,简单化。同时也要检查分析多面的一般化的问题,计算机的思维就是要防止出现最大问题的时候如何恢复,这种东西也涉及到多用户,这也涉及到僵局,然后是涉及到解决非常难的人们的困难等等。总的来说,计算机思维就是采取方法解决问题,并且理解人类的行为,而且是和计算机科学非常关键的一些想法,有些计算机思维最喜欢的例子你也可以告诉我们。在学习方面,计算机思维也使得统计问题革命化了,美国的一些统计部门也在用计算机科学家,因为他们知道今后他们的未来在这个职业。美国的计算机学院也开始拥抱现有的部门了,我们的梅隆大学和微软公司开展了合作,我们认为算法和结构以及计算机思维方式将有助于生物学的发展。也有专家在游戏理论以及计算机方面进行广泛的研究。
下面我就讲可预计的软件,这也是有想法在里面的,这和前头相比不如那个那么宏伟,但是更加实际,我主要想对在座的学生讲这些内容,因为希望你们能够面临我们研究的一些挑战,使我们的软件更加有个性,就这个问题使你们能够兴奋起来。软件应该是无“数”不在的,不能对软件周围画一条线,它周围应该是有小的应用程序母本构成的,还有大的一些东西,包括操作系统数据库,很难定起来难以找到的东西,比如移动编码当然是永远存在的,但是是有记录的。很难找到谁是这个软件的写者,令人不能相信的是不能知道来源和创造者,同时也是认证的编码,所以相信是第三方的编码。不久就会有一些这样的图画,我会逐渐把这个变得更大。这是医院的一个病人,给他输液,输液管道是由软件控制的,医院的病人也是有专门的房间,同时医生也带着PDA 走来走去,另外还有一个远程病房会有医院档案记录的地方,比如记录一下这个病人花了多少钱。同时医生也可以拿着手机开着车远程对病人治疗情况进行监护。这个远大想法并不是不太现实,我们不久就会看到这些,可能还会很快看到,问题就是到处都有很多软件,我们如何相信软件能够把工作做好。有一些非常有意思的想法和评论,一个是嫁接系统,这种系统在关键系统当中是有的,特别是控制性的软件来确定是不是做了某些移植,在核反应堆控制系统当中也是用这种软件,在智能汽车、智能高速公路上都用这样的系统,这是多样通讯系统,涉及到很多不同的装置,包括使用什么样的机制、什么样的协议,我们到处都可以看到分布式的系统,每天都可用,并且可靠安全。前面也讲到隐私的问题,要使得隐私在表决票上加以保护是很难的。关于人机界面这一块,要注意到社会上能够接受。最后,所有人都注意到我们今天做的这些事情都会需要面对,甚至是更多这方面的问题,也许今后的问题会更加大了。
我想讲一下多重系统这方面的挑战,嫁接混合系统这方面环境是多重的、难以预测的,这个环境的复杂性是由于自然造成的,有些非常复杂的东西要做模拟,还有一些不同的变量都要加以反映。系统完整性的特点不是考虑到功能了,要使得计算能够更具有出色的结果,但是根据其他资源的限制还要考虑到硬件。看这张关于混合系统,比如说刚才那张照片,都可以意识到非常复杂。怎么保证这一点,到处都用的软件有什么影响,一个是纸张问题要加以保证,当然还有可靠性,除了可靠性之外还有安全的问题,在我们的编码当中还有很多方面。我认为安全性、可靠性、可用性这几个问题就构成了令人可相信的计算组成部分,微软公司可以说在这方面是领导公司之一,领导着令人可以置信的计算,领导着我们的软件发展。到处都有软件,这还有什么影响?我们如何来确定这些特点如何拥有的,对软件体系做一个什么样的定位,性能很好以及正确这两个方面我们说了几十年了,正确就是对不对,性能就是快不快,我想正确性和性能还是不够的,我们是否能够实施可信赖的技术。什么叫正确和信赖,这意味着什么,这个听起来不错,是不是可以及时做正确的事情,比如说Google 是已经不错的结果了,但这还不行,对于Google 来说并不需要结果是完全准确的,只是需要这些差不多的回答第一时间出现在浏览器上面就行了,但是在技术方面还是不够的。我们应该尝试可预测性的标签,是否可预测,意思就是说正确的行为、而且是可接受的行为,和不
可接受的行为,而且可预测可接受,这是由最终用户,是人或者机器来决定的,当然不同的用户之间对这个有不同的界定。这些方法我已经用了很多年,你必须从一个体系的模型入手,这样的话你可以通过很多的模型进行预测,所以是企业这样的一个方法,这里有两个方面,一个是体系方面的模型,另一方面是他的这种特征,就是你希望这样的体系有什么样的特征,所以两个信息放到两个选择里,而且是自动的,你或者说是或者说不是,你输入的信息是看是否能用,这些检查装置是看这些检查方式你可能会获得一些模棱两可的结果。有时候你的过程不够有力可以是你得到准确的答案。另外企业方面的,你需要具体的说明你想让系统展现的特征,企业方面的另外是一个竞争和谐方面的进程,我们显示这些特征是有效的,对特定的系统模型来说是可行的。如果我想我的客户从中有所获益的话,使他们了解系统要起的作用,或是把核查软件系统进一步的推动,模型核查有很多的好处,速度快,可以处理大量的文件,你不必有一个完整的对特征的具体规格的说明,或者说在做任何的工作之前,不必做很细的规定。那么,他的范围是非常的广。从安全的特点,那么安全性的特点是说不会有任何不好的事,另外,最终一些好的东西可能会出现。我想这个模型核查的主要的优势在于这种核查系统,可以告诉你这些特征的成立或者是不成立,但是他在告诉你不成立的时候,他就会提出一些反对的例子,就是说这种核查的价值,恰恰是为什么说像微软这样的公司使用这种模型核查,因为这些反例子告诉了我们为什么这种软件设计是不对的,他是作为一种消除错误的机制。
但是有一个很大的不利之处。就是空间扩展的问题,对模型核查来说,假定你认为你输入的东西,在每次作核查的时候,另外一个人可以说他处理这个系统的时候,他的量比你多,这个量的问题是来源于不同的渠道,比如说有平行错误的时候,你有很多这种线程的控制,比如说在软件区域很丰富的时候,你需要看每一个系统到处理多少的程序。这个问题成为过去20年来模型研究员所关注的对象。
比如说分解和分解的技术,还有多模型的技术,这张图显示的是这有两个输入的信息,这两个信息放到黑盒子里面去,他被成为模型检查器,模型的问题是代表一些最后的结果,这些问题是你是否对MS 成立。
给大家分享一下模型中的一些成功的程式,这是我的学生找到了很多模型的错误,其中很多在获得博士学位的人在80年代就提出了一个理念,94年的时候INTEL 公司如何发现Pentium 流程的问题。许多公司进行模拟测验,来设计何时可以看到软件的错误。而且最激动人心的故事,最近几年里面由微软公司所做的工作,在2000年的时候,我们的发言人已经讲过的,这些结果非常成功,Bill Gates 说在2002年的OOPSLA 里面提出的故事。模型核查在过去30年里面取得了很大的进展。
这是最近两年的结果,一个是针对我所在的安全性方面的工作,作为模型检查的一种扩展,怎么解决安全性的问题,之后会给大家显示一下我在卡内基大学的同事所表明的一种新的技术,就是把混合模型核查的新系统。
模型核查是通过提供反例子告诉你为什么你的系统就某个特定的特征来说是不对的,在我所做的工作里面,我们爱查出所有的反例子,特定的模型和特征不止是一个。这个图从左到右先开始最初的一些状态,之后进入最后的阶段。红色团队是由美国国家实验室建立的,现在在开发这样一种图形,它把红色团队加入进来,告诉他攻击者如何进攻我的体系,它提供一种攻击路线图,这个图的提供是手工做的,这意味着一些不一致性、重叠性,以及一些不完整性。做任何手工工作的时候我们一直在说能否自动来做,这是我和我的学生一直在问的问题,所以我们采用模型核查来自动产生所谓的攻击路线图,反例子就把它形成一种攻击。反例子是来自一系列Stat 组成的,这种攻击就形成了一系列的Stat 。就是说违反了特定的安全特征的。这是单一的简单反例子,入侵者能够成功的道路。具体来说,在所有的Stat 里面入侵者没有获得托管系统的准入。最后的M 就是安全特征,攻击违反了行动,所以M 是
一系列的攻击。
我来介绍一系列的办法,我们有M 的攻击,以及G 的图形。最后一种办法我们用M 和G 进行计算,然后产生LM 和(I),然后我们得出G ,最后我们就形成这样一个G 的供给图,这是一种非常简单的算法,然后得出我们所需要的东西。
性能很不错,而且是达到了这样一系列的技术。这个例子是我们如何把模型核查扩展到各种各样的反例子里面,然后用到安全性能当中去。下一个例子是新的技术,证明所有的模型核查都是试用的。在这里给大家介绍一下混合体系。这帐技术是专门用于处理大的Stat ,尤其是无线Stat 。现在有一个具体的系统,M ,先得出Mh ,如果违反了(I),你可以继续去找,一直到停止的时候。这里面有个理论,叫做危机理论。如果能够满足(I)的话,那就证明最初的模型M 能够满足(I)。这项技术已经在硬件里面得到使用,尤其在核查的时候得到了应用,以及其他一些例子得到了应用。我给大家显示的例子是一种混合的系统,混合系统属于无线系统,你必须处理各种各样的变量、状况,以及气压、气温、流通速度,以及其他一些因素,告诉你处于什么样的模型中。通过这种控制图,一系列的反例子技术肯定有个对应的途径,实际发生的情况是你先开始M 系统,然后把原先的进行界定,之后找到你的反例子,最后对模型进行测验,如果没有对应的途径的话,就要继续去找。你要确定在抽象当中所找到的例子是可以用不同的技巧做到的,可以用不同的方式,更重要的是你可以用不同的技术,只是审查反例子当中的一部分就可以了,因此我们把技巧适用于那种平常性的控制。 在美国有些高速公路是连接不同城市的,这些高速公路通常上面没有车,或者车是非常少的,这是很难令人置信的一件事情。也许从纽约到西雅图去,或者是开到旧金山去,这个距离比较远了,你坐在车里还是很累的,车上有这么一个功能,你累了时候就按一下按纽,脚就不用加油了,这时候定个寻航,比如70脉,因为前面没有车,你就不用总踩着油门了,这就叫平衡控制。至于说前面没有车,或者是车比较远你不会追尾,这种系统就比较好了,但是在城市里开就不行了,在杭州开就更不行了,在杭州根本就不可能用寻航控制系统。但是美国的一些人会提出,我们会想办法,来找一种适应性的寻航控制,前面有车你离他比较近的时候,而且你的速度在不太安全的情况下,如果你靠他比较近了的话,这时候我们用一种自动方式你的车就会减速,我们把这个叫做适应性的平衡控制系统。
这里要确定这个系统当中的一些特点,实际上特点也很简单,没有追尾就行了。我们对这个系统做了一个模拟,是非常简单的一种混合式的系统,你可以看到这里左上角的状况,我会把这个结果再说明一下。在左边可以看到状况,用一种反例子的做法,就是说你可以用刚才检查反例子的一些状况,这时候几乎没有什么要检查的状况,因此这个技术是非常令人兴奋的,我们可以用于一些非常困难风险非常大的系统当中。
我给他们提出一个挑战,这并不是软件检查的挑战,软件模型检查为什么变得那么具有挑战性?有哪些因素呢?包括编程语言,以及今后到处都有的软件,这本身就是软件模型的复杂性和挑战性。这里列了这么多问题,这里其中一个有可能会成为你们今后写论文的方向,这些都是值得研究的挑战领域,也是面向我们这个社会的,微软也在解决很多这方面的问题。你可以问一下要检查什么,是检查编码还是检查编码的设计,有些人可能会说,不要去管码了,只要检查设计就好了,因为设计错误了,检查编码也是没有用的。有的人关心的是软件架构模式检查,或者叫审查。我的同事还有一个问题,那些特性如何进行检查,因为今后的软件越来越复杂,他们今后的检查如何进行,我的回答是不止要进行模型检查,模型检查同时要进行动态分析以及审查检查的技巧,因此模型检查只不过是整个工作当中的一部分而已。
最后结束之际,我想说的是,我对于上述所有软件的想法要实现的时候都要超出传统的计算机科学领域,包括数学、自然科学、经济学、行为科学,还涉及到用户使用的问题,社
会层面的问题,还有公共政策方面的问题,另外还有隐私方面的问题,因此都可以实现软件方面的理想,这就要在计算机科学方面取得关键性的进展,同时也要在计算机以及其他学科相互交叉方面取得巨大的进展。
——————————
王飞跃:计算思维与计算文化
Monday, March 21, 2011 | Author: science
去年3月刚读过卡内基梅隆大学(CMU )Wing 教授的《计算思维》(ComputationalThinking )时,一丝共鸣在脑中闪过,但没引起太多的思索。年初去西交大软件学院商谈教学工作时,认为应引入一门面向新生的计算与软件的通识课。讨论中我突然想起“计算思维”,故建议设计一门讲座课,就叫《计算思维与计算文化》。
这一时的闪念迫使我回头细究Wing 的文章,开始感到“计算思维”关系到我们对计算机科学转型与发展的基本认识,意义重大。到了3月,CMU 已与微软联合成立“计算思维中心”,而Wing 也被聘为美国基金会计算机和信息科学与工程部主任。
计算机作为一种计算工具出现到今天,已逾半个世纪,如何进一步发展,是我们必须考虑的问题。对此,可在两个层面上思考:一是基本和哲学的,二是需求和现实的。
在第一个方面,不妨回忆一下计算大师Dijkstra 的一句话:“我们所使用的工具影响着我们的思维方式和思维习惯, 从而也将深刻地影响着我们的思维能力。”电动机的出现引发了自动化的思维,计算机的出现催生了智能化的思维。Wing 更是把计算机这一从工具到思维的发展提升到与“读、写、算”同等的基础重要性,成为适合于每一个人的“一种普遍的认识和一类普适的技能”。一定程度上,这也意味着计算机科学从前沿高端到基础普及的转型。 在第二个方面,涉及计算机的发展,看法只能“发散”了,但还是可以再借鉴电动机的例子,说明计算机的问题。一定程度上,电机可视为计算机的“近祖”,因此,一定意义上,其历史和命运之轨迹,也会折射出计算机的历史和命运之轨迹。明天之计算机,是不是就是今日之电机?甚至还不如?因为计算机将更加普遍和普通。明天之计算机系,是不是就是今日之电机系?甚至还不如?因为想教能教计算方法和应用的系远比想教能教电机的系多得多。催生大学计算机系的IBM 早已开始鼓吹今天的系将“消失”,并被服务科学系取而代之。此话尽管危言耸听,但发人深省。刚刚兴起的万维学更是希望将人文社会等“软”科学融入计算机科学,利用社会计算,在“虚”的万维空间里开拓出新且有价值的“实”疆域。显然,这将促进实现Wing 的目标:“一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。而且,当我们行动起来去改变计算机的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。”
两种考虑的结合,或许表明了计算机科学将发生“涅槃”般的重生,而计算思维的提出,就是未来升华的前奏?
并不是所有学者都认同对计算思维的这种认识。以研发Algol60著名的Naur 教授为代表的欧洲学派的观点尤其值得重视。虽然Naur 得过图灵奖,但他几乎完全拒绝图灵关于智能的想法,认为其整个论证都是站不住脚的,是建立在错误的概念之上的。Naur 断言:尽管计算机这种形式能够描述世上许多现象,但人的思维不在其中。
表面上,Naur 与Wing 的思想直接冲突。特别是两人的文章前后不久在同一重要杂志上登出,更容易引起人们的遐想。其实不然,Wing 特别强调:计算思维是“人的,不是计算机的思维”,而且,“计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样的思考”。
不过,我对Naur 的断言有所保留,因为人类的工具使用对人类的思维发展之影响,是人类自己难以预知的。除了Dijkstra 的“工具影响思维”之断言,更有说服力的是达尔文的进
化论和有关劳动工具在从猿到人的过程中起关键作用的论断。机器最终能否描述人的思维,似乎不是今日人类可以知道或理解的,就像不论是远祖还是今天的猿猴根本无法明白当年的木棍石器怎么能把它们的猴脑猴思维弄成现代的人脑人思维一样。如果一定要现在弄个明白,那只好再用Dijkstra 的话来回答:“机器能否思维的问题……这个问题差不多与潜艇能否游泳的问题一样相关。”我更赞同Wing 的想法:“当计算思维真正融入人类活动的整体,不再是一种显式之哲学的时候,它就将成为现实。”
其实,还有更令人担心的网络工具。互联网和Google 只是刚刚开了个头,就已经“稀里糊涂”地深刻影响并改变了我们的思维能力。这可是数不清的计算“机器”和计算“人”的有机大联合,是计算的“组合爆炸”和“指数升华”。说不定在弄清“计算思维”到底是什么之前,讨论就不得不转到“网络思维”,或更恰当地说,转到“万维思维”(WebThinking )了。
在中文里,计算思维不是一个新的名词,常被朦朦胧胧地使用,却一直没有被提高到Wing 所描述的高度广度,那样的新颖、明确、系统。至于计算文化一词,国际上已开始有少数学者提起,但还没有与计算思维相联系,也没有达成共识形成趋势。中文目前还没见有人明确提出计算文化的概念,相关却不同的计算机文化课却较为普及。不过,我们传统文化中有根深蒂固的“算计”文化。凡“精明”之人常被称作是能“算计”,时褒时贬,但差不多就是“狡猾”的同义词。希望我们能借“计算思维”之东风,尽快把世故人情的“算计文化”反正成为科学理性的“计算文化”,以提高民族的整体素质。
本来没有打算翻译Wing 的“Computational Thinking”。但有一次在网上发现它的一篇中译文,大体正确,却有许多关键性的错误[10]。我不希望这样的文章被如此地传播,故请正在我们社会计算课题组实习的清华大学徐韵文同学帮助重新翻译。几处较难翻译的地方还向周以真教授进行了请教,而且还得到了周以真教授的父亲的帮助,在此深表感谢。
译文最后的校对是九月二十三日夜在由深圳飞往成都的CA4312上进行的,当时机上电视上正在播放《太阳照常升起》的宣传片。就在我完成最后的一行,抬眼望着头顶的电视要合上笔记本时,屏幕上的一位女演员突然莫名其妙地说:我必须告诉你,感情不是计算出来的!真是“至理名言”,此话应当说给英国《观察报》的科学编辑Robin McKie听才是,此人曾称:对机器的愤怒已死, 情感计算万岁!(Machine rage is dead … Long live emotional computing!)。如此之巧合,分明是天意!看来,我根本不必为计算机科学的研究前景担心。就是再过几个有生之年,这将还是一个令人激动使人发狂的高端前沿领域。看看吧,就连不学计算机的演员似乎都明白这个道理:只要感情还没计算出来,研究就必须继续!
因此,从计算思维再到计算文化,就更只能是“路漫漫其修远兮,吾将上下而求索”了。 参考文献
[1] J. M. Wing, Computational Thinking, Communications of ACM, Vol.49, No.3, March 2007, pp.33-35.
[2] 王飞跃,服务学 — 一个崭新而古老的科学领域,科学时报,2006年12月12日。
[3] 王飞跃,万维学 — 面向下一代网络世界的新兴科技前沿? 科学时报,2006年11月24日。
[4] Fei-Yue Wang ,Toward a Paradigm Shift in Social Computing: The ACP Approach, IEEE Intelligent Systems, Vol. 22, No. 5, pp65-67, 2007.
[5] Peter Naur,Computing Versus Human Thinking, Communications of ACM, Vol.50, No.1, Jan 2007, pp.85-94.
[6] W. James, The Principles of Psychology, New York, NY, USA: Henry Holt and Co., 1890.
[7] J. R. Lucas, Minds, Machines, and Godel, Philosophy, Vol. 36, No.137, pp112-127, 1961.
[8] J. R. Searle, Minds, Brains, and Programs, Behavioral and Brain Sciences, Vol. 3, No. 3,
pp417-457, 1980.
[9] H. Putnam, Representation and Reality, Cambridge, MA, USA: MIT Press, 1988.
[10]
2007年9月23日始于成都金牛宾馆,25日成于太平洋上CA983。
注:作者1990年起在美国亚利桑那大学先后任助教授、副教授和正教授,现为中科院自动化所复杂系统与智能科学重点实验室主任, 中科院自动化所副所长。主要研究领域为智能系统、复杂系统和社会计算的建模、分析、控制和管理。2003年当选IEEE Fellow ,2004年当选IEEE Intelligent Transportation Systems Society主席、2005年当选INCOSE Fellow、2007年当选IFAC Fellow。
资料来源:http://blog.iiris.cn/post/1181.html
——————————
应使每个孩子学会“计算思维”
Monday, March 21, 2011 | Author: science
记者 吕贤如 发布时间: 2009-07-27 07:13 来源:光明日报
在今天由中国科协和中国计算机学会主办、北京市科协信息中心和北京市第80中学承办的第26届全国青少年信息学奥林匹克竞赛(NOI2009)开幕式上, 中国计算机学会理事长李国杰院士表示, 计算思维是每个人应当具备的基本技能, 它不仅仅属于计算机科学家, 而且应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术, 还要学会计算思维。
什么是“计算思维”?李国杰介绍, 计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为, 它选择合适的方式去陈述一个问题, 对一个问题的相关方面建模并用最有效的办法实现问题求解。
李国杰说, 长期以来, 信息科技被社会看成只是一种高科技工具, 计算机科学技术也被构造成一门专业性很强的工具学科和辅助性学科; 与之相应, 计算思维也被理解为专属于计算机科学家的基本技能。这种狭隘的认知对发展和普及信息科技极其不利。
李国杰指出, 事实上, 计算思维远远不只是为计算机编程, 它是在抽象的多个层次上进行思维, 是与读写能力一样的人类的基本思维方式。基于这样的理解, 最近10年来, 国际信息科技界高度重视克服“狭义工具论”的认知障碍, 正在努力将信息科技从“狭义工具”转变为21世纪经济社会必需的普适资源和增值资产。因此, 我们应当与时俱进, 培养每个孩子的计算思维。 资料来源:http://blog.iiris.cn/post/1181.html
————————————
更多阅读:
[1] 李艺:义务教育信息技术课程体系结构与内涵挖掘问题 ,
[2] 李国杰:
计算思维不仅仅属计算机科学家
●我国有不少高分低能学生,缺乏提出问题和解决问题能力,这就会导致我国创新力不
强
●中国计算机学会一直呼吁:取消信息学奥赛省级联赛一等奖保送进高校政策,现已引起政府高层部门重视
●奥数已成利益趋动的一个“怪胎”,它对社会的危害比黄、赌、毒还要大,今后应严禁中学招生与奥数挂钩
“计算机科学技术究竟是一门什么学问?计算机科学教给人们什么样的思维?中学生参加信息学奥林匹克竞赛究竟能增长什么能力?这些问题值得我们深思……”中国工程院院士、中国计算机学会理事长李国杰,7月26日在第26届全国青少年信息学奥林匹克竞赛(NOI)开幕式上发表见解。
李国杰介绍说,美国科学基金会计算机与信息科学与工程部主任周以真教授,最近同其他计算机科学家一起,在许多场合倡导计算思维。
什么是计算思维?李国杰认为,计算思维运用计算机科学的基础概念求解问题、设计系统和理解人类行为,它选择合适的方式陈述一个问题、对一个问题的相关方面建模,并用最有效的办法实现问题求解。
李国杰认为,计算机科学本质上源自数学思维和工程思维。然而,计算思维远远不只是为计算机编程,它是抽象的多个层次上的思维,与“读写能力”一样,是人类的基本思维方式。他强调,计算思维是每个人的基本技能,不仅仅属于计算机科学家。他建议,培养孩子们解析能力时,不仅要求其学会阅读、写作和算术,还要学会计算思维。
李国杰提出,有了计算机,人类就能用自身智慧解决那些计算时代之前不敢尝试的问题。然而,长期以来,信息科技被社会看成是一种高科技工具,计算机科学技术这门学科亦被构造成一门专业性很强的工具学科、一种辅助性学科,这种狭隘的认知对发展和普及信息科技极为不利。他说,最近10年来,国际信息科技界高度重视克服“狭义工具论”认知障碍,努力将信息科技作为21世纪经济社会必需的普适资源和增值资产。
李国杰指出,25年前,邓小平同志提出“计算机的普及要从娃娃做起”。为推动计算机在我国中学生中普及,中国计算机学会于同年即1984年创建了信息学奥林匹克竞赛活动,早于国际信息学奥林匹克竞赛5年。然而他强调,对学生进行创新教育,是我国一个重要课题。我国有不少高分低能学生,缺乏提出问题和解决问题能力,这就会导致我国创新力不强。他说,一个国家的创新,首先要从教育入手,从学生抓起,而目前在应试教育体制下很难解决这个问题。由此,课外科学活动如何弥补课堂教学不足,是一个值得研究的问题。
李国杰特别指出,从2001年开始,国家教育部规定:获信息学竞赛省级联赛一等奖的选手,可以免试保送上大学。这种政策对信息学奥赛活动的开展有正面促进作用,然而巨大的利益驱动,使得有些地方在组织奥赛时偏离竞赛宗旨,有的学生参赛不是出于兴趣和学有余力,而是为了保送上大学进而弄虚作假,对竞赛公正性造成伤害。李国杰指出,作为信息学奥赛主办单位,中国计算机学会和主办其他学科竞赛的全国学会,一直呼吁取消省级联赛一等奖保送政策,现已引起我国政府高层部门重视。
李国杰还指出,目前社会广泛开展的奥林匹克数学补习班,已受到各界人士的严厉批评和几乎所有学生家长的谴责。大家普遍认为,让小学生参加奥数,对他们身心健康发展极为不利,然而为了升入好中学,小孩子被迫学习奥数。这种教育方式不仅会抑制学生的创造力,而且会滋长社会不良风气。他说,奥数已经成为利益趋动的一个“怪胎”,有人认为它对社会的危害,比黄、赌、毒还要大,必须坚决废止,今后应严禁任何中学招生与奥数挂钩。
[3] 百度百科, 周以真简介
周以真(英文名Jeannette M. Wing ,),美国计算机科学家。卡内基-梅隆大学教授。美国国家自然基金会计算与信息科学工程部助理部长。ACM 和IEEE 会士。 她的主要研究领域是形式方法、可信计算、分布式系统、编程语言等。1993年她与图灵奖得主芭芭拉·利斯科
夫合作,提出了著名的Liskov 代换原则,是面向对象基本原则之一。 1979年6月在麻省理工学院获得学士和硕士学位,导师中有图灵奖得主Ronald Rivest。1983年获得该校的博士学位。 1983—1985年,在南加州大学任助理教授。1985年起,任教于卡内基-梅隆大学。2004—2007年间,曾担任该校计算机系主任。 2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊《Communications of the ACM》杂志上给出,并定义的计算思维(Computational Thinking)。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
编辑本段主要著作
J. M. Wing, J. C. P . Woodcock, and J. Davies (eds.), Proceedings of FM'99: First World Congress on Formal Methods in the Development of Computing Systems, Toulouse, France, Springer-Verlag, LNCS1708 (Volume I) and 1709 (Volume II), 1999. U. Martinand J. M. Wing (eds.), Proceedings of the First International Workshop on Larch, Springer-Verlag, Workshops in Computing Series, 1993. J. V. Guttagand J. J. Horning(eds.) with S. J. Garland, K. D. Jones, A. Modet, and J. M. Wing, Larch: Languages and Tools for Formal Specification, Springer-Verlag, 1993.
编者按:计算性思维(computational thinking )一个看似遥远与抽象的概念,但当中却蕴含着丰富的人生大智慧。小到洗衣做饭,大到公司决策,人类的工作生活都与计算性思维息息相关、紧密相连。计算性思维究竟是什么?如何更好的掌握与运用这一能力?它又如何被运用到商业实战中去?2012年10月在天津召开的微软亚太教育峰会上,即将就任微软副总裁的Jeannette M. Wing 教授和微软亚洲研究院技术战略和沟通部高级总监张益肇博士分享了他们对计算性思维所积累的宝贵认识,共同探讨了其对人类行为产生的深远影响。精彩内容,即刻奉上。
微软亚洲研究院:您能简单介绍一下什么是计算性思维吗?
Jeannette Wing :在我看来,计算性思维实际上是一个思维的过程。计算性思维能够将一个问题清晰、抽象地描述出来,并将问题的解决方案表示为一个信息处理的流程。它是一种解决问题切入的角度。现实中针对某一问题你会发现有很多解决方案的切入角度,而我所提倡的角度就是计算性思维角度。计算思维我认为它包含了数学性思维和工程性思维,而其最重要的思维模式就是抽象话语模式。
2006年,我就在《美国计算机学会通讯》上发表了《计算思维》(Computational Thinking,也称计算性思维)一文,将计算思维作为一种基本技能和普适思维方法提出。它的运用将引导计算机教育工作者、研究者和实践者去推动社会变革不仅仅限于计算机领域,例如当前各个行业领域中面临的大数据问题,都需要依赖于计算算法,来挖掘有效内容,这意味着计算机科学将从前沿变得更加基础和普及。
微软亚洲研究院:您是基于什么情况构思出这篇文章呢?
Jeannette Wing:03、04年时我发现在美国选修计算机科学本科生越来越少。当大家看到这种情况时都很沮丧、很郁闷也很担忧。我觉得计算机科学并不仅仅提供一些技术、一些硬软件、还有系统,我们还提供一种思维的模式。2006年我就写了这篇文章(指《计算思维》),主要是说我们计算科学这个领域提供的思维模式,它对所有的领域、职业都是适用的,都是能够从中受益的。
此外,我写这篇文章还有两个原因,一个是告诉学生选修计算机科学不是简简单单只学怎么编程。另外也希望通过这篇文章,吸引更多的学生来选修计算机科学的课。对于学生而言,学一点算法、计算机编程,抽象化的这种技巧,对于今后从商、搞法律、学医或者是自己创业,都会比那些没有学过计算机科学的人要更强,要更加有优势。这是因为学习抽象的语言和算法,你就会有一种新的解决问题的技能。另外有了计算性思维的人,就会知道计算能力的强大性,就知道比如说大规模的、或者很复杂的问题,其实可以发挥一些计算的能力去解决。现在大数据在任何领域都很火,我们只有通过计算技术这种能力,运用超算的基础设施,才能够去解决每一个行业大数据的挑战。像生物、医药、金融、社科、人文、还有基础科学方面,他们每个领域都有很多的大数据,可以从中去挖掘一些内容,靠计算算法,还有基础设计就能把这些内容挖掘出来。
微软亚洲研究院:怎样判断一个人是否具有计算性思维?
Jeannette Wing :计算机性思维最重要的就是可以帮助人们在真实的情况下解决问题。一个真正问题的实现,由于种种的限制,你不可能达到一种完美的抽象,抽象的过程当中,一定会有各种各样的性质。如果当一个人碰到问题时,他会先对这个问题进行抽象,抽象之后去对它进行一种重新的计算性表达,然后发挥自己工程性的思维,会考虑这个问题的解决效率是不是高,表达是不是准确,那么就说明这个人确实是一个有计算性思维的人。
微软亚洲研究院:您能否举个例子说明计算性思维在生活中的运用?
Jeannette Wing :我就拿做饭来做例子吧。你有4个灶头,锅碗瓢盆的数量是一样的。你又要做肉菜、又要做一个素菜,还要做一个甜点很多人都会做饭,但并不是所有人都是好的厨师因为很多人都是凭自己的直觉去做饭的。对于一个有计算性思维的人,他既要考虑到效果、又要考虑到正确性。在保证做出好吃的饭的同时,还考虑到诸如做荤菜的时候不要凉了,同时要做搭配的素菜。其实从计算性思维角度来说,这就是给定有限的资源,我如何去设定几个并行的流程的问题,实际上说白了就是一个任务统筹设计。
微软亚洲研究院:您认为怎样才能让更多的人来获得计算性思维的能力并掌握其方法?
Jeannette Wing :我曾经在美国国家科学基金会工作过三年,主管所有关于计算机科学方面的事务,所以我有一个在全国推广计算性思维的一个国家级的平台。我们主要想让大家知道,针对这些科研的群体,计算性思维对所有的工程师和科学家都是有好处的。后来我们还专门成立了一个资助的项目,就是对所有的工程师和科学家,如果你是在推进自己的科学研究、工程研究方面,并采用了计算性思维,我们就会给你资助。
刚才讲了都是科研团体的,教育方面挑战比较多。我也是利用当时这样一个很好的平台,与许多美国国内的各种组织合作,包括我们中小学的教育组织,还有我们大学的本科组织,还有一些高中,另外还有一些专业的计算机科学的组织一起来推广计算性思维。美国高中有一个关于计算机科学的高级资质考试,如果你考过了这个之后,拿到这个成绩进了大学里面是算学分的。这个考试现在基本形式就是考你的编程,我介入之后就是和负责这门考试的组织修改了考试的内容,现在不止考你编程,也包括计算性思维的一些基本原则。
其他国家像英国、爱尔兰、新加坡,他们都是自主向他们中小学、本科生去推广计算性思维,如果未来中国也会做这个推广工作,我会觉得我这个梦想真是成真了。
微软亚洲研究院:您觉得应当怎样在中国推广计算性思维?
张益肇:计算性思维一方面来说就是要考虑到你的行为就像是电脑程序一样,可以改变的。对于北京的交通而言,其实常常在变化。你每天在不同的时间从家里出发可以得到不同的到公司的时间。如果你有足够多的数据,你可能会得到这样的结论:如果我每天提早半个小时出发,我可能会提前一个小时就到公司。这样等于把自己的行为,变成计算机里的程序,你调节不同的参数,就会得到不同的效果。这对于组织而言也是这样,组织就像是一个企业,在企业中员工一直重复某些规矩或者是做事的方法。这其实是可以优化的,但你要想办法怎样复制,这些操作的行为,就好像说一个程序一样,你可以决定我把这部分换掉,我换成另外一个行为这个效率可能就提高了。比如说像我们在公司,你要去出差,可能就不需要再填表,让老板签名,而是在网站上完成,这样的话大家都省事,任何时候老板都可以批。
Jeannette Wing :任何一个公司都有工作流程,有接待访客,或者是差旅报销都有相应的工作流程,如果我们兼容计算性思维,可以采取一些技术方面,把这些流程进行一些分析。比如说分析这些人和资源是不是最有效的利用,然后我们再简化这些流程,避免重复,避免浪费。对于一个普通人,比如说一个中国人,你日常生活中碰到很多复杂的问题,要千头万绪都要去想清楚,你可能无所适从,你可以利用计算性的思维,把工作分一个主次,然后着重去关注那些主要的问题。
微软亚洲研究院:目前您的计算性思维研究与培养上有怎样的心得体会?
Jeannette Wing:“计算性思维”算不上一个研究的主题,其实计算科学研究最终得出来的是一些工具、语言、方法还有技巧,他们其实是计算性思维的显性的再现。我们可以从这个哲学的角度,或者从理念的角度,就把计算性思维当做一个研究课题来研究。
我们可以问一些问题,比如说在什么年龄阶段去学习计算机科学当中的哪些概念是最好的。就像是数学领域的教学,我们也是通过几百年的学习总结出不同阶段应当传输的数学知识。人的接受程度一定是先学简单的,大脑才能够慢慢接受那些更难的知识。但是在计算机学科的方面,我们对各个领域的教学次序,并没有一个明确的答案。比如算法什么时候教,是早点教还是晚点教我们并不清楚。这个只能说是靠我们这些学习科学的研究者,还有教育研究者,以及计算机学科的研究者,联合起来才能把这个答案给他找到,为计算机思维的培养打下良好的教育基础。
计算思维【作者:周以真】 (2014-03-08 16:53:00)
转载▼
分类:
http://www.douban.com/note/242763946/
计算思维【作者:周以真】
它代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用。
计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。计算方法和模型给了我们勇气去处理那些原本无法由任何个人独自完成的问题求解和系统设计。计算思维直面机器智能的不解之谜:什么人类能比计算机做得更好?什么计算机能比人类做得更好?最基本的是它涉及这样的问题:什么是可计算的?今天,我们对这些问题的答案仍是一知半解。
计算思维是每个人的基本技能,不仅仅属于计算机科学家。在阅读、写作和算术(英文简称3R )之外,我们应当将计算思维加到每个孩子的解析能力之中。正如印刷出版促进了3R 的传播,计算和计算机也以类似的正反馈促进了计算思维的传播。
计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。
当求解一个特定的问题时,我们会问:解决这个问题有多困难?怎样才是最佳的解决之道? 计算机科学根据坚实的理论基础来准确地回答这些问题。表明问题的困难程度是为了考量机器——就是用来运行其解的计算工具之基本能力。我们必须考虑机器的指令系统、它的资源约束和它的操作环境。
为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就足够了,是否可以利用
一下随机化,以及是否允许误正或误负。计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。
计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由推广量纲分析进行的类型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处。对于间接寻址和程序调用的做法,它既知道其威力又了解其代价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。
计算思维采用了抽象和分解来迎战浩大复杂的任务或者设计巨大复杂的系统。它是关注的分离。它是选择合适的方式去陈述一个问题,或者是选择合适的方式对一个问题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为。它是我们在不必理解每一个细节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信心。它就是为预期的多个用户而进行的模块化,它就是为预期的未来应用而进行的预置和缓存。
计算思维是通过冗余、堵错、纠错的方式,在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结,叫合同为界面。它就是学习在谐调同步相互会合时如何避免竞争的情形。
计算思维是利用启发式推理来寻求解答。它就是在不确定情况下的规划、学习和调度。它就是搜索、搜索、再搜索,最后得到的是一系列的网页,一个赢得游戏的策略,或者一个反例。计算思维是利用海量的数据来加快计算。它就是在时间和空间之间,在处理能力和存储容量之间的权衡。
考虑这些日常中的事例:当你女儿早晨去学校时,她把当天需要的东西放进背包;这就是预置和缓存。当你儿子弄丢他的手套时,你建议他沿走过的路回寻;这就是回推。在什么时候你停止租用滑雪板而为自己买一对呢?这就是在线算法。在超市付账时你应当去排哪个队呢?这就是多服务器系统的性能模型。为什么停电时你的电话仍然可用?这就是失败的无关性和设计的冗余性。完全自动的大众图灵测试是如何区分计算机和人类(简称CAPTCHA )的,即CAPTCHAs 是怎样鉴别人类的?这就是充分利用求解人工智能难题之艰难来挫败计算代理程序。
计算思维将渗入到我们每个人的生活之中,那时诸如算法和前提条件已成为每个人日常词汇的一部分,非确定论和垃圾收集已含有计算机学家所指的含义,而树已常常被倒过来画了。
我们已见证了计算思维在其它学科中的影响。例如,机器学习已经改变了统计学。就数据尺度和维数而言,统计学习用于各类问题的规模仅在几年前还是不可想象的。各种组织的统计部门都聘请了计算机科学家。计算机学院系正在联姻已有或开设新的统计部门。
计算机学家们近来对生物科学的兴趣是由他们坚信生物学家能够从计算思维中获益的信念驱动的。计算机科学对于生物学的贡献决不限于其能够在海量时序数据中搜索寻找模式规律的本领。最终的希望是数据结构和算法——我们的计算抽象和方法——能够以阐释其功能的方式表示蛋白质的结构。计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式。
这种思维将成为不仅仅是其他科学家,而且是其他每一个人的技能组合之部分。普在计算之于今天就是计算思维之于明天。普在计算是已变为今日之现实的昨日之梦,计算思维就是明日之现实。
它是什么,又不是什么
计算机科学是计算的学问——什么是可计算的,怎样去计算。因此,计算思维具有以下特性:
概念化,不是程序化。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计算机编程。它要求能够在抽象的多个层次上思维。
基础的,不是机械的技能。基础的技能是每一个人为了在现代社会中发挥职能所必须掌握的。生搬硬套之机械的技能意味着机械的重复。具有讽刺意味的是,只有当计算机科学解决了人工智能的宏伟挑战——使计算机像人类一样思考之后,思维才会变成机械的生搬硬套。
人的,不是计算机的思维。计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样地思考。计算机枯燥且沉闷;人类聪颖且富有想象力。我们人类赋予计算机以激情。配置了计算设备,我们就能用自己的智慧去解决那些计算时代之前不敢尝试的问题,就能建造那些其功能仅仅受制于我们想象力的系统。
数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,因为像所有的科学一样,它的形式化解析基础筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统。基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够超越物理世界去打造各种系统。
是思想,不是人造品。不只是我们生产的软件硬件人造品将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动之计算性的概念;而且,
面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实。
许多人将计算机科学等同于计算机编程。有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围。许多人认为计算机科学的基础研究已经完成,剩下的只是工程部分而已。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。我们特别需要走进大学之前的听众,包括老师、父母、学生,向他们传送两个主要信息:
1)智力上极有挑战性并且引人入胜的科学问题依旧亟待理解和解决。这些问题的范围和解决方案的范围之唯一局限就是我们自己的好奇心和创造力;同时一个人可以主修计算机科学并且干什么都行。一个人可以主修英语或者数学,接着从事各种各样的职业。计算机科学也一样。一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。
2)计算机科学的教授应当为大学新生开一门称为“怎么像计算机科学家一样思维”的课,面向非专业的,而不仅仅是计算机科学专业的学生。我们应当使大学之前的学生接触计算的方
法和模型。我们应当设法激发公众对于计算机领域中的科学探索之兴趣,而不是悲叹对其兴趣的衰落或者哀泣其研究经费的下降。所以,我们应当传播计算机科学的快乐、崇高和力量,致力于计算思维的常识化。
[翻译] 王飞跃 徐韵文
[作者] 周以真(Jeannette M. Wing),曾任CMU 计算机科学系主任,现任NSF 计算机和信息科学与工程部(CISE )主任。于1983年在MIT 获得计算机科学博士学位。主要研究方向为并行分布式系统的规范和认证以及编程语言。
计算思维(Jeannette M. Wing (周以真) )
Jeannette M. Wing (周以真)
(翻译:徐韵文,王飞跃, 校对:王飞跃)
它代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用。
计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。计算方法和模型给了我们勇气去处理那些原本无法由任何个人独自完成的问题求解和系统设计。计算思维直面机器智能的不解之谜:什么人类能比计算机做得更好?什么计算机能比人类做得更好?最基本的是它涉及这样的问题:什么是可计算的?今天,我们对这些问题的答案仍是一知半解。
计算思维是每个人的基本技能,不仅仅属于计算机科学家。在阅读、写作和算术(英文简称3R )之外,我们应当将计算思维加到每个孩子的解析能力之中。正如印刷出版促进了3R 的传播,计算和计算机也以类似的正反馈促进了计算思维的传播。
计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维涵盖了反映计算机科学之广泛性的一系列思维活动。
当求解一个特定的问题时,我们会问:解决这个问题有多困难?怎样才是最佳的解决之道? 计算机科学根据坚实的理论基础来准确地回答这些问题。表明问题的困难程度是为了考量机器——就是用来运行其解的计算工具之基本能力。我们必须考虑机器的指令系统、它的资源约束和它的操作环境。
为了有效地求解一个问题,我们可能要进一步问:一个近似解是否就足够了,是否可以利用一下随机化,以及是否允许误正或误负。计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。
计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由推广量纲分析进行的类型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又
了解其害处。对于间接寻址和程序调用的做法,它既知道其威力又了解其代价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。
计算思维采用了抽象和分解来迎战浩大复杂的任务或者设计巨大复杂的系统。它是关注的分离。它是选择合适的方式去陈述一个问题,或者是选择合适的方式对一个问题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为。它是我们在不必理解每一个细节的情况下就能够安全地使用、调整和影响一个大型复杂系统的信心。它就是为预期的多个用户而进行的模块化,它就是为预期的未来应用而进行的预置和缓存。
计算思维是通过冗余、堵错、纠错的方式,在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结,叫合同为界面。它就是学习在谐调同步相互会合时如何避免竞争的情形。
计算思维是利用启发式推理来寻求解答。它就是在不确定情况下的规划、学习和调度。它就是搜索、搜索、再搜索,最后得到的是一系列的网页,一个赢得游戏的策略,或者一个反例。计算思维是利用海量的数据来加快计算。它就是在时间和空间之间,在处理能力和存储容量之间的权衡。
考虑这些日常中的事例:当你女儿早晨去学校时,她把当天需要的东西放进背包;这就是预置和缓存。当你儿子弄丢他的手套时,你建议他沿走过的路回寻;这就是回推。在什么时候你停止租用滑雪板而为自己买一对呢?这就是在线算法。在超市付账时你应当去排哪个队呢?这就是多服务器系统的性能模型。为什么停电时你的电话仍然可用?这就是失败的无关性和设计的冗余性。完全自动的大众图灵测试是如何区分计算机和人类(简称CAPTCHA )的,即CAPTCHAs 是怎样鉴别人类的?这就是充分利用求解人工智能难题之艰难来挫败计算代理程序。
计算思维将渗入到我们每个人的生活之中,那时诸如算法和前提条件已成为每个人日常词汇的一部分,非确定论和垃圾收集已含有计算机学家所指的含义,而树已常常被倒过来画了。
我们已见证了计算思维在其它学科中的影响。例如,机器学习已经改变了统计学。就数据尺度和维数而言,统计学习用于各类问题的规模仅在几年前还是不可想象的。各种组织的统计部门都聘请了计算机科学家。计算机学院系正在联姻已有或开设新的统计部门。
计算机学家们近来对生物科学的兴趣是由他们坚信生物学家能够从计算思维中获益的信念驱动的。计算机科学对于生物学的贡献决不限于其能够在海量时序数据中搜索寻找模式规律的本领。最终的希望是数据结构和算法——我们的计算抽象和方法——能够以阐释其功能的方式表示蛋白质的结构。计算生物学正在改变着生物学家的思考方式。类似地,计算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式。
这种思维将成为不仅仅是其他科学家,而且是其他每一个人的技能组合之部分。普在计算之于今天就是计算思维之于明天。普在计算是已变为今日之现实的昨日之梦,计算思维就是明日之现实。
它是什么,又不是什么
计算机科学是计算的学问——什么是可计算的,怎样去计算。因此,计算思维具有以下特性:
概念化,不是程序化。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计算机编程。它要求能够在抽象的多个层次上思维。
基础的,不是机械的技能。基础的技能是每一个人为了在现代社会中发挥职能所必须掌握的。生搬硬套之机械的技能意味着机械的重复。具有讽刺意味的是,只有当计算机科学解决了人工智能的宏伟挑战——使计算机像人类一样思考之后,思维才会变成机械的生搬硬套。
人的,不是计算机的思维。计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样地思考。计算机枯燥且沉闷;人类聪颖且富有想象力。我们人类赋予计算机以激情。配置了计算设备,我们就能用自己的智慧去解决那些计算时代之前不敢尝试的问题,就能建造那些其功能仅仅受制于我们想象力的系统。
数学和工程思维的互补与融合。计算机科学在本质上源自数学思维,因为像所有的科学一样,它的形式化解析基础筑于数学之上。计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统。基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够超越物理世界去打造各种系统。
是思想,不是人造品。不只是我们生产的软件硬件人造品将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动之计算性的概念;而且,
面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再是一种显式之哲学的时候,它就将成为现实。
许多人将计算机科学等同于计算机编程。有些家长为他们主修计算机科学的孩子看到的只是一个狭窄的就业范围。许多人认为计算机科学的基础研究已经完成,剩下的只是工程部分而已。当我们行动起来去改变这一领域的社会形象时,计算思维就是一个引导着计算机教育家、研究者和实践者的宏大愿景。我们特别需要走进大学之前的听众,包括老师、父母、学生,向他们传送两个主要信息:
智力上极有挑战性并且引人入胜的科学问题依旧亟待理解和解决。这些问题的范围和解决方案的范围之唯一局限就是我们自己的好奇心和创造力;同时
一个人可以主修计算机科学并且干什么都行。一个人可以主修英语或者数学,接着从事各种各样的职业。计算机科学也一样。一个人可以主修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。
计算机科学的教授应当为大学新生开一门称为“怎么像计算机科学家一样思维”的课,面向非专业的,而不仅仅是计算机科学专业的学生。我们应当使大学之前的学生接触计算的方法和模型。我们应当设法激发公众对于计算机领域中的科学探索之兴趣,而不是悲叹对其兴趣的衰落或者哀泣其研究经费的下降。所以,我们应当传播计算机科学的快乐、崇高和力量,致
力于计算思维的常识化。
本文发表于2007年第3卷第11期的中国计算机学会通讯。