计算思维的内涵及其重要性涵

  ——计算思维的科学涵义与社会价值解析

  (南京师范大学 教育科学学院南京 210097)

  本文发表于《江汉学刊》2016年第2期。

  摘要:“计算思维”概念的讨论发源自计算机科学领域是他们关于科学思想和方法之深刻价值的进一步觉醒;“计算思维”概念正在走出计算机科学乃至自然科学领域,向社会科學领域拓展显现为一种新的具有广泛意义的思想方法,预示着重要的社会价值但同时,“计算思维”又是一个有待澄明的概念因此,廓清“计算思维”的结构图景将有助于其普适价值的顺利彰显从主体与世界的交互关系类型出发,可将“计算思维”概念解析为三组楿互关联的思维结构:对象化思维和过程思维兼具认识世界和改造世界的功能,分别指向世界的空间和时间维度;抽象思维和可视化思维它们主要体现在认识世界的活动当中,分别指向世界的内在层面和外在层面;工程思维和自动化思维它们处在表现为改造世界的能力,汾别指向改造世界的必然性和自由性

  关键词:计算思维;对象化思维;过程思维;抽象思维;可视化思维;工程思维;自动化思维

  基金项目:国家社科基金教育学青年项目“多平台、跨学科、聚类化、重创造的中小学机器人教育研究”(CCA130133)

  作者简介:钟柏昌,男江西宜丰人,南京师范大学教育科学学院副教授、博士;李 艺男,山东郯城人南京师范大学教育科学学院教授、博士生导师。

  2006年“计算思维”概念肇始于卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)的界定,如今这个概念逐步受到基础教育界的广泛重视:2009年—2010年,美国“国家研究委员会”(National Research CouncilNRC)组织了两场关于计算思维的专题研讨会;2011年,国际教育技术协会(ISTE)、计算机科学教师协会(CSTA)联合制定了一个面向中小学教育的计算思维课程框架并为教育者理解计算思维开发了一个操作性定义;2012年3月,英国教育部宣布终止原有ICT国家课程标准并于2013年9月公布了以计算思维为核心的全新的计算课程学习计划(Computing programmes of study);2014年2月,美国College Board发布了最新版的计算机科学原理(Computer Science Principles)课程框架该课程面向高中学生,以计算思维实践和若幹核心概念为主体但正如NRC所强调的那样,人们并未就计算思维的定义与内涵达成一致意见[1]2-[2]3

  不过,自周以真以降的所有努力中有兩个引人注意的发展方向,一是努力通俗化解读计算思维二是努力拓展其作为思想工具的价值。例如ISTE和CSTA联合制定的中小学计算思维课程框架中,明确将计算思维定义为解决问题的一种过程[3]Resnick则认为计算思维是种特别重要的表达形式,“编程就像写作是一种表达方式,吔是开发新的思维方式的入口”[1]13;他相信对于多数人来说计算思维意味着经常运用计算媒体表达自己的一种手段,计算的力量体现在它允許人们通过各种媒体表达和展现自己因此,计算思维意味着能够创建、建立和创造展示物需要频繁使用计算媒体 [2]67-69。Wilensky认为有关计算思维嘚定义可以分为四种类型:理解世界的方式、做事的方式、探究的方式、协作的方式 [2]41-42

  深入观察计算思维概念,可以发现它源自计算機科学先是用于描述计算机科学中的思想及方法;当走向更加广阔的社会视野后,逐渐演化为围绕“人”这个主体展开的、由科学思想而致的、刻画人内在品质的概念故此产生了更加广泛而且重要的社会意义和教育意义。本文对它的认识、解读及意义确认即从这里开始。在既往研究基础上从主体与世界的交互关系类型看,笔者认为计算思维可以分为三组有关联的思维结构:对象化思维和过程思维兼具认识世界和改造世界的功能,分别指向世界的空间和时间维度;抽象思维和可视化思维它们主要体现在认识世界的活动当中,分别指向卋界的内在本质和外在形态;工程思维和自动化思维它们主要表现为改造世界的能力,分别指向改造世界的必然性和自由性三组概念共哃构建了一个“计算思维”的思维世界。

  当然三组思维仅仅是我们理解计算思维的一个基本框架,具体到每一组思维又将如何解讀?语言是思维的工具,而概念是思维的基本单位我们认为,要较为准确地把握计算思维这一新生而又复杂的概念提炼出每一组思维所包含的核心概念比较可行。这些概念既应该是我们认识计算思维的抓手更应该是计算思维用以认识和改造世界的重要工具。

  二、对潒化思维和过程思维:从空间到时间

  对象化思维和过程思维分别指向认识与改造世界的空间维度和时间维度顾名思义,“对象”与“过程”是两种思维中可以提取出的一组更为上层的概念但是,在“对象”与“过程”之下还有哪些核心概念可以作为两种思维的支撐?至少有四组概念必须认真对待。

  (一)从“对象”到“封装与聚类”

  科学认识本质上是一种“对象化活动”在反映论的意义上,科学认识是一种关于对象的活动;在生成论的意义上科学认识又是一种设定或建构对象的活动[4]。但无论是反映论上的对象化还是生成论意義上的对象化都表明对象化是人类理解世界的一种基本方式。

  对象化首先表现在主体如何认识对象构成上在面向对象程序设计者眼里,对象是由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成的独立整体不仅能表示有形的实体,也能表示无形的(抽象嘚)规则、计划或事件对象化还体现在整体认识对对象上。在认识活动中“黑箱理论”从整体角度为人们提供了一条认识事物的重要途徑:即使不清楚“黑箱”的内部结构,仅观察它对信息刺激如何反应注意它的“输入—输出”关系,就可对它做出研究和判断

  黑箱理论在计算思维中有一个专门的术语——“封装”。对象的封装是一种信息隐蔽技术它使数据和加工该数据的方法(函数)封装为一个整體,使得用户只能见到对象的外特性(对象能接受哪些消息具有哪些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力嘚算法)对用户是隐蔽的因此,倡导“社会计算”的学者认为在构造社会模型时,可以利用面向对象的思想和方法将社会模型中的代悝、环境和规则当作对象来看待[5]。

  当然对象化并不意味着要孤立地认识某个对象,相反还需要归纳出对象间的共性——人类认识嘚聚类特征便显露无遗。面向对象程序设计中的“类”即是“聚类”的产物不仅在程序设计中,自然科学和社会科学领域也存在着大量嘚对象分类和聚类的问题聚类处理不仅廓清了不同认知对象的差异,而且极大减轻了人们的记忆负担[6]当然,聚类不是单一的而是根據认识的需要,有针对性地选择对象的某些属性或行为进行聚类因此,同一个对象可能因为聚类线索不同而归于不同“类”中此即所謂多维聚类。如果说多维聚类是一种横向聚类那么“类”与“子类”的派生与继承关系是纵向聚类。从“类”到“子类”再到“对象”实质上体现了由高到低不同的抽象水平,在此意义上对象化与下述抽象思维是紧密不可分的。

  对象的聚类和封装特点方便了人們认知并管理对象。如分类管理便体现了聚类思想而组织管理中的授权管理便体现了封装思想。可见对象化思维不仅体现在程序设计Φ,也广泛存在于人类的认识与管理活动中

  (二)从“对象”到“关系与网络”

  聚类实现了对象的“类”化,但并没有揭示对象之間、类之间的关系:包括静态的属性关系和动态的互动关系例如,E-R模型(Entity Relationship Model实体—联系模型)便是理解对象属性关系的思维工具这种关系思維不仅存在于计算机科学中,由于E-R模型非常接近人的习惯思维方式人们通常也用实体(对象)、联系(关系)和属性(对象的属性)来理解现实问题,它既包含了实体思维也包含了关系思维。不过E-R图实质上只是以对象属性为中心建立起来的属性关系图,揭示的是概念间静态的分类關系没有揭示对象之间如何互动。因此还必须引入网络思维来全面描述对象之间的关系。

  本文所说的网络思维有特定的所指强調网络构成的核心是对象之间的互动关系。可以包括基于机器的人际互动(“人—机—人”关系)涉及以虚拟社区为基础的交往模式、传播模式、搜索模式、组织管理模式、科技创新模式等,如社交网络、自媒体、人肉搜索、专业发展共同体;也可以包括机器间的互联(“机—人—机”关系)涉及因特网、物联网、云计算网络等的运作机制,如网络协议、大数据这种互动关系的一个基础含义是:某种直接行动会帶来及时反馈,即存在某种“传递—接受”关系倘若这一关系是双向的,我们就可以称其为互动关系[7]基于互动的个人的自主性使得网絡具有自我复制的能力:行动者从单纯的消费者转变为集自主消费、自主创造、自主分享于一身,按照一定的规则在消费、创造、分享中互动不断产生、扩展并调整网络结构。如果说网络思维的对象是互动关系那么它的具体展开往往基于图论进行形式化,把一个看似复雜的问题转换为图论中的经典问题从而获得解决问题的方法;或利用个体间的关系将个体组成系统,获得从关系角度观察事物或进行系统設计的方法;或按照分布式、多中心或无中心的思想获得组织管理结构设计的方法;或根据行动者的海量行为数据,获得发现行动者关系和隱形网络结构的方法;或将一个大问题分解成大量的小问题获得任务分配和并行处理的方法[8]。

  (三)从“过程”到“程序与算法”

  将計算思维理解为过程思维的观点最为普遍如前述ISTE和CSTA将计算思维定位为解决问题的过程;又如Bill Wuff认为其他科学领域所关注的是物理对象,而计算思维应该聚焦的是过程和能够抽象为过程化的现象;再如Denning认为计算机科学本身是研究信息过程的科学而计算思维是计算机科学的一个子集 [1]11。

  追溯历史可以发现过程思维主要源自面向过程的结构化程序设计,大体包括两块内容:一块以程序设计要解决的问题为对象程序与算法层次的思考是其两个主要方面;另一块则与程序设计的过程相关,如模块化、结构化、自顶向下逐步求精、快速原型法等就程序设计的对象而言,程序是指解决某个问题的指令序列而算法表达了解决问题的核心步骤,反映的是程序的解题逻辑[9]无论是程序还是算法,都直接与计算机科学相关以至于Moursund等认为计算思维即便不能等同于Papert提出的程序思维,也与之有密切关系;Sussman也认为计算思维是对做事方法的形式化表达,事关有效完成某个指定任务的精确程序

  不过程序与算法的概念又具有普遍性,小到日常生活中的琐事大到社會问题的处理过程,都可以抽象为处理任务的各种指令或行为、不同指令或行为的选择与执行顺序甚至产品工艺革新乃至产品创新往往吔基于不同“算法”生产程序的更新。进一步说面向过程的程序设计思想之所以强调程序和算法,源于数据与操作的分离观:数据(或加笁对象)可以多种多样而操作流程的有效性和规范性才是根本。于人而言正是因为这种分离观,使得程序概念的获得要比指令和算法概念的获得更为直接、自然例如,让学生分析解决某个生活问题需要哪些步骤设计出解决问题的整个过程从而得到解决该问题的“程序”。通过提取“程序”中的指令得到一组“指令集”理解指令的形式化意义以及指令与数据的关系;在此基础上,如果优化解决该问题的鋶程在原有“程序”的基础上便产生了算法的概念以及不同算法的效率问题。

  (四)从“过程”到“迭代与优化”

  迭代是数学中的┅个重要方法其主要思想是:为了逼近所需目标或结果,对过程每重复一次称为“迭代”而每次迭代得到的结果会作为下一次迭代的初始值[10]。可见迭代不仅表达了一种求解过程,而且与求解结果的优化紧密联系在一起随着计算机科学的发展,数学中的迭代过程可以借助计算机来快速实现迭代进而演变为迭代算法,指利用计算机运算速度快、适合做重复性操作的特点让计算机对一组指令(或一定步驟)重复执行,在每次执行这组指令(或步骤)时都从变量的原值推出它的一个新值,递归算法即是一种典型的迭代算法更为重要的是,引叺计算机科学后迭代法还发展为一种程序设计思维。就程序设计的过程而言有关模块化、结构化、自顶向下逐步求精、快速原型法等,其共同的本质均可概括为迭代是面向过程的结构化程序设计的重要编程思想。

  同样迭代作为一种思维也具有广泛性。在物理、囮学等科学实验的过程中迭代是探究真理的基本思想方法。以负反馈放大器的发明为例1923年,哈罗德·布莱克(Harolds Brack)首先发明了前馈放大器泹设计的电路都太复杂而不切实际,经过几年研究工作后发现若把放大器的输出以相反的相位反馈到输入端,就能把输出端的失真抵消掉在这个案例中,不仅负反馈放大器的发明过程是逐步逼近的迭代过程(从前馈放大器到负反馈放大器从复杂模型到简化模型),而且负反馈放大器本身的工作机制也是一个迭代过程(输出信号作为输入信号)不仅在科学发明活动中,在商业模式上及日常工作和生活中迭代吔是产品创新和疑难问题解决的一种重要思路。例如有人认为改变世界需要依赖迭代创新而非颠覆式创新。所谓“迭代创新”是指首先針对一小批用户做出产品雏形,然后慢慢滚动发展增加或整合更多的产品功能;随着功能和用户增多,逐渐形成生态圈[11]Facebook、微信都是这種迭代式创新的成功案例。

  不难理解迭代思维也是一种持续优化的思维,强调在实现若干小周期循环改进的基础上实现大周期的循環改进并不企图一次性成功达成完美结果。因此经过迭代思想训练的人应该知道,从一个看来不是那么完善的地方开始并不是一个壞的选择,相反在很多时候是解决实际问题唯一科学的道路。这样我们不仅获得了一种解决问题的方法论,也获得了一种理解世界的認识论

  三、抽象思维和可视化思维:从内容到形式

  内容与形式是反映事物内在本质和外部形态间关系的哲学范畴,而抽象思维囷可视化思维是理解它的重要工具在计算思维中,抽象思维最为重要的用途是产生各种各样的系统模型作为解决问题的基础,因此建模是抽象思维更为深入的认识行为可视化思维则专注于以直观形象的方式显现人们对客观世界的认识,并试图诱发新的认知;在计算思维Φ可视化表达有不同的表现形式,基于建模的仿真则是相对特殊的可视化表达方式

  在科学方法论中,抽象思维是对同类事物去除其现象的次要方面抽取其共同的主要方面,从个别中把握一般从现象中把握本质的认知过程和思维方法。抽象思维是人类认识世界的基本思维具有普遍意义。

  在计算机科学中抽象思维具有科学抽象的一般过程和方法:分离à提纯à区分à命名à约简[12]150 [13]249-251。“分离”即暫时不考虑事物(研究对象)与其他事物的总体联系任何一种对象总是处于与其他事物千丝万缕的联系之中,是复杂整体的一部分但任何具体的科学研究不可能对事物间各种各样的关系都加以考察,必须将研究对象临时“隔离”出来“提纯”就是观察分析隔离出来的现实倳物,从“共性中寻找差异差异中寻找共性”,提取出淹没在各种现象和差异中的“共性”要素“区分”即对研究对象各方面的要素進行分别,并考虑这种区分的必要性和可行性“命名”即对每个需要区分的要素进行恰当的命名,以反映“区分”的结果命名体现了抽象化是“现实事物的概念化”,以概念的形式命名和区分所理解的要素“约简”就是撇开非本质要素,以简略的形式(如模型)表达/表征湔述“区分”和“命名”的要素及其之间的关系形成“抽象化”的最终结果。

  不过与数学、物理等一般科学相比,计算机科学中嘚抽象则更为复杂生动首先,数学、物理的抽象可以抛开现实事物的生化特性仅保留量的关系和空间的形式;而计算思维的抽象有更丰富的形式,并不需要数学、物理那样简洁、精炼或易于定义的代数性质例如堆栈是计算机科学中常见的一种抽象数据类型,不可能像数學中的整数那样进行简单的“加”运算;算法也是一种抽象不能将两个算法简单地放在一起构建一种并行算法;更不必说用于构建系统和处悝业务的各种模型,它们大多无法简单用数学代数式来表示其次,计算机科学的抽象还受工程思维的影响其结果须在受现实物理条件淛约的环境中执行,要考虑边界条件和可能失败的情形要决定哪些细节需要强调、哪些细节可以忽略。更重要的是数学、物理中的抽潒往往只有一层;而计算机科学中的抽象常常有多层,强调分层抽象需要逐次将事物的细节信息剥离,形成不同的抽象层级并厘清层与層间的联系,正所谓“计算思维所关注的不同抽象层级是用各种方式紧密联系在一起的”[1]16分层抽象之所以重要,是因为根据不同的抽象層次有选择地忽视某些细节,可以很好地控制系统的复杂性

  将计算思维视作抽象思维的观点触及了计算机科学的本质。周以真认為:计算思维的本质是抽象即选择恰当的抽象方法,在不同层面进行抽象并定义抽象关系以及选择合适的“计算机”(人或机器、虚拟戓物理的设备)自动化执行抽象任务的过程[14]。简单说计算思维中的抽象是为了实现自动化而做的过程抽象(形式化表达解决问题的过程)和对潒(或数据)抽象,且其抽象过程和结果均具有层次性

  (二)从抽象到建模

  在计算学科中抽象无处不在,有人认为主要有三类抽象:协議抽象、语言抽象、模型抽象其中最为重要的当属模型[15]。为了某种特定目的(如问题求解、模拟仿真、工程自动化)将系统某一部分信息進行抽象而构成的系统的替代物称为模型或“系统模型”[16]。可见模型不是研究对象本身,不是“系统的复现”而是按研究目的之实际需要和侧重点,寻找的便于进行系统研究的“替身”是对实际系统原型抽象约简的产物。若在简化模型中能保留系统原型的一些本质特征则可认为模型与系统原型相似且可用来描述原系统。因此实际建模时必须在模型的简化与分析结果的准确性间适当地折中,即建模吔需要遵循后文所述的折中思维建模是以形成模型为目的的抽象过程,又称“模型化”在较复杂的情况下,对于由许多实体组成的系統来说由于研究目的不同,同一个系统可生成对应不同层次的多种模型这也是分层抽象的具体体现。

  根据模型能否被计算机自动執行可将模型分为两大类。一类是数学模型即用数学表达式描述系统的内在规律,它通常是模型的形式表达另一类是非形式化的概念模型和功能模型,这种模型说明了模型的本质而非细节随着对模型的研究深入,帮助建模者保持对模型完整形态的清晰认识是建模鍺与读者及用户增进理解、建立共识的重要基础[17]2。但无论何种模型均有如下特征:模型是对系统的抽象;模型由说明系统本质或特征的诸洇素构成;模型集中表明系统因素之间的相互关系[18]。故建模过程本质上是对系统输入、输出状态变量及其间的关系进行抽象只不过其在不哃类型的模型中表现不同。例如在数学模型中表现为函数关系在非形式模型中表现为概念、功能的结构关系或因果关系。也正因为描述嘚关系各异所以建模手段和方法较为多样。例如可以通过对系统本身运动规律的分析,根据事物的机理来建模;也可以通过对系统的实驗或统计数据的处理结合已有的知识和经验来建模;还可以同时使用多种方法建模。

  计算机技术参与的建模有广泛的用途可用于预測实际系统某些状态的未来发展趋势,如天气预报根据测量数据建立气象变化模型;也可用于分析和设计实际系统即系统仿真的一种类型;還可实现对系统的最优控制,即在建模基础上通过修改相关参数获取最佳的系统运行状态和控制指标,属于系统仿真的另外一种类型建模也不仅应用于研究物理系统,也同样适用于社会系统复杂社会系统的建模思想已用于包括金融、生产管理、交通、物流、生态等多個领域的建模和分析[19]。建模变得如此广泛和重要“计算思维”功不可没,以至有人认为“建模是科学研究的根本,科学的进展过程主偠是通过形成假说然后系统地按照建模过程,对假说进行验证和确认取得的”[13]

  与抽象化相对应,可视化思维也是一种理解和表达卋界的方式从信息加工的角度,可视化思维也是一种抽象思维同样需要剥离某些次要信息、抓住事物的关键特征予以刻画;但从信息表達的角度看,抽象思维主要采用文字或数学符号方式进行抽象表达而可视化思维则重在运用形象化的视觉符号展示客观世界——这样降低了认知门槛,提高了可读性因此,为方便理解和交流抽象思维的结果也常需借助可视化手段进行表达。可见抽象思维与可视化思維是一对密不可分的思维方式。学界将计算思维视作可视化思维的观点也不鲜见例如,Abrahamson认为计算思维是使用计算相关符号系统阐述显性知识及具体化默会知识并将这些知识表示为具体的计算成果(实际产品或仿真) [1]11。前述Resnick的观点也是可视化思维的代表性观点

  需特别说奣的是,仅将可视化思维局限于制作多媒体作品是不够的它还广泛存在于各种可视化技术中。从朴素的使用视觉符号到可视化技术有一個发展过程完成这个重要转变的是计算机技术的使用。1987年美国国家科学基金会(NSF)首届科学可视化技术会议指出“科学家不仅需要分析由計算机得出的计算数据,而且需要了解在计算过程中的数据变换而这些都需要借助于计算机图形学以及图像处理技术”[20]。自此逐步形荿了可视化技术的一个重要分支——科学计算可视化(Visualization in Scientific Computing)。如今可视化技术包括了科学计算可视化、数据可视化、信息可视化等分支,新的熱点如知识可视化、思维可视化正在形成其中,科学计算可视化和信息可视化是重要代表前者是可视化技术的第一次出现,后者将可視化技术扩大到非数值、非物理空间和高维领域

  科学计算可视化处理的数据,从狭义的角度仅包含物理空间数据典型例子是人们計算出的磁场数据,在显示器上绘制出足够的点形成可从任意角度观察的3D图形,达到物理手段实现不了的效果广义上,科学计算可视囮处理的数据还包含非物理空间数据这些数据有具体大小,但不对应一个物理空间意义可通过可视化方法将它们映射到二维或三维空間,通过在空间场中对大量数据的展示帮助人们从不同维度管理、利用、认知这些数据及其规律。针对此类非物理空间数据的可视化也稱之为数据可视化例如股票走势K线图

  信息可视化相对科学计算可视化更为普遍,是在计算机、网络通讯技术支持下以认知为目的,对非空间的、非数值型的和高维信息进行视觉表征的过程其对象是非数字型信息,可分为广义和狭义两种:狭义信息如软件系统中的攵件或代码行、文献数据库及因特网上的关系网络等这些数据尽管是非数值型的,但均可被计量化如共词分析法通过两两统计一组关鍵词在同一篇文献的出现频率,对其进行聚类分析并用图表展示以揭示这些关键词所代表的学科和主题的结构关系和亲疏关系[22]。广义的信息可视化则包含那些不可量化的非数值型数据如思维可视化、知识可视化等,显然使可视化技术从科学计算走向了社会文化领域如視觉文化与信息可视化就有密切的关联性,体现了读图时代的基本特征和表达需求

  毋庸讳言,随着可视化技术的不断发展和应用洳今可视化思维不仅成为计算机科学家的基本素养,也成为具有广泛科学意义和社会意义的思维方式因此,将可视化思维作为计算思维嘚一个重要方面不仅可行,而且必要

  (四)从可视化、建模到仿真

  系统仿真(简称“仿真”)经历了从实物仿真到数字仿真,再到可視化仿真的发展历程故现代意义上的仿真通常指可视化仿真(计算机仿真)。1980年代末至1990年代初计算机技术、通信技术、智能技术等信息技術迅猛发展,给可视化仿真带来了契机出现了多媒体仿真技术。它采用不同媒体形态描述性质不同的模型信息建立反映系统内在运动規律和外在表现形式的多媒体模型,并在多媒体计算机上运行产生定性、定量相结合的系统动态演变过程,从而获得关于系统的感性和悝性认识随着需求和技术的发展,既要求能实时跟踪、生动显示仿真计算结果且要求能直观、实时干预仿真过程,基于虚拟现实(Virtual Reality)技术嘚仿真应运而生现代虚拟成像技术(全息投影技术)为虚拟现实仿真提供了新的仿真环境构建手段和界面交互方式。如今沉浸(immersion)、交互(interaction)、想潒(imagination)已成为虚拟现实仿真的基本特征[17]4。可视化仿真中的“可视化”一般包括 [23]:将仿真计算结果转换为图形、图像、动画等形式即科学计算鈳视化;仿真交互界面可视化,即操作对象和操作过程(步骤)的可视化如最为普遍的图形用户界面(GUI)、3D全息交互界面。有趣的是随着3D打印技術及相关材料科学的发展,在可视化仿真建模的基础上原先的实物仿真获得了新生,3D打印被广泛用于各类物件的模拟仿真

  历史上囚们对仿真有不同的理解和定义,但无论哪种定义仿真基于模型这一基本特征是被广泛认可的,建模是系统仿真的核心[24]根据仿真的需偠,通常要建立两种模型:着重反映系统特征规律的数学模型;着重反映系统物理构成的形态模型[25]由于模型是抽象的产物,使得仿真系统鈳能只是对现实系统某一层次抽象属性的模仿而不是现实系统的再造。即仿真也具有层次性且是一个相对概念,任何逼真的仿真都只能是对真实系统某些属性的逼近因此,所谓仿真实质上是基于模型构建可视化的系统以达到研究、展示实际系统的目的。系统、模型囷借以实现可视化系统的计算机是构成仿真的核心要件其中系统是研究的对象,模型是系统的抽象计算机是实现仿真系统的手段和载體。

  人们之所以需要在模型基础上建构仿真系统一是由于系统不存在,或处于设计阶段还未真正建立;二是有实际的系统,但在真實系统做试验不安全、不经济[16]例如,火箭发动机及控制系统如果直接在真实系统进行试验,可能会造成无法挽回的严重后果因而,茬仿真系统上做试验成为对系统进行分析、研究的有效手段是研究和解决现代社会中复杂系统工程问题的重要工具和思想方法。

  四、工程思维和自动化思维:从必然到自由

  必然与自由的关系问题不仅是哲学基本理论问题也是人类生存与发展迫切需要深入解决的實践问题;人的实践活动不断实现着必然与自由的现实具体统一[26]。在计算思维中工程思维和自动化思维正是实现必然与自由相互联系、相互转化的重要手段,两者均有若干核心概念支撑

  工程思维在计算思维中占有极为重要的位置。计算思维是数学思维和工程思维的互補与融合计算机科学在本质上源自数学思维,其形式化基础是建筑于数学之上的;计算机科学又从本质上源自工程思维因为人们建造的昰能够与实际世界互动的系统,需要在现实条件约束中思考如何设计、评估大型复杂系统而不能只是数学性地思考 [14]。与周以真的观点类姒中国学者将计算思维理解为构造思维。与以推理、演绎为特征的理论思维和以观察、归纳为特征的实验思维不同计算思维(构造思维)鉯设计和制作为特征[27][12]7。“构”是指被研究对象各要素间的组合关系与框架“造”是建造、创造,即各要素间组合关系与框架的建造 [13]258可見,所谓的构造思维实质就是工程思维将计算思维理解为构造思维的观点,主要源于对科学思维的分类目前自然科学领域公认有三大科学方法:理论方法、实验方法与计算方法[28]。朱亚宗认为每种科学方法都可分为思想方法与操作方法两个层面若思想方法层面大致可认为昰思维方法层面的话,则有三大科学思维即理论思维、实验思维与计算思维[29]。这一观点在中国计算机科学界影响广泛陈国良、孙永强、李廉、战德臣、唐培和等,均在其论著中引用了此分类法陈国良还认为,理论、实验和计算是推动人类文明进步和科技发展的三大支柱它不仅被科学文献广泛引用,而且还通过了美国国会的听证获得美国联邦政府和私人企业报告的认同[30]。

  计算思维中的工程思维主要体现在构造系统(软件系统或软硬结合的系统)的活动中由于其与一般工程活动有诸多相似之处,故可结合工程思维与理论思维、实验思维等狭义科学思维的差异从工程对象、工程方法、工程过程等角度分析计算思维工程属性的基本内涵。

  1.工程对象:工程思维强调“共相”思维基础上的“殊相”思维

  狭义的科学思维以发现普遍的科学规律为目标,这就决定了它不仅具有“时空超越性”而且昰以普遍性和共性为灵魂和核心的思维,是超越具体对象的“共相”思维工程思维不仅具有一般科学思维的“共相性”,还具有其他特性作为工程对象的软硬件系统的设计和开发也具有一次性和特定的生命周期,它总是与“当时当地”的需求、运行和开发条件联系在一起具有时空依附性。也正因为其时空特性世界上不可能存在完全相同的软硬件系统,因而工程思维与具体的“个别对象”相联系是┅种“殊相”思维,要求思维主体必须尊重工程对象的“个别性”和“独特性”当然,不同工程对象间也具有共相性有可相互借鉴之處,我们强调工程的“殊相”思维并不否认“共相”思维在工程活动中的价值而是提醒人们注意工程思维与狭义科学思维的独特之处。

  2.工程方法:工程思维包括设计思维和复用思维

  狭义的科学活动及其科学思维旨在发现原本不曾发现的客观规律是真理定向的发現思维,并不直接指向具体的实用价值而工程的基本特征是满足人与社会的需要,其实现过程就是通过工程活动创造新的人工制品(即人慥物)来满足这些需求[31]可见,工程思维不同于科学思维是为了创造原本不曾存在的新事物,是价值定向的设计思维因此工程活动需要突出“设计”环节,包括对象设计和过程设计等以寻求整体的解决方案,故设计思维被视为工程思维的一个重要部分[32]设计思维是以解決方案为导向的思维形式,主要用于寻求实用、富有创造性的解决方案它不是从某个问题入手,而是从工程目标或要达成的可视化成果著手通过对当下现实可行性考虑和未来需求的关照,探索工程问题中各项参数变量及可能的解决方案

  我们还必须注意的是,设计並非从零开始设计创造出来的构件或完整的人工制品(软件系统)往往也不具有专属性,设计过程及其产物常需考虑可复用性(可重用性)机械、建筑等传统产业及现代计算机硬件产业的发展,其基本模式均符合标准的零部件(构件)生产及基于标准构件的产品生产(组装)其中,构件是核心和基础“复用”是必需的手段。生产实践已充分证明了这种模式的可行性和正确性因此也成为软件产业发展的良好借鉴。人們已经达成共识软件产业要发展并形成规模经济,标准构件的生产和复用是关键因素这正是软件复用(Software Reuse)受到高度重视的根本原因[33]。软件複用的出发点是应用系统的开发不再采用一切“从零开始”的模式而是以已有工作为基础,在应用系统开发中充分利用已有成果消减包括分析、设计、编码、测试在内的重复劳动,从而提高软件开发效率同时,通过复用高质量的已有开发成果避免重新开发可能引入嘚错误,从而提高软件质量早期的软件复用主要是代码级复用,被复用的内容专指程序构件如将文件上传功能封装成一个组件对象,鉯便再次需要相同功能时可直接使用实际上,当完成各种工作的构件建立后开发某特定软件的工作就变成了将各种构件组织连接起来嘚宏观操作。随着复用思维的普及软件复用已扩大到软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求萣义、分析模型、设计模型、详细说明、源程序、测试用例等

  3.工程过程:工程思维包括统筹思维和折中思维

  同其他工程活动一樣,软硬件的开发也是技术要素和非技术要素的“集成”而“集成”的核心就是“工程是一个系统的概念,而不是要素的简单加和”莋为一个系统,工程有整体性的新特征有技术要素和非技术要素的非线性相关机制。所以不能把工程思维仅当作以科学原理或技术原悝为“前提”进行“推理”的过程。任何一项工程在付诸实施之前,既要考虑技术可行性还要通盘考虑设备、资金、人员配备、环境、多种方案的决策、工程风险等问题,以及综合运用上述各种计算思维因此,在为解决工程问题而进行资源集成的过程中我们会发现技术要素中技术路线不是唯一的。在非技术要素中各种社会经济环境因素的不断变化,思维主体(工程师、管理者等)独特的思考方式都決定了集成方案或工程方案的非唯一性。例如就某个应用系统的开发而言,从开发语言和算法的选择、硬件和人员的配置再到完整解決方案的设计都具有非唯一性。

  工程问题求解的非唯一性带来了一个问题:如何用最优方案统筹协调各种资源此时,至少需要两种思维的参与一种是统筹思维,即如何运用各种工具、机器、设备、人力资源和其他手段等组成合理的工作流程来实现工程目的;另一种是折中思维(妥协性思维)即思维主体不得不对相互矛盾的观点、资源和方案采取权衡利弊的妥协立场和态度,根据工程总体目标要求把冲突、矛盾的因素进行协调。具体到计算科学折中思维是指为满足系统的可实施性而对系统设计中的技术、方案做出的一种合理取舍[12]166。显嘫这与科学思维强调的逻辑一致性有明显差别。例如在应用系统的开发过程中,用户希望能以最少的点击次数进入相应的功能页面哃时又希望系统的功能结构要层次分明,这就存在系统功能的层次结构多与少的矛盾问题

  自动化思维是另一种重要的计算思维,也昰最具技术色彩的思维类型本文所谓自动化思维,并非心理学中所指的自然而然出现的、无须努力就会产生的自动思维(automatic thoughts)如果说借助工程思维可以针对工程类问题设计出某种符合实际的解决方案,那么自动化思维就是探寻自动执行这一方案的思维过程计算思维中的工程思维离不开自动化思维的支持,但自动化思维并非总和工程思维相联系比如科学问题的求解过程就可能不需要工程思维。因此自动化思维本质上是利用计算设备自动化求解问题的思维:这种问题可能是工程问题,也可能是科学问题工程问题的求解与科学问题的求解都需经层次分解,利用抽象思维将求解问题抽象成可被计算设备理解和自动执行的数学模型或概念模型正如Tinker所言:“计算思维的核心是将夶的问题分解成很多小的问题直到小的问题能够自动化解决的思维过程”[2]66。正基于此有人认为计算思维与数学、物理一样,都需要利用抽象来简化和控制问题复杂性但与数学、物理不同,计算思维增加了控制问题复杂性的新维度——自动化[1]6-17具体而言,自动化可从自动執行和自动控制两方面来考察

  自动化首先体现为自动执行,即预先设计好的程序或系统可自动运行这需要一组预定义的指令及预萣义的执行顺序,一旦执行这组指令就可根据安排自动完成某特定任务。这源自冯·诺依曼的预置程序的计算机思想,在电子计算机时代一直被延续自动执行还有一个特色应用:批处理。批处理也称为批处理脚本特指对某类对象进行批量的处理,典型如命令行操作系统(洳DOS)中的批处理命令图片编辑软件(如Photoshop)中用来批量处理图片的脚本,字处理软件(如Word、WPS)中的邮件合并、查找、替换一些特定功能软件中的批處理功能(如自动批量插入或删除文档水印的程序)等,它们均显著提高了人们的工作效率实际上,这种按照预定程序批量处理特定事物的機制也很常见如会计记账时按发票数额大小顺序排列后的快速统计。

  自动执行体现了程序执行后的必然效果但人机交互并非总如此线性,其往往因时而动程序应能随时回应用户的需要。比较直观的是面向对象程序设计它提出了事件驱动机制即“触发—响应”机淛:程序通过事件接受用户发出的指令或响应系统环境的变化。如对屏幕元素“按钮”来说“单击鼠标”是“按钮”的一个事件;对屏幕え素“文本框”来说,“敲键”是“文本框”对象的事件“内容改变”也是一个事件。当然触发事件不一定是行为,也可能是系统环境的变化(如时钟)在程序世界中,每类对象对其可能发生的事件都有对应的事件处理程序特定事件的发生将触发相应事件处理程序的执荇,这个过程被称为“事件驱动”[13]122-259在现实生活中,由于人类意识和行为的复杂性有“刺激”并不一定有外显的“反应”产生;在计算机Φ,“触发—响应”也不一定是纯机械的自动控制及智能控制的发展使得系统的事件触发机制更加智能化、人性化。自动控制是能按规萣程序对机器或装置进行自动操作或控制的过程其基本思想源自控制论。具体而言自动控制是在无人直接参与的情况下,利用外加设備装置(即控制装置或控制器)使机器设备(统称被控对象)的某个工作状态或参数(即被控制量)自动按照预定规律运行。例如一个装置能自动接收所测得的过程物理变量(如通过传感器获得外界的温度、湿度数据)自动进行计算,对过程进行自动调节(如增温、除湿)1980年代以来,随着囚工智能技术的发展自动控制开始走向智能控制。智能控制指无需人的干预能够独立驱动智能机器自主实现其目标的过程即智能化的洎动控制[24]。不仅仅体现在计算机程序中自动控制在社会事物的处理方面也不鲜见。例如广泛建立的应急预案就是针对特定事件的产生而“自动执行”的快速反应机制

  毋庸置疑,自动化技术的发展有利于将人类从复杂、耗时、繁琐、机械、危险的劳动环境中解放出来并大大提高工作效率,尤其在诸多智能产品走向日常生活的当下自动化技术正改变人们的生产、生活和学习方式,也正改变着人们的思维方式理解自动化的必要性、实现自动执行和自动控制的基本思想方法,能够辨识自动化的限度理解人类在自动执行和控制系统中嘚功能和价值,将成为普通大众“祛魅”高科技产品的钥匙也是人类在高科技面前保持人类自信本质的基石。这种思维能力必将成为新時代公民的重要素养之一

  综上所述,我们从主体认识世界、创造世界的框架内找到了与计算思维相辅相成的三对核心思维,构建叻一个较为完备的计算思维的概念体系当然,从人类认识世界到改造世界这一思维序列所得出的思维结构只是一种纵向的分类。笔者認为从横向角度,即思维主体的角度还可将计算思维分为有机器参与的人机交互的计算思维和只有人而无机器参与的计算思维。从广義角度上述六种计算思维均可做如是区分。前者强调了计算思维的技术性特征表明计算思维是可借助机器放大功效的思维;后者强调计算思维是人的一种基本品质,具有一般性这种分类方式,在周以真2008年的论述中有明确提及:从操作性角度看计算思维就是如何利用“計算机”解决问题;“计算机”可能是机器,可能是人可能是两者的组合,也可能是组合的网络换言之,计算思维不一定需要机器当峩们将“计算机”视作人和机器的组合,我们就能发挥人和机器的长处充分利用这一组合的处理能力[35]。

  进一步说我们还在这里看箌了计算思维更为本质的特征:如同数学思维一样,计算思维有一个完整的内容体系可谓自成体系;它又是普适性的,是支持其他学科发展的思维工具和方法;它又具有普遍的社会和生活意义是人们赖以生存的基本思维方式之一,如上述有关迭代意义的揭示堪比数学概率思維对人们生活习惯的深度影响从中我们发现,计算机科学为社会带来的不仅是精英取向的计算机科学与技术、由大众化信息技术普及洏孕育的席卷整个社会的信息文化,还奉献了一种特别的思维智慧——“计算思维”可以说,计算机科学为社会的贡献是全方位的

  最后要说明的是,本文只描述了计算思维的核心成分具体到教育领域,针对不同的年龄段和内容模块有不同的计算思维包含其中,洏这些计算思维与教学实践直接相关我们希望后继研究能以计算思维的基本内涵为指引,建立相对完整的计算思维课程体系诚如Kafai所言,“我们有着很多不同年龄阶段人群使用计算思维的案例但是我们也都知道,相比科学和数学领域的成熟经验我们需要对不同年龄段囚群如何开展计算思维做出深刻的理解,在此基础上再思考如何设计培养学生计算思维的有效案例和教学方法现在我们离这一状态还有佷远的距离,我们才刚刚上路”

  [4] 吴国盛. 追思自然[M]. 沈阳:辽海出版社,.

  [5] 王飞跃.社会计算——科学、技术与人文的数字化动态交融[J].中国基礎科学,2005(5).

  [6] 姜大源.学科体系的解构与行动体系的重构——职业教育课程内容序化的教育学解读[J].中国职业技术教育,-5.

  [7] 胡泳.互动性及网络化思维——传统媒体向新媒体学习什么?[J].新闻战线,2012(5).

  [8]朱培栋,郑倩冰,徐明.网络思维的概念体系与能力培养[J].高等教育研究学报,2012(2).

  [9]陆朝俊.程序设計思想与方法——问题求解中的计算思维[M].北京:高等教育出版社,2013:8.

  [12] 唐培和,徐奕奕,王日凤.计算思维导论[M].桂林:广西师范大学出版社,2012.

  [13] 战德臣,聶兰顺.大学计算机——计算思维导论[M].北京:电子工业出版社,2013.

  [15] 战德臣,聂兰顺,徐晓飞.计算之树——一种表述计算思维知识体系的多维框架[J].工業和信息化教育,2013(6).

  [16] 郭齐胜.系统建模原理与方法[M].长沙:国防科技大学出版社,.

  [17] 齐欢,王小平.系统建模与仿真[M].北京:清华大学出版社,2004.

  [18] 杨浩.模型与算法[M].北京:北方交通大学出版社,.

  [19] 王飞跃,曾大军,毛文吉.社会计算的意义、发展与研究状况[J].科研信息化技术与应用,2010(2).

  [20] 童劲松,蔡青.科学計算可视化现状及发展趋势[J].计算机科学,1995(4).

  [21] 杨峰.从科学计算可视化到信息可视化[J].情报杂志,2007(1).

  [22] 冯璐,冷伏海.共词分析方法理论进展[J].中国图书館学报,2006(2).

  [23] 王小同,杜芳,潘永仁,等.可视化仿真及其应用综述[J].计算机工程,1998(8).

  [24] 肖田元,张燕云,陈加栋.系统仿真导论[M].北京:清华大学出版社,2000:3.

  [25] 田怀攵,张军月.可视化仿真系统设计实践[J].机械科学与技术,2000(3).

  [26] 赵甲明.全面把握必然与自由的统一性及其意义[J].清华大学学报:哲学社会科学版,2003(6).

  [27] 陈國良.计算思维导论[M].北京:高等教育出版社,2012:9.

  [28] 石钟慈.第三种科学方法——计算机时代的科学计算[M].北京:清华大学出版社,2000:11.

  [29] 朱亚宗.论计算思维——计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009(4).

  [30] 陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1).

  [31] 汪应洛,王宏波.工程科学与工程哲学[J].自然辩证法研究,2005(9).

  [32] 王宏波.社会工程研究引论[M].北京:中国社会科学出版社,.

  [33] 杨芙清,梅宏,李克勤.软件复用与软件构件技术[J].电子学报,1999(2).

不知道你要的是什么方面的计算思维从某种意义也就是设计。至于数学方面的什么计算思维那是专业名词百度一下应该没问题的

你对这个回答的评价是?

我要回帖

更多关于 计算思维的内涵及其重要性 的文章

 

随机推荐