计算思维的表述体系 (2)抽象(Abstraction)是计算的“精神”工具周以真认为,计算思维的本质是抽象化至少在两个方面,计算学科中的抽象往往比数学和物理学更加丰富和复杂第一,计算学科中的抽象并不一定具有整洁、优美或轻松的可定义的数学抽象的代数性质,如物理世界中的实数或集合例如,两个元素堆栈就不能像物理世界中的两个整数那样进行相加,算法也是如此,不能将两个串行执行的算法“交织在一起”实现并行算法第二,计算学科中的抽象最终需要在物理世界的限制下进行工作,因此,必须考虑各种的边缘情况和可能的失败情况抽象包含的核心概念有:概念模型与形式模型、抽象层次;约简、嵌入、转化、分解、数据结构(如队列、栈、表和图等)、虚拟机等 (3)自动化(Automation)是计算在物理系统自身运作过程中的表现形式(镜像)什么能被(有效地)自动化是计算学科的根本问题这里的“什么”通常是指人工任务,尤其是认知任务,可以用计算来执行的任务我们能够使用计算机来下棋吗?能够解决数学问题吗?给出关键字能够在因特网上搜索到我们头脑中想要的东西吗?能够实时地将汉语和英语互译吗?能够指引我们开车穿过偏僻地形的地区吗?能够准确地标记图像吗?能够看到我们眼睛看到的东西吗?在周以真的论文中,她认为,计算是抽象的自动化。
自动化意味着需要某种计算机来解释抽象这种计算机是一个具有处理、存贮和通信能力的设备计算机可以被认为是一台机器,也可以是一个人,还可以是人类和机器的组合自动化包含的核心概念有:算法到物理计算系统的映射,人的认识到人工智能算法的映射;形式化(定义、定理和证明)、程序、算法、迭代、递归、搜索、推理;强人工智能、弱人工智能等 (4)设计(Design)是利用学科中的抽象、模块化、聚合和分解等方法对一个系统、程序或者对象等进行组织在软件开发中,设计这个词意味着两件事:体系结构和处理过程一个系统的体系结构可以划分为组件以及组件之间的交互活动和它们的布局处理过程意味着根据一系列步骤来构件一个体系结构好的设计有正确性、速度、容错性、适应性等4个标准正确性意味着软件能符合精确的规格软件的正确性是一项挑战,因为对一个复杂系统来说精确的规格是很难达到的,而证明本身就是一个棘手的问题速度意味着我们能够预测系统在我们所期望的时间内完成任务容错性意味着尽管有一些小错误但软件和它的主系统仍然能够正确地运行适应性意味着一个系统的动态行为符合其环境的使用设计包含的核心概念有:一致性和完备性、重用、安全性、折中与结论;模块化、信息隐藏、类、结构、聚合等。
(5)通信(Communication)是指信息从一个过程或者对象传输到另一个过程或者对象通信包含的核心概念有:信息及其表示、香农定理、信息压缩、信息加密、校验与纠错、编码与解码等 (6)协作(Coordination)是为确保多方参与的计算过程(如多人会话)最终能够得到确切的结论而对整个过程中各步骤序列先后顺序进行的时序控制协作包含的核心概念有:同步、并发、死锁、仲裁;事件以及处理、流和共享依赖,协同策略与机制;网络协议、人机交互、群体智能 (7)记忆(Recollection)是指通过实现有效搜索数据的方法或者执行其他操作对数据进行编码和组织计算思维表述体系中的记忆是人们讨论大数据背后的原理之所在,没有“记忆”这个伟大原理,大数据就是空谈记忆包含的核心概念有:绑定;存储体系、动态绑定(names、Handles、addresses、locations)、命名(层次、树状)、检索(名字和内容检索、倒排索引);局部性与缓存、trashing抖动、数据挖掘、推荐系统等 (8)评估(Evaluation)是对数据进行统计分析、数值分析或者实验分析评估包含的核心概念有:可视化建模与仿真、数据分析、统计、计算实验;模型方法、模拟方法、benchmark;预测与评价、服务网络模型;负载、吞吐率、反应时间、瓶颈、容量规划等。
四、计算思维的作用 计算思维表述体系的建立,有助于计算领域以外的人了解和运用计算思维,伴随经典实例的计算概念讲授,可以让计算领域以外的人了解计算的美丽与愉悦,拓展计算思维的应用范围虽说计算作为一门学科存在的时间不长,但人们已经认识到计算在科学界的影响力1982年,诺贝尔物理学奖得主Ken Wilson在他的获奖演讲中就提到计算在他的工作中扮演的重要角色2013年的诺贝尔物理学奖、生理学或医学奖都与“计算”有关,化学奖的主要成果“复杂化学系统多尺度模型的创立”,这更是一个典型的用计算思维的方式——结构和算法的过程得到科学新发现的实例 在分子生物学领域取得的研究进展中,计算和计算思维已经成为其核心内容如今在研究许多复杂的物理过程(如群鸟行为)时,最佳方式也是将其理解为一个计算过程,然后运用算法和复杂的计算工具对其进行分析从计算金融学到电子贸易,计算思维已经渗透到整个经济学领域随着越来越多的档案文件归入各种数据库中,计算思维正在改变社会科学的研究方式甚至音乐家和其他艺术家也纷纷将计算视为提升创造力和生产力的有效途径 总的来说,计算思维为人们提供了理解自然、社会以及其他现象的一个新视角,给出了解决问题的一种新途径,强调了创造知识而非使用信息,提高了人们的创造和创新能力。
1.理解自然、社会等现象的新视角 在许多不同的科学领域,无论是自然科学还是社会科学,底层的基本过程都是可计算的,可以从计算思维的新视角进行分析其中,“人类基因组计划”就是一个典型案例 用数字编码技术来解析DNA串结构的研究是计算思维的一个经典实例,其为分子生物学带来了一场革命将有机化学的复杂结构抽象成4个字符组合而成的序列后,研究人员就可以将DNA看作一长串信息编码DNA串结构实际就是控制有机体发育过程的指令集,而编码是这一指令集的数据结构,基因突变就类似于随机计算,细胞发育和细胞间的相互作用可视为协同通信的一种形式沿着这一思路,研究人员已经在分子生物学领域取得了长足的进展,最具代表性成绩就是“人类基因组计划”中包括的人体内全部DNA解码、基因测序并绘制人类基因图谱、开发基因信息分析工具等一系列任务的圆满完成 2.解决问题的新方法 折纸又称“工艺折纸”,是一种以纸张折成各种不同形状的艺术活动折纸发源于中国,在日本得到了很大的发展,历经若干世纪,现在的日本折纸已成为一项集艺术审美、数学和计算机科学于一身的新艺术,而且还催生了名为“计算折纸”的新领域该领域通过与折纸算法有关的理论来解答折纸过程中遇到的问题。
如在折出某个物品之前事先将这一物品的外形抽象成一张图,这就用到了图论一旦将某个物体抽象为图的形式就可以得到描述整个折叠顺序的算法,这就意味着该物品对应的折纸过程完全可以实现自动化,运用计算思维的这种抽象和自动化方法还可以做出更多更为复杂的折纸折纸艺术家可以在完成折纸工序自动化的过程中,从折纸创新的角度向人们更为具体地介绍折纸的基本概念在美国德保罗大学基于计算思维的教学改革中,已成功地将这种解决问题的新方法及其案例融入课程,特别是人文类课程的教学中[9] 3.创造知识 采用计算思维还可以创造大量的新知识,比如,亚马逊公司“网上购物推荐系统”创造的新知识亚马逊公司成立时间并不长,但通过客户浏览网站的痕迹和购物的历史记录,该公司已经积累了大量的客户信息传统的统计方法成为亚马逊公司手中的有力杠杆,借力这些信息,公司得以及时跟踪客户的喜好和兴趣以及公司的库存产品但是这些累积信息中可能包含一些无法基于视觉或者手动检测的数据模式,而知识的创造过程就是发现并且明确地表述出那些藏而不露但意义深远的数据模式亚马逊公司利用各种方法对这些数据进行深入挖掘并用于各项决策中,比如给某位顾客推荐某些书亚马逊的推荐系统正是建立在这些客户留下的数据信息的基础上,比如该客户的历史购物记录以及购买了同一件商品的其他客户的购物记录。
就是这些规则构成了亚马逊的推荐系统,而它正是该公司商业模式的核心部分,也是Netflix prize算法竞赛中列举的商务系统的核心 4.提高创造力和创新力 计算思维可以极大地提高人们的创造力比如在音乐制作领域,依靠计算机的软硬件可以产生大量的合成声音,创作音乐从最简单到最复杂的任何声音都可以通过计算机的软件来合成基于声音物理特性的理解以及对这种特性在计算机中存储的认识,人们可以采用计算思维了解声音的合成过程与音乐的制作过程通过音乐合成软件的研制,人们可以很自然地将编程和作曲思维变成一种平行关系,并采用这些软件产生大量的高质量音乐作品实际上,鉴于这个目的,人们已经开发出不少功能强大的音乐制作编程语言,如Nyquist、JFugue、Dark Wave Studio等 参考文献: [1] Jeannette M. Wing. Computational Thinking [J]. Communications of the ACM,2006,49(3). [2] National Research Council. Report of a workshop on the scope and nature of computational thinking [M]. National Academies Press,2010. [3] 教育部高等学校大学计算机课程教学指导委员会.计算思维教学改革宣言 [J]. 中国大学教学,2013(7). [4] 九校联盟(C9)计算机基础教学发展战略联合声明 [J]. 中国大学教学,2010(9). [5] 陈国良.计算思维:大学计算教育的振兴,科学工程研究的创新 [J]. 中国计算机学会通信,2012,8(1). [6] 陈国良,董荣胜.计算思维与大学计算机基础教育 [J]. 中国大学教学,2011(1). [7] 李廉.以计算思维培养为导向深化大学计算机课程改革 [J]. 中国大学教学,2013(4). [8] Pat Philips. Computational Thinking:A problem-solving tool for every classroom [EB/OL]. http:// [9] Settle,Amber and Perkovic,Ljubomir. Computational Thinking across the Curriculum:A Conceptual Framework [EB/OL]. http:// [10] Peter J. Denning. Great principles of computing [J]. Communications of the ACM,2003,46(11):15-20. -全文完-。