罗芳 沙莎
摘要:“计算思维”概念深刻地影响了我国大学计算机教学改革的思路与方向。该文从认识计算的角度对计算思维概念内涵进行了探讨和分析,指出计算的本质是一种信息状态到另一种信息状态转变的过程,并分析了计算的形式和特征;从计算的发展来看,提出计算思维应有狭义与广义之分,广义的计算思维是指人们对于现实世界进行信息抽象并利用工具实现信息转换的一种思维方式,并分析了计算思维的具体含义。
关键词:大学教学;计算机;教学改革;计算思维
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)27-6307-03
Abstract: "Computational Thinking" concept deeply affected the thinking and direction of the teaching reform of computer in University in china. This paper from the understanding of calculation are discussed and the analysis of the computational thinking concept and connotation, and points out that the nature of computation is an information state to another information state change process, and analyzes the forms and characteristics calculation; from a computational view of development, put forward the calculation thinking should have broad sense and narrow sense, Computational Thinking generalized refers to a kind of mode of thinking people for the real world information abstraction and realizes information conversion tools, and analysis of the specific meaning of computational thinking.
Key words: university teaching; computer; teaching reform; Computational Thinking
美国卡内基·梅隆大学周以真教授于2006年提出并定义了“计算思维”[1]的概念,周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。“计算思维”概念的提出引发了计算机学界对于计算与计算思维的关注与探讨。我国计算机学界对于计算思维基本持赞同与肯定的态度,认为“计算思维的重要性在于它关系到我们对计算机科学的转型与发展之基本认识。[2]”。尤其在计算机教育领域,周教授提出的“计算思维”更是产生了深远的影响,2010年7月,在西安“九校联盟(C9) 计算机基础课程研讨会”上,发布的《九校联盟计算机基础教学发展战略联合声明》中,强调了将“计算思维能力的培养”作为计算机基础教育的核心任务。[3]从2010至今,计算思维能力的培养成为国内各个高校的计算机教育改革的主要方向。
然而关于计算思维这个概念,国外计算机学界一直存在着争议。ACM的前任会长Peter J. Denning教授指出“计算思维并不是计算机科学唯一和独有的特征,如果不谨慎地认识和看待它,它将会把人们引向思维的陷阱”[4] Peter J. Denning教授曾组织了一次关于计算与计算思维的大讨论-“What is computation?”很多学者撰文发表了对于计算与计算思维不同的见解。[5]2003年图灵奖获得者Peter Naur教授则在《Computing Versus Human Thinking》一文中论证了计算机并不能描述人的思维,它只是描述真实世界的一种形式。[6]总的说来,人们对于“计算思维”中“计算”能否代表所有的计算?以计算机科学的理论为基础的思维是否就是计算思维?等这些问题持有质疑。
笔者认为,计算思维的提出突出了计算机处理问题的特性,引导人们从理论
的角度来理解计算机的行为方式,从而能更好的使用它。从计算机教育这个角度看,计算思维概念的提出是具有其积极意义的。然而从科学发展的角度来看,计算思维中的计算不应仅仅局限于计算机科学领域的计算,计算思维也不能仅涵盖计算机科学领域。为了使“计算思维”的概念更全面和严密,该文从计算的角度对计算思维进行了研究,首先探讨了“计算”的本质、形式与特征,进而分析“计算思维”的产生以及具体含义,提出应将“计算思维”分为狭义的计算思维与广义的计算思维,并定义了广义的计算思维。该文的研究希望能给全面客观的认识和理解计算思维提供一些思路,以便将“计算思维”的概念更好的运用到高校的计算机教育改革中。
1 关于计算的研究
探讨计算思维,首先要弄清楚什么是计算?目前,很多科学领域,不仅是数学、计算机学科,还包括生物学、物理学等领域的研究都引入了“计算”这个概念。那么,不能仅从一个学科的角度去理解“计算”,而应该从更广泛的角度去认识“计算”。
1.1 什么是计算
“计算”这个概念与“信息”是密不可分的,计算处理的就是信息。信息是构成世界很重要的一个要素,在讨论“计算”之前,有必要先了解什么是信息?从不同的认识角度和认识层次,信息有很多种定义,比如在日常生活中,我们所理解的信息是指消息或者情报;而在信息科学领域,比较经典的是信息论创始人Shannon关于信息的定义,他认为信息是用来减少随机不确定性的东西。而从具有较广意义的哲学层面来定义,信息是事物存在的方式或运动状态,以及这种方式或状态的直接或间接的表述。这个定义涵盖了各种不同层面关于信息的认识和理解。
相应的,计算也可以参考信息的概念,从不同的角度与层次去理解,日常生活中、数学领域、计算机科学领域等都有关于计算的理解和定义。数学领域中,计算是指一种将单一或复数之输入值转换为单一或复数之结果的一种思考过程;计算机科学领域定义的计算是指符号序列的变化;而从更广的角度来看,计算可定义为:计算是一种信息状态到另一种信息状态转变的过程[7]。此定义可以帮助人们统一科学研究领域关于计算的理解。根据上述定义,就不难理解生物学家提出的DNA转变成核酸是一种计算,物理学家提出的量子状态的变化是一种计算[8]。这些都是信息状态的变化过程,只不过所依附的事物不同而已,因而表现形式不尽相同。但它们本质是一样的,都是事物存在的方式或运动状态,即信息的状态发生了改变,这个变化过程就是计算。
“计算”本身是人为的概念,但描述和研究的是一个自然的过程。人们研究计算的目的是想通过人为的方式模拟自然的过程,并重复和改造这个过程。计算的研究包括研究信息的表达以及信息变化过程的表达。人们之所以更能接受数学及计算机科学中的计算概念,最关键的原因是数学及计算机科学建立了完备的信息表达方式(符号)和信息变化过程描述方式(公式或算法)。但应该强调的是,计算的本质并不是符号、序列或公式的表达及转换,它们只是描述信息状态的方式。如果DNA到核酸以及蛋白质之间的转换能建立一套完备的信息表达及信息变化过程描述的方法,那么这个自然的信息变化过程也能象数学和计算机科学领域的计算一样能用人为的方式描述。
综上所述,“计算”是事物的一种信息状态到另一种信息状态的转变过程,
它本是一个自然的过程,但人们为了研究这个过程,定义了记录和描述信息状态和过程变化的符号,并用这些符号推导和模拟了实现转变的过程。
1.2 计算的形式
1) 数学计算
数学以符号为信息表达方式,信息的变化过程则由公式、定理推导而出。数学是以语言的形式实现计算。然而,数学的符号和推理过程只有人才能识别和使用。
2) 计算机计算
计算机利用物理器件存在两种稳定的物理状态的特性,采用二进制为信息的编码方式,以图灵机作为计算模型实现信息状态的
图灵将计算的形式化为计算者或机器对一条两端可无限延长的纸带上的一串0和1执行指令,一步一步地改变纸带上的0或1经过有限步骤,最后得到一个满足预先规定的符号串的变换过程。
但图灵模型并不能完成所有的计算,图灵机要求在计算过程中每一步都是确定的,而对于某些在计算过程中有选择性的计算,即所谓非确定性的计算,图灵机是不能够实现的。尽管人们想办法将非确定性问题转换成确定性问题,然后用计算机计算,可仍然有很多问题是不能转换的,因而还有很多计算是计算机不能完成的。因此人们不断探索新的信息表达方式和新的计算模型,于是有了DNA计算和量子计算[9]。
3) DNA计算
DNA计算是利用DNA双螺旋结构和碱基互补配对规律进行信息的编码,其信息转换过程是将要运算的对象映射成DNA分子链,通过生物酶的作用,生成各种数据池,然后按照一定的规则将计算问题的数据运算映射成DNA分子链的可控的生化反应过程。信息的输出是利用分子生物技术(如聚合链反应PCR、超声波降解、亲和层析、克隆、诱变、分子纯化、电泳等),检测所需的运算结果[10]。DNA计算是通过生化反应实现计算的一种形式。
一个DNA单链可以看作由四个不同符号A、C、G、T组成的一个串,这四个元素能形成数学上的一种良好的代数结构——域[11]。四元集[={A、C、G、T}]将信息编码,按照图2所指定的两种代数运算“+”和“*”,构成了一个四元域。
对比计算机0、1两个数字编码,DNA这种编码字母表远远超过NP问题计算的需要。人们利用DNA计算解决了一些计算机不能实现的计算。例如,Adleman通过DNA计算方法求解了七个节点的HPP(Hamilton问题)实例 [12],Lipton等也提出了基于DNA模型的DNA算法,它是求解一类著名的NP完全问题——满足性问题的有效算法[13]。由于对DNA计算的研究时间不长,还有待开发出更多的DNA计算模型。
4) 量子计算
量子计算以量子比特作为信息的编码,应用量子力学原理进行计算的计算形式。一个量子比特态除了0、1两种状态外还有一种叠加态:
以上四种计算形式中,数学是目前为止最完备的计算系统,其他三种计算都是从某种程度上模拟数学计算,实现了非人工的计算形式。
1.3 计算的特征
计算虽然有多种形式,但是它们都具有相同的特征。了解计算的特征有利于区分辨别计算过程,认识计算的本质。根据计算的实现过程,可发现计算的特征。
1) 具有相应的符号系统。符号系统用来编码信息,还包括参与运算的操作符。计算是模拟自然的信息变化过程,描述这种变化过程需要精确简单,而自然语言在描述信息变化过程中显然比较繁琐,因此各计算系统都有相应的符号系统。比如数学中的数字与各种运算符,计算机中的0、1代码。
2) 具有相应的推理规则。符号是计算中表示信息的方式,信息的转换由符号实现,而符号从一种表示变化成另一种表示,意味着信息的转换,怎样实现这种转换需要相应的推理规则。比如数学中各种运算规则与定理。
3) 具有稳定的信息状态。稳定信息状态包括符号系统的稳定和推理规则的稳定,比如计算机中的数字信号、DNA计算中的碱基对,首先这些符号状态必须稳定,不能随意变化,只有在推理规则下发生相应的改变;其次,运用同样的推理规则可以得到同样的结果。
4) 具有输入与输出。输入是信息的初始状态,输出是信息的结果状态,其变化过程由上述的符号系统、推理规则共同完成。
2 计算思维的本质
在人们模拟“计算”这个信息转换过程时,比如,一个数学计算,人类最初是用头脑实现它的每一个变化过程,用纸笔记录下结果,后来发明了算盘、计算器等工具来替代头脑实现每一步的变化过程,再后来发明了计算机,能够自动实现整个的计算过程。图灵机作为计算机的计算模型,其基本思想就是用机器模拟人用纸笔进行数学计算的过程。目前,数学是最完备的“计算”实现系统,而计算机是能够替代人脑自动实现“计算”的工具。
随着计算机科学的迅猛发展,人们在各个领域借助计算机实现和完成了很多复杂的信息处理工作,因而人们越来越意识到计算机这个工具的必要性。为了突出计算机的工作特点,并强调计算机对于现代社会的重要性,人们提出了“计算思维”的概念。[1]
显然,此计算思维的概念是以计算机科学为基础的,其所指的计算也是特指计算机科学范畴中的计算。然而,人类未来的计算是不是只能依靠计算机?计算思维是不是只限于计算机科学?
众所周知,目前的计算机是采用二进制为信息的编码方式,以图灵机为主要计算模型。计算机采用二进制编码源于机器硬件采用的物理器件的局限,因为物理器件只能记录两种稳定的状态。二进制编码虽然简单,容易记录,但是相应的因其编码长度过长,导致记录的信息量和机器处理的信息量都受到限制。在新型的DNA计算机中,人们采用组成DNA的四种核苷酸A、G、C、T进行编码,编码的信息容量得到了提升。
计算机以图灵机作为计算模型,然而图灵模型并不能满足所有计算的要求。为了突破计算机在计算方面的种种缺陷,人们也在不断探索新的信息表达方式和新的计算模型,比如量子计算、DNA计算,这些计算的信息表达方式不再是采用二进制和图灵计算模型。
虽然目前人类主要借助计算机来自动实现很多的计算,但是计算机的计算并不能代表所有的计算。因此,上述关于“计算思维”的这个定义是狭义的,只突出了计算目前的现状,不具有延伸性。
从计算的发展来看,计算思维的本质是指身处信息社会的人们在面对大量的信息处理或计算的时候,想办法以非人工的方式来实现这些工作。计算思维包括信息的表达和信息的转换过程两个方面,简单而言,计算思维就是人们将需要处理的信息如何表达,如何转换。而计算机有着一套相对比较成熟和完整的信息表达和转换方法,能适应很多的信息处理,完成大量的计算。因此,计算机是目前计算思维的一种集中体现。但是,随着信息处理和计算过程越来越复杂,目前的计算机也不能完全适应计算的需求。人们正在在研究一些新的信息处理和计算工具,其改变的核心就是信息的表达和转换方法,希望能研究出更高效和更复杂的信息处理系统。
因此,我们不能仅从计算机科学的角度去定义和理解计算思维,而应该从更广义的角度去认识计算思维。广义的理解计算思维,应该是指人们对于现实世界进行信息抽象并利用工具实现信息转换的一种思维方式。今日的计算思维是围绕计算机科学,而明日的计算思维或许会围绕化学、物理等学科,或许会产生新的学科,但核心一定是关于信息的表达和转换。
3 计算思维的含义
根据以上分析,计算思维应包括两层含义,一是利用现有计算工具实现计算问题,即如何将现实中的计算转换成计算机能够实现的计算;二是开发新的计算系统,即构建新的计算模型和研究新的信息表示和信息转换系统。
目前,计算机所实现的是计算思维的第一层含义,即如何将现实中的计算转换成计算机能够实现的计算。图灵机是目前计算机采用的计算模型,图灵模型实现的是有限的、确定性的计算,图灵模型包括以下四个要素:输入(I),输出(O),程序(P),数据(D),有限的、确定性的计算即指输入、输出是确定的,而程序的执行步骤是有限的。在计算机领域,凡图灵机能实现的称之为可计算的问题,否则成为不可计算的问题。因此,在这个定义框架下,所谓的计算思维,其本质就是如何将现实中的问题转换成可计算的问题,再提交计算机执行计算。然而对于不确定性问题,图灵模型是无能为力的。
由于图灵机的局限性,人们不断地探索新的计算模型,这属于计算思维的第二层含义。探索的方向主要是:1、改进图灵机;2、采用新的信息表示方法和信息转换系统。改进图灵机即针对图灵机在输入、输出、数据的存储方式以及执行步骤等方面进行改进,产生了持久图灵机(PTM)、时序交互机(SIM)、多带交互机(MIM)等,但这些改进模型仍然是采用二进制表示信息,采用CPU+存储器的工作模式,虽然在计算能力上有所改进,本质上却没有突破图灵机模型。于是,人们考虑采用新的信息表示方法和信息转换系统,比如量子计算机,其信息表示采用的是量子比特(qubit),通过量子分裂式、量子修补式来进行信息转换;DNA计算机,采用核苷酸作为信息表示,通过生物酶的作用使DNA分子发生化学反应,从而完成信息转换。DNA计算机可以解决图灵机不能解决的不确定性问题,如哈密顿路径问题。
因此,计算思维的含义既包括对现有计算系统的利用和研究,更包括对新计算系统的研究和开发。只要沿着计算思维的思路探索,未来或许还会出现更多新的信息表示方法和信息转换系统。
4 结束语
培养学生的计算思维能力是目前高校计算机教学改革的核心任务,对于计算思维概念进行深入的研究,从广义的角度理解计算思维,可以帮助计算机教育者从更广阔的视野来重新认识计算思维,从而有利于计算机教学改革的进行。