再谈计算机思维

时间:2022-07-07 12:12:12

再谈计算机思维

摘要:总结目前计算思维的研究现状,对计算机科学思维、计算思维和计算机思维等概念的一致性进行分析比较,从不同方面综合分析和阐述计算思维的特征,并对计算思维研究的基本问题进行初步探讨。强调计算科学方法论研究对计算思维研究的重要性,同时指出计算科学思想史研究将对计算思维和计算科学方法论的研究产生积极作用。

关键词:计算;计算学科;计算机科学思维;计算思维;计算机思维

随着计算机科学技术的发展,计算领域已成为一个极其活跃的领域,计算学科也成为一门范围极为宽广的学科[1]。在此发展过程中产生的种种现象,在很大程度上改变了人们对世界的认识,有力地刺激了人文科学的发展,人们对认知科学的研究就是“以电子计算机的产生发展为物质、技术基础,以计算机与人脑相类比为前提的[2]”。我国著名科学家钱学森院士从近三十年电子计算机发展引起的新技术革命,两千多年逻辑学发展的经验教训,作为符号处理系统的计算机在智能方面存在的严重缺陷,尤其是人们在高级抽象思维领域,如辩证思维、形象思维、创造性思维尚缺乏研究等方面,对认知科学的发展进行了科学的分析。同时结合我国科学技术发展的现状和特点,提出了“思维学”的理念,给出了“思维科学”的研究框架、研究方向与基本道路,并在随后的一系列工作中进一步充实和完善了思维科学的理论与思想体系[3]。他指出:“现代科学技术的实践,正预示着更重大的变革――思维科学的出现。”“引出这项变革的是电子计算机”。而“推动思维科学研究的是计算机技术革命的需要[4]”。在钱学森的倡导下,自上世纪80年代起,面向新技术革命的思维科学研究愈来愈受到国内有关专家学者的关注与重视。

在计算机科学与技术领域,随着美国计算机学会(简称ACM)和美国电气和电子工程师学会计算机分会(简称IEEE-CS)组成的联合攻关组于1988年底提交了“作为学科的计算科学”的报告[5],计算学科的“存在性”得以证明。随后,CC1991报告和CC2001报告等相继出台,从学科的角度诠释了计算科学的内涵与外延,为计算学科建立了现代课程体系。在计算学科课程体系的本土化进程中,我国相关领域的专家学者们付出了艰辛努力,并取得实质性成果,于2002年提出了“中国计算机科学与技术学科教程2002”(China Computing Curricula 2002,简称CCC2002)[6]。在CC2002教程的引导下,针对计算机科学与技术学科教育方面的诸多问题,国内从事计算机科学与技术学科教育的广大工作者进行了广泛而有益的探讨[7-10],大大丰富了计算学科课程体系建设的内容。在计算学科课程教育改革的进程中,如何培养既能熟练掌握计算机科学的知识与技能,又具有计算机科学学科意识和素养的人才问题,逐步成为人们关注的主要方面。

基金项目:本文受江苏省教育厅指导性计划项目“计算机思想史研究”(03KJD520028)及江苏科技大学高教项目“计算思维与创新教育”(GJKTY2009025)资助。

作者简介:张晓如(1963-),女,教授,学士,研究方向为计算机应用教育、数据库;张再跃(1961-),男,教授,博士,研究方向为可计算性理论与知识工程。

一个人的实践与创新能力与思维方式密切相关,与其他学科领域的科学家和工程技术人员等相比,计算机学科的专家学者们在思考问题、分析问题和解决问题方面也应有其独特的地方。正如计算大师Dijkstra所言:“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响我们的思维能力[11]。”因此,当计算机与人们的生活联系越来越趋密切的形势下,研究与之相关的人类思维活动与思维方式便成为现代思维学科领域中一个十分重要的课题。我们不妨称此种思维为面向计算学科的思维。显然,面向计算学科的思维除了具有一般思维的特点外,还具有其自身的特性,而后者则是从事计算机科学研究的人员和计算机教育工作者们更为关心的。究竟什么是面向计算科学的思维?它的特点是什么?对面向计算学科的思维研究对计算学科的发展会产生哪些积极作用?这种思维能力是可以培养的吗?又如何培养呢?我们现行的计算机课程教学内容结构会因此而有所改变吗?

1面向计算学科的思维

国内最早面向计算学科思维的研究文章是收集在2000年全国高等师范院校计算机教育研究会年会论文集上笔者的《谈谈计算机思维》[12]一文。当时的“计算机思维”意为“计算机科学思维”(Computer Science Thinking),在随后关于面向计算科学的思维研究中,相继出现了“计算思维”(Computational Thinking)[13-14]与广义“计算机思维”(Computing Thinking)[21]等概念。这些概念虽然与“计算机”有关,但它们有一个共同特点,即它们都是关于人的思维。

1.1计算思维与计算机思维

“计算思维”的思考和研究在国内受到更多专家学者的关注与重视,要归功于全国高等学校计算机教育研究会于2008年10月31日至11月2日在桂林召开的一次专题学术研讨会,会议的主题是“探讨在教学过程中,如何以课程为载体讲授面向学科的思维方法,共同促进国家科学与教育事业的进步”。会议从8各方面征集论文,无不涉及“计算思维”。在会议提供的资料中,美国卡内基・梅隆大学计算机科学系主任周以真(Jeannette M.Wing)教授2006年3月发表在美国计算机权威杂志ACM会刊上的文章《计算思维》(Computational Thinking)[13-14]和王飞跃2007年3月发表在中国计算机学会通讯的文章《从计算思维到计算文化》[11]位居榜首。其中,王飞跃教授从计算机文化发展的高度对“计算思维”概念的提出和“计算思维”的研究与发展对计算科学的进步产生的深远影响给出了充分肯定。王飞跃教授在提及国内对“计算思维”研究和计算文化与计算思维联系方面的状况时指出,“在中文里,计算思维不是一个新名词,常被朦朦胧胧地使用,却一直没有被提到周教授所描述的高度广度,那样的新颖、明确、系统”。这一陈述虽然有一定的道理,但不完全正确。“计算思维”从命名的角度可以如是说,但就其作为面向计算机科学思维的概念与特征而言,无论从高度讲,还是从广度说,周以真教授的描述确有“新颖”之处,但在“明确”和“系统”方面,同本文作者在上世纪90年代末就提出的“计算机思维”的概念在主要方面是基本一致的,并可形成互补。特别指出的是,《谈谈计算机思维》在谈到计算机文化与计算机思维相互之间的联系时指出,“随着计算机科学的发展,‘计算机’已不再是一个单纯的计算工具的代名词,而是信息时代高新技术的象征。可以这样说,‘计算机’作为一种文化,已渗透到社会发展的各个领域,而使得生活在这一时期的人们的思维活动中或多或少地与‘计算机’这一概念相联系,研究与之相关的思维活动与思维方式,便成为现代思维科学领域中一个十分重要的课题[12]”。在此,我们可以把有关“计算思维”特征的陈述同有关“计算机思维”的陈述作一比较。

周以真教授在对计算思维的描述中首先指出,“计算思维是每个人的基本技能,不仅仅属于计算机科学家”,这一观点与《谈谈计算机思维》一文中提出的“计算机思维具有广泛性。计算机思维已不仅仅是计算机科学家所应具有的思维,而应是全民族所必须的”的观点是完全一致的。并且文中还强调,“只有这样,计算机科学的发展才能具有广泛的社会基础,才能使计算机科学真正服务于社会”。在总结计算思维的特征时,周以真教授从6个方面,以“是”与“不是”的对立统一作了阐述。

为了更好地挖掘计算机思维的内涵,更加清楚地了解与把握计算机思维与其他学科思维方式的联系与区别,我们对计算科学发展的过程进行了初步考察,提出了“计算科学思想史”研究的基本思想,并对计算科学思想史研究的特点、研究内容、研究方法进行了分析探讨[16]。同时结合现代计算机课程教育,提出了基于知识背景的计算机课程教学改革的基本构想[19]。我们深信,无论是对计算机思维的研究,还是对计算科学思想史的研究,都会对计算机教育的实践与发展产生重要影响。

2 “计算思维”研究现状

无论叫计算思维,还是称计算机思维,关键是要解决问题,即“如何让人们学会像计算机科学家一样去思考”。从总体看,计算思维的研究应包含计算思维研究的内涵和计算思维推广与应用的外延两个方面。周以真在给出“计算思维”概念后,进一步探讨了计算思维的本质,并指出计算思维将在各种行为方面影响每个人,这一点对我们的社会教育提出挑战,特别是少儿教育。在关于计算的思考中,我们需要理解不同类型的3个方面:科学、技术与社会。飞速发展的技术进步和巨大的社会需求迫使我们重新思考计算科学最基本的问题[20]。从周以真教授多次关于计算思维的论述中可以看出,其“计算思维”的概念是面向社会、面向教育和面向大众的。这也许是一种策略,为了能让更多的人关注并思考“计算思维”的问题,并将思考的结果应用于计算科学实践,以此促进计算科学的普及和发展。在对“计算思维”的深入研究过程中,郭喜凤教授等从工程化的角度对“计算思维”的内涵进行剖析[20],以周以真面向大众的计算思维为基础,根据计算机科学与技术中的理论、技术、工程、工具、服务和应用等几个不同层面的思维特点,阐述了计算思维的工程化思想,将计算思维的概念加以推广并提出了计算机思维(Computing Thinking)工程化的层次结构,丰富了计算思维的研究内涵。董荣胜和古天龙教授从计算机科学与技术方法论的角度对计算思维研究的外延进行分析。“计算机科学与技术方法论是对计算领域认识和实践过程中一般方法及其性质、特点、内在联系和变化发展进行系统研究的学问。计算机科学与技术方法论是认知计算学科的方法和工具,也是计算学科认知领域的理论体系[21]”。在关于计算思维和计算机科学与技术方法论之间关系的论述中,董荣胜和古天龙教授在周以真教授工作的基础上,对计算思维的特征进一步加以阐述,从抽象与自动化两个方面,以具体的实例刻画了计算思维的本质,并介绍了国外关于计算思维研究的进展情况。在谈到计算思维与计算机方法论关系时,他们指出,“尽管计算思维与计算机方法论有着各自的研究内容与特色,但是,显而易见,它们的互补性很强,可以相互促进”。“计算机方法论可以对计算思维研究方面取得的成果进行再研究和吸收,最终丰富计算机方法论的内容;反过来,计算思维能力的培养也可以通过计算机方法论的学习得到更大的提高[22]”。这不是一个一般概念的问题,我们认为是计算思维研究的一个技术路线问题,只有把计算思维的研究同计算机科学与技术方法论有机地结合起来,计算思维才具有实际的意义和价值,计算机科学与技术的方法才能够获得进步。

3 “计算思维”研究内容

不管是周教授的计算思维(Computational Thinking),或是郭教授的计算机思维(Computing Thinking),还是计算机科学思维(Computer Science Thinking),它们都有一个共同面向,即都是面向计算学科的思维;都有一个共同的出发点,即研究和探索面向计算学科的思维规律;都有一个共同的目标,即引导人们在解决有关计算学科及其应用领域问题时,能够运用正确的思维方法。计算学科是关于“计算”的学问,因此,计算思维的研究势必围绕解决所谓“计算问题”而展开。

3.1计算思维研究的基本问题

何谓计算思维?《谈谈计算机思维》一文对计算机思维的内容进行了概括,即人们有意识地将计算机用于生产、生活等各个领域的认识活动以及人们解决计算机问题的认识过程。一方面,它是指一种形式,这种形式表现为人们认识具体的计算机科学,或是应用计算机科学于其他科学、技术的过程中的辩证思维;另一方面,它是由计算机科学本身的特点及计算机作为认识世界的工具所决定的,它同样受到一般思维方式的限制[12]。周教授则将计算思维归纳为运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[13]。董教授等则从方法论的角度将计算思维定义为运用计算机科学的思想与方法进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[22]。

从上述关于计算思维的描述可以看出,无论从哪个角度讲,计算思维都涉及解决计算机问题和应用计算机解决问题两个方面。我们把有关计算学科自身内容的问题和涉及其他学科领域的计算机应用问题统称为“计算问题”。围绕计算问题产生和发展起来的理论、方法和技术,构成了计算学科的全部内容体系。其中既有关于计算学科内涵的部分,也有关于计算学科外延的部分。当我们把人类的思维活动同计算问题的这两个方面结合起来加以考虑的时候,我们自然会问:计算思维的核心部分是什么?它的延伸和涉及范围有多大?因此也就产生了一个问题:计算思维的内涵和外延是什么?

周教授在总结计算思维的特征时,将计算思维描述成“数学与工程思维的互补与融合”,并将计算思维的本质(Essence)概括为抽象(Abstraction)和自动化(Automation)[23]。这让我们隐约感觉到了计算思维的“内涵”与“外延”。但是我们不能简单地把计算思维的内涵描述成数学思维与工程思维的交集,也不能简单地把计算思维的外延描述成数学思维和工程思维的并集。在此方面,郭教授等关于计算思维研究的技术路线可以给我们带来一定的启发,郭教授等认为,“计算机思维源于并服务于由理论、技术、工程、工具、服务和应用构成的计算链(或计算网络)。这一计算链以理论为始点,以应用为终点。这一计算链上的每一结点都将产生计算机思维,而计算机思维从这一计算链的始点到终点的转化,构成了计算机思维的工程化。计算机思维从这一计算链的终点到始点的转化构成了计算机思维的抽象、升华和理论化[20]”。这段陈述以“链”(不妨称“郭氏链”)的形式描述了计算思维的层次结构。需要补充的是,计算机思维(Computing Thinking)或计算思维的抽象、升华和理论化并不是一次完成的,应该是从“郭氏链”的“起点”到“终点”周而复始的转化过程中形成和发展的。假设“郭氏链”包涵了计算学科的全部内容,以此为基础,姑且把计算理论、计算技术研究与抽象纳入解决计算机问题的范畴,而把计算工程、计算工具、计算服务和计算应用的设计与开发纳入应用计算机解决问题的范畴,那么,我们就可以把关于计算理论、计算技术的思维活动的内容归纳为计算思维的“内涵”,而把关于计算工程、计算工具、计算服务和计算应用的思维活动的内容概括为计算思维的“外延”。只有系统准确地把握计算思维的内涵和外延,我们才能够更好地认识计算思维,更好地研究计算思维,更好地应用计算思维,更好地发展计算思维。然而,要想把计算思维的内涵和外延具体描述清楚,并非一件容易的事情,哪怕是“抢拍的一个镜头”也是十分困难的。这是因为计算学科的发展如此迅猛,计算学科的应用如此广泛,即便是最伟大的计算机学家,也只能涉猎计算学科的局部而不是全部。

上一篇:PBL教学法在数据库原理教学中的应用 下一篇:以实例贯穿课堂的面向对象程序设计课程教学改...