当前位置:文档之家› 计算思维之我见

计算思维之我见

计算思维之我见摘要:教育的基础性确定了人才培养能力导向的基本要求,人类迄今所实践的三大科学研究范型更具体地给出了计算思维能力培养的指向。

不同的人才未来将面对不同的问题空间,决定了他们对计算思维能力不同的要求。

本文用朴素的、狭义的和广义的计算思维进行区分;而计算思维能力的培养需要建立意识、了解功能、掌握方法、会用工具,最终才能形成能力。

关键词:研究范型;思维方式;朴素计算思维;狭义计算思维;广义计算思维;能力培养从2002年8月笔者第一次在《中国计算机科学与技术学科教程2002》中使用“计算思维”这个词描述计算机科学与技术专业人才的四大专业基本能力之一[1],到现在已经有十余年了,后来又在编著的教材中谈到计算思维能力的培养[2-5]。

其间,美国的周以真教授2006年3月在COMMUNICATIONS OF THE ACM 上发表了Computational Thinking一文[6](王飞跃等曾将此文翻译介绍给国内读者),之后又有一些学者就计算思维发表了有关研究结果[7,8]。

后来人们发现,Seymour Papert早在1996年就提出了计算思维[9]。

近几年来,我国有一大批学者开始跟进研究,特别是在教育部高等学校计算机基础课程教学指导委员会的带领下,在我国非计算机专业计算机课程教育领域开展了颇具声势的研究与实践,对计算思维及其培养有了一些认识,取得了一些成果[10]。

2012年1月30日-2月3日,2006-2010教育部高等学校计算机科学与技术专业教学指导分委员会联合全国高等学校计算机教育研究会和中国计算机学会教育专业委员会召开了一次主任(理事长)扩大会议,就计算思维等多个问题进行了研究,形成了“积极研究和推进计算思维能力的培养”的基本意见[11]。

总体上看,人们对计算思维的认识以及如何进行计算思维能力的培养还处于相对初始的阶段,很多问题还有待进一步的研究和实践。

本文将计算思维作为一种与计算机及其特有的问题求解紧密相关的思维形式,并将人们根据自己工作和生活的需要,在不同的层面上利用这种思维方法去解决问题,定义为具有计算思维能力。

基于此,本文从“能力培养”及其不同要求的角度出发,将计算思维分为朴素的计算思维、狭义的计算思维和广义的计算思维,以描述不同人群对计算思维能力培养的各自侧重。

一、作为重要基础之计算思维计算思维中的“计算”是广义的计算。

随着信息化的全面推进,“计算机”变得无处不在、无事不用,网络(包括物联网等)延伸到各个角落,加上数据积累的简单化、容易化,使计算思维成为人们认识和解决问题的重要思维方式之一[11]。

一个人若不具备计算思维能力,将在从业竞争中处于劣势;一个国家若不使广大受教育者得到计算思维能力的培养,在激烈竞争的国际环境中将不可能引领而处于落后地位。

计算思维能力,不仅是计算机专业人员应该具备的能力,而且也是所有受教育者应该具备的能力。

计算思维能力,也不简单类比于数学思维、艺术思维等人们可能追求的素质,它蕴含着一整套解决一般问题的方法与技术。

那么,计算思维为什么这么重要呢?特别是在教育中,为什么要强调进行计算思维能力培养呢?首先,探索与创新的未来性以及知识的无限性,决定了教育,特别是本科教育的基础性特征。

笔者认为,知识基础、能力基础是人才培养中必须强调的两大基础,而且在培养过程中,二者相辅相成。

其中知识是载体,通过对知识及其发现,特别是知识发现过程中大师们的思维的学习,培养学生的思维能力以及具体化后的探索未知的能力。

所谓思维,按照一般的说法,就是在表象、概念的基础上进行分析、综合、判断、推理等认识活动的过程,是人类特有的一种精神活动以及管理。

也可以说是大脑对具体事物或用文字表述的概念进行接收、加工等,表示大脑运动的状态。

由此可见,思维能力对一个人来说是非常重要的,特别是对于“能力导向”的教育来说,强化思维能力的培养是必须的。

同时,思维必须基于一定的对象,而知识及其表示作为“对象”具有重要地位。

其次,计算范型作为人类社会的“三大科学研究范型”之一决定了计算思维的重要性。

第一是理论范型。

理论范型以理论的演绎、推理为主要研究形式,主要是逻辑思维,其典型代表为数学学科。

所以其思维形式又被称为数学思维。

第二为实验范型。

实验范型以实验、观察、数据收集、分析、归纳为主要研究形式,主要是实证思维,其典型代表为物理学科和化学学科。

所以,在国际工程教育标准中,将数学和自然科学作为工程教育的重要基础[12,13]。

第三就是计算范型。

计算范型以利用计算技术通过构建(系统)进行问题求解为主要研究形式,人们将此思维方式称为计算思维,以计算学科(通常称为计算机学科)为代表。

实际上,计算思维方式很早就有了,只是在电子计算机出现后,计算思维逐渐被认识和强化,特别是随着计算技术的迅速发展和功能的快速增强,计算思维的重要性在近几年凸显出来,使得计算机类课程成为与数学、物理并列的,实施(思维)能力培养的大学基础课的趋势逐渐被广大的教育工作者看清。

顺便需要提到的是,计算机技术的发展,为数据的搜集和利用提供了基础,基于此,有人提出了与三大范型并列的第四大范型——数据范型,并认为该范型的主要思维方式是“数据思维”[14]。

数据范型针对P级以上规模的“大数据”处理。

由于该范型采用的基本方式仍然是计算,所以,作者认为,这种范型即使存在,目前还很难独立。

各研究范型对应的思维方式如表1所示。

表1 与研究范型对应的思维方式思维方式呈现的基本对象采用的基本方式逻辑思维(数学思维)符号、定义、公式、公理、定理演绎、推理实证思维定义、定律(规律)、现象、实验、定理设计、再现、模拟、观察、归纳、分析计算思维符号、算法(程序)、模型、系统抽象(离散化、符号化、模型化)、自动计算(程序化)数据思维大数据(无结构、半结构、巨大规模)计算(统计、分布、并行)《形式语言与自动机理论教学参考书》给出了正则文法和有穷状态自动机共5种模型等价转换的典型模型计算[3],如下图所示。

实际上,在计算机类专业的课程中,类似的例子还很多。

如:编译中的LR分析器的构造、数据库系统中的基本运算、操作系统中的进程管理等。

正则语言表示模型等价转换的计算图示作为朴素计算思维能力最基本的,也是难度最大的模型计算能力的培养,可以从数学分析、离散数学(研究基本运算系统)再到形式语言与自动机理论(研究基本计算系统),构成一个梯级训练系统,引导学生把运算范围从实数域扩展到抽象集合域,同时将计算从单一具体的实例计算迁移到一般的形式化的类计算和模型计算。

作为另一条线,从程序设计、数据结构与算法再到编译原理、操作系统等,还可以进一步地培养学生计算的规划和实现能力。

既然瞄准的是计算思维能力的培养,就必须在教学中强调思想和方法的研习,更好地体现“专业技术基础课”的特征,不能将它们当成普通的“专业课”,甚至这些课程还要当作“思维体操”课——在课堂上,由教师领着做,在课后由学生自己进行练习。

三、狭义的计算思维狭义的计算思维是指“计算学科之计算思维”,以面向计算机专业人群的生产、生活等活动为主。

泛泛地讲,狭义的计算思维是基于“计算机”以及以计算机为核心的系统的研究、设计、开发、利用活动中所需要的一种适应计算机自动计算的“思维方式”,使人机的功能在互补中得到大力提升。

从这个意义上讲,计算机相关的很多“东西”都可以被“计算思维”一词涵盖。

主要有:最基本的问题描述方法——符号化、模型化;最主要的思维方法——抽象思维、逻辑思维;最基础的实现形式——程序、算法、问题表示(包括数据结构)、系统实现、操作工具……;最典型的问题求解过程——问题、形式化描述、计算机化;最基本的问题求解方法——方法论意义上的核心概念、典型方法。

我们可以用两种说法来描述,即“按照适应计算机求解问题的基本描述和思维方式考虑问题(构建计算系统、开发相适应的技术)的描述及求解”,或者“采用适应计算机求解问题的基本方式和有效方法考虑问题(构建计算系统、开发相适应的技术)的求解(描述、分析、构建)”。

这里突出的是“如何使计算机和以计算机为核心的系统具有更强的工作能力,并开发更方便的使用技术”。

在研究、设计、开发、利用四类活动中,以研究、设计为主,开发中主要指计算机专业本身所涉及的基本计算机系统、基本应用系统的开发,而利用则仅指专业活动中的利用。

狭义的计算思维除了包括朴素计算思维的内容外,还包括以下内容。

(1)计算学科方法论意义上的核心概念:抽象层次、概念和形式模型、一致性和完备性、大问题复杂性、效率、折中与决策、绑定、演化、重用、安全性、按空间排序、按时间排序;(2)相关的典型数学方法:强调用数学语言表达事务的状态、关系和过程,经推导形成解释和判断,呈现高度抽象、高精确、具有普遍意义的基本特征。

具体方法包括公理化方法、递归、归纳和迭代等构造性方法、模型化等;(3)相关的典型系统科学方法:其核心是将对象看成一个整体,思维对应于适当抽象级别,力争系统的整体优化。

一般原则是整体性、动态、最优化、模型化。

具体方法包括结构化方法、OO方法、黑箱方法、功能模拟方法、信息分析方法、自底向上、自顶向下、分治法、模块化、逐步求精等。

还包括其他一些更具体的方法。

例如:约简、转化、仿真,递归、归纳、迭代,调度、并行、串行,抽象、建模、分解、归并,规划、分层、虚拟、嵌入,保护、冗余、容错、纠错、系统恢复,启发、学习、进化,可视化、示例等。

这些内容的教学必须植根于计算学科相应的知识体系,以这些知识为载体,通过研究性教学,实现教师在对问题的研究中教,学生在对未知的探索中学。

引导学生学习问题求解和知识发现过程中大师们的思维,使他们有效地掌握这些典型的方法。

四、广义的计算思维计算机早已走出计算学科,甚至与其他学科形成新的学科。

例如,社会计算、计算物理、计算化学、计算生物学等等。

计算思维也随之走出计算学科。

所以,广义的计算思维是指“走出计算学科之计算思维”。

适应更大范围的广大人群的研究、生产、生活活动,甚至追求在人脑和电脑的有效结合中取长补短,以获得更强大的问题求解能力。

我们同样可以用两种说法加以描述:“有效利用计算机(工具)、相关思想、方法和技术以及计算环境和资源,以增强能力,提高效率”,或者“有效地利用计算技术进行问题求解,包括在科学研究与系统实现中有效地利用计算学科典型的思想与方法进行问题求解”。

这里突出的是计算机不仅作为工具,还可以有效利用相适应的意识、思想、方法、技术、环境和资源等。

在研究、设计、开发、利用四类活动中,以利用为主,然后依次为开发、设计、研究。

特别是对不同专业的人来说,这四类活动涉及的具体对象是不同的,它们与专业紧密相关,关键是意识、思想、方法、技术、工具、环境、资源等。

广义的计算思维包括狭义的计算思维,狭义的计算思维包括朴素的计算思维。

相关主题