计算思维的学科观

2019-07-19 06:06王荣良
中国信息技术教育 2019年12期
关键词:食物链造物兔子

王荣良

● 问题:抽象就是计算思维吗

开展计算思维教育,首要的问题是要弄清什么是计算思维。在中小学开展计算思维教育,也需要弄清计算思维与其他思维相比较所能表达的独特优势与价值,需要回答计算思维的哪些特征是其他的学科思维所没有的,或者说不能有效或显著地表达与反映的。

周以真教授曾说过,抽象是计算思维的本质之一。那么,在教学实践过程中,对学生开展抽象方法的教学,是不是就是在开展计算思维教育呢?

有一位教师在设计小学四年级科学学科“食物链”的学习内容时,结合Scratch编程技术,设计了一个项目学习活动,旨在通过该活动的实施发展学生的计算思维。该项目活动的学习目标之一是:学生能够用Scratch语言创设一个动画情境,表示一个真实食物链的发展特征。该项目活动对应的课程标准有两个方面,即信息技术课程标准和四年级生命科学的课程标准。其中,涉及信息技术课程中关于计算思维能力要求的有:①通过抽象的方式(如模型、模拟)表示数据;②设计算法形成自动化解决问题的方案;③总结这种解决问题的方法,迁移至更宽泛的问题解决之中。这些学习目标要求在《普通高中信息技术课程标准(2017年版)》中可以找到对应的内容。

按照项目任务,活动过程包括头脑风暴、问题讨论、动画演示、分组拓展等环节。头脑风暴环节,学生讨论在食物链中草、兔子和鹰的关系,说明其中太阳与细菌分解的作用;问题讨论环节,针对问题(例如,如果让生态系统更复杂一些,需要增加什么物种),讨论哪些因素会改变草、兔子和鹰三者关系的平衡;动画演示环节,每位学生用Scratch软件创设一个简单的动画情境,能显示兔子吃草、鹰抓兔子这一食物链场景,反映出个人对食物链的理解;分组拓展环节,学生分组利用Scratch软件创设一个加入其他因素后对食物链产生影响的预期场景,用以预测相关因素的变化对食物链的影响。

根据教师的教学设计,在头脑风暴环节,学生通过讨论画出草、兔子和鹰这些生物在食物链中的结构图,抽象出鹰抓兔子、兔子吃草的相互关系,从而通过抽象方法的运用实现计算思维的培养目标。

针对以上教学设计,不妨做一个假设:这堂课的教学目标仅是通过分析草、兔子和鹰三者关系让学生理解食物链的概念,不需要学生用Scratch编制程序来动画表示食物链中的相互关系。教师同样设计相同的讨论环节,学生在画出草、兔子和鹰这些生物在食物链中的结构图过程中同样使用了抽象的方法。显然,这里的“抽象”,是生命科学学科中分析问题、解决问题的一种方法。那么,我们是否可以认为,因“抽象”方法的运用,也就实现了计算思维的培养目标呢?

在中小学计算思维教育的实践中,相类似的问题还有不少。例如,在项目学习过程中,教师往往会引导学生将一个复杂的大问题分解成若干个简单的小问题分别解决,这一特征符合计算思维中的分解属性,即将整体的对象、问题、过程或者系统分解成单独的部分,因此,不少教师将这一教学过程归类到计算思维的培养。又如,运用生活中的算法来培养计算思维,如泡茶过程,先烧水,然后洗杯子、找茶叶、放茶叶,水开后泡茶,这一过程可以尽可能地节省时间。再深入思考,我们就会发现,前一個例子,将大问题分化为小问题逐一解决,是解决问题的一般方法之一。显然,计算思维不应该包罗解决问题的一般方法,那么解决问题的一般方法与计算思维的边界在哪里?后一个例子,本质上是运筹学在生活中应用的一个实例,运筹学与计算思维的关系又是什么?

之所以在计算思维认识上会出现偏差,乃至在计算思维教学实践上出现偏差,原因之一是我们缺少对计算思维所对应的学科进行追溯,没有建立计算思维的学科观。在日常的教学活动中,教师关注具体的教学内容,而对相应的学科背景的研究比较少。

目前,学术界对计算思维概念的认识比较模糊,定义也比较多。关于计算思维内涵的研究大致有两个相反的倾向:一是宏观视角的、广义的计算思维研究,倾向于计算思维概念的通俗化和普适性;二是微观视角的,倾向于其专业化和高端化的狭义计算思维的研究。但无论哪一种倾向,都需要回答计算思维与其他形式思维相比,其独特性在哪里,都需要以计算科学学科为起点,从学科的特征去考察计算思维的独特性。

● 基础:可计算问题与计算科学学科

所谓可计算,通俗地说,如果存在一个机械的过程,对给定的一个输入,能在有限步骤内给出答案,那么这个问题就是可计算的。图灵是用抽象的图灵机描述了可计算模型。

20世纪初,著名的数学家希尔伯特提出了著名的23个数学问题,其中包括试图建立通用的逻辑系统验证所有反映客观世界的定理,或者从少数几条公理和推导规则出发,证明或发现和导出所有的未知定理。这就是有名的“希尔伯特计划”。1931年,数学家哥德尔提出了不完备性定理,指出任何一个数学系统,如果是一致的,那么其一致性不能在自身内部来证明,从而否定了“希尔伯特计划”。图灵提出图灵机模型,是其论文《论可计算数及其在判定问题中的应用》中所举的一个实例,其结论是,能够用图灵机解决的问题,就是一个可计算问题,从而给出了可计算问题的一种判别方法。因此,图灵机设计的本意并不是为了设计计算机,而是为了讨论可计算问题,但客观上为计算机的发明奠定了理论基础。

20世纪70—80年代,计算机得到了飞速的发展,并开始渗透到许多学科领域,但“计算机科学能否成为一门学科”以及“计算机科学是理科还是工科,或只是一门技术”等问题仍然存在很大争议。针对计算是否能成为一门学科的激烈争论,1985年春,ACM和IEEE-CS联合攻关,开始对“计算作为一门学科”做存在性证明。1988年,研究报告《计算作为一门学科》(Computing as a Discipline)发布于Communications of the ACM杂志上。

报告《计算作为一门学科》为计算学科做了如下定义:计算学科是对描述和变换信息的算法过程进行的系统研究,包括理论、分析、设计、效率、实现和应用等。计算学科涵盖了对计算过程的分析以及计算机的设计和使用。

联合攻关组在随后的研究中,形成了一系列供大学开展专业教育的课程计划。联合攻关组将计算学科分为计算机科学、软件工程、计算机工程、信息技术和信息系统五个分支学科,先后递交了SE2004、CE2004、CC2005、IT2008、CE2008和IS2012等报告,其中CC2005是总报告(如上页图1)。

计算机科学(CS)是有关计算的理论、算法和实现、机器人技术、计算机视觉、智能系统、生物信息学和其他新兴的有发展前途领域的学科。计算机科学专业培养的学生,更关注计算理论和算法基础,并能从事软件开发及相关的理论研究。

软件工程(SE)是以系统、规范、定量的方法把工程应用于软件开发、运行和维护,同时对上述过程中各种方法和途径展开研究的学科。软件工程专业培养的学生,更关注以工程规范进行大规模软件系统开发与维护的原则,尽可能避免软件系统潜在的风险。

计算机工程(CE)是对现代计算系统和由计算机控制的有关设备的软件与硬件设计、构造、实施和维护进行研究的学科。计算机工程专业培养的学生,更关注设计并实施集软件和硬件设计于一体的系统。

信息技术(IT)是针对社会和企业信息化需求提供与实施解决方案的学科,它主要侧重于在一定的组织及社会环境下,通过选择、创造、应用、集成和管理的计算技术来满足用户的需要。信息技术专业培养的学生,更关注基于计算机的新产品及其正常运行和维护,并能使用相关的信息技术来计划、实施和配置计算机系统。

信息系统(IS)是指如何将信息技术的方法与企业生产和商业流通结合起来,以满足这些行业需求的学科。信息系统专业培养的学生,更关注信息资源的获取、部署、管理和使用,能够分析信息需求和相关商业过程,能详细描述并设计出与目标一致的系统。

● 理解:学科视角下的计算思维

学科的基本问题是一个非常重要的概念。学科的基本问题不是针对一个学科的具体问题提出来的,而是在一个学科一大类具体问题的基础上,通过分析这类问题共同的特点和本质属性,经过总结、提炼得到更一般化的抽象的问题。学科中许多具体问题是某一抽象的基本问题在该具体问题所属领域内的一个具体的實例。通过学科基本问题的讨论,可以帮助我们认识一个学科,认识这个学科有哪些具体问题。每个学科都有基本问题,计算学科也不例外。

计算过程的能行性问题,即可计算问题就是计算学科的基本问题。在计算学科中,无论是计算模型的研究、实际计算机系统的制造、高级程序语言的设计,还是操作系统的开发,都是围绕这一问题而展开的。在可计算问题的研究过程中,通过解决一系列的具体问题,来推动计算学科的发展。

计算科学是一门自然科学,也是一门工程类科学,人们基于计算理论以工程的方法制造计算机。计算机是人造物,计算机程序也是人造物。在计算机学科领域,解决实际问题就是需要制造这一人造物,这样的人造物可能用于模拟,可能用于运算,也可能直接用于控制外部世界,其取决于实际的需要。“设计”就是依据需要来实现人造物的制作。这里,要完成正确的设计,有两个前提:一是应用需求,即设计者对客观世界进行分析与抽象,构造性地进行需求分析,并能够形式化地表达需求,以便用机械的计算方法实现之,即构造计算过程;二是计算理论,因为设计是以计算理论为基础的,是以需求为目标的。有了正确的计算模型,才会有可用的、具有自动化属性的人造物。问题求解中的计算思维过程如图2所示。

制造人造物的需求分析,是以客观世界为分析对象的。从信息视角来看,客观世界可以通过抽象方法描述成由一系列数据及关系、规律所组成的概念模型。可计算问题是计算学科研究的核心,只有可计算的问题,才能构建相应的计算模型。现实世界,通过抽象的操作和形式化的表达,形成可计算模型,也形成了相应的计算理论。

人造物和客观世界的关系是应用与验证。人造物的制造目标是应用,这是设计的原始目标,也是理论的价值所在。因此,人造物最终回到客观世界,在实际应用中体现实用价值。同理,由于人造物的功能或性能目标来源于客观世界,所以,客观世界为人造物的应用目标是否实现提供了价值判断的依据。

在以上阐述中,抽象、形式化表达、构造、自动化都是关键词,反映了计算学科的特征。

回到计算思维的讨论。思维是人脑对客观事物的一种概括的、间接的反映,它反映了客观事物的本质和规律;思维是在人的实践活动中,在感性认识,特别是表象的基础上,借助语言,以知识为中介而实现的。计算思维是人依据自己对有关计算知识的认识,通过对客观世界中的计算现象、计算需求和计算过程的分析,认识有关计算的本质与规律,形成新的知识与理论。

在计算思维的形成过程中,实践活动是计算思维的基础。通过实践活动,可以将表面现象从对客观事物的直接感知通过抽象过渡到理性认识。在一个有关计算的实践活动中,在对客观世界进行分析、制造人造物的过程中形成对计算的新认识,从而形成计算思维。这是一个反复循环的过程,是从感性到理性、从具体到抽象的过程,也是计算思维的过程。

计算思维是一种问题求解的思维,它吸取了问题求解所采用的一般的数学思维方法、现实世界中复杂的设计与评估的一般工程思维方法以及复杂性、智能、心理、人类行为理解等一般科学思维方法。尽管计算思维本身可能不是计算科学所专属,但计算思维确实是反映了用计算的手段来解决问题的思维方式。也就是说,计算思维是运用计算机基本概念去求解问题、设计系统和理解人类的行为。

● 反思:指向自动化的抽象

现实世界中有很多的人造物。能够实现计算的装置,即计算机这样一个人造物,与现实世界中其他的人造物相比较,最大的特点就是自动化,即该计算装置是具有自动化属性的,能够自动地执行预设操作。

从计算学科出发,在解决问题过程中,人们是否使用了计算思维,不能简单地以是否运用了抽象这一思维方法作为判别依据,而应该从人们思考问题是否从计算这一核心概念出发来判断,即首先判断该问题是否可计算,在可计算的前提下给出计算的确切操作步骤,最后对计算的过程与效果进行评价。

回到本文初讨论的“食物链与Scratch编程”的课例。人类无时无刻不在使用抽象的方法,不同学科都运用抽象,抽象也是思维的最基本方式。计算思维的抽象,一定是指向自动化的。理性的思维具有连续性,也具有目标性。在本课例中,如果对鹰、兔子、草三者关系的抽象,是以学习食物链原理为目标的,则显然不是计算思维的抽象。当学生得出鹰、兔子、草三者关系时,思维的延续是对食物链的思考,已经偏离了计算思维的轨迹。如果学生在已知Scratch工具实现自动化机理的基础上,梳理出“如果鹰遇到兔子,就抓兔子”“如果兔子遇到草,就吃草”这样的规则,并且还可以罗列出在显示屏上一步步地绘制“鹰抓兔子”或“兔子吃草”的操作步骤,那么,这里的抽象,是属于计算思维中的抽象。其抽象方法的运用,是为可计算判别和计算步骤构造服务的,是以自动化实现为目标的。学生在对鹰、兔子、草三者关系抽象的时候,始终是以Scratch为平台的计算环境为判别依据的。

本课例的分组拓展环节是:学生分组利用Scratch软件创设一个加入其他因素后对食物链产生影响的预期场景,用以预测相关因素的变化对食物链的影响。针对这一教学环节的学习活动,如果学生运用Scratch编制的程序,来模拟增加一个动物以后食物链的结构变化,预测食物链中相关因素的变化对食物链结构的影响,那么,這里的学生学习指向并不是计算思维,而是食物链的相关知识,计算机技术只是为学生深入理解食物链知识体系提供方便。如果学习目标是计算思维的培养,那么学生应该在已知食物链中相关因素的变化对食物链影响的有关知识基础上,运用计算学科的知识和方法,对食物链结构进行分析与抽象,设法用Scratch实现,这才是解决计算学科中的计算问题,这才涉及计算思维的培养。在这个过程中,同样要判断是否可计算,考虑如何计算,还要考虑计算的开销,最终通过程序实现预设的功能。

通过对“食物链与Scratch编程”课例的讨论,我们会得到两方面的启示:第一,计算思维是有学科背景的,忽视计算学科,对计算思维的理解会出现偏差。第二,类似于STEM的多学科学习场景,有利于培养学生的综合能力,也为计算思维的培养提供了真实场景,但如果教师对计算思维的学科理解不透彻的话,反而会削弱计算思维的教学效果。

思维具有指向性,思维是一个过程,抽象不是计算思维的全部,只有以自动化为目标,经历了从抽象、形式化表达、构造到自动化的过程,才是计算思维的实施过程。并不是所有的抽象就一定涉及计算思维,在计算学科框架下,抽象的运用可能成为计算思维的一部分。英国从原来的信息通信技术(ICT)课程转向计算(Computing)课程,在中小学开展计算思维教育,提出了五个特征:抽象、分解、评估、算法思想以及归纳。其作为计算课程框架中的抽象,一定是指向自动化的。

从计算学科视角出发,可以分析类似的问题。在项目学习中,把复杂问题分解成一个个小问题,一步一步地完成,这是问题解决的一般方法。如果对复杂问题的分解,是以这样的策略进行的——经分解的操作步骤,让一个完全不懂的人,按给定的步骤操作,也能够完成项目,并且最好是重复执行相同的操作,那么,这样的任务分解方法,可以说,有一定的计算思维属性,说明分解后的操作步骤是可机械地执行的,即可计算的。这也可以从另一个侧面说明,计算机作为计算的执行装置,只会机械地执行操作命令,是一种很“笨”的执行装置。

当然,一步一步地执行操作步骤,是计算学科实现自动化很重要的因素。但计算学科在构造自动实现的过程中,还有很多学科方法和特征,这些方法和特征同样也可以反映在计算思维之中,需要我们不断地探索与实践。坚持以计算学科视角分析计算思维,有利于认清计算思维的本质。

猜你喜欢
食物链造物兔子
长在食物链顶端的人类?
汲古怀远造物归真
物物与共,美美与共
有趣的食物链
兔子
以木造物
淘宝造物节引爆创造力的盛会 华晨宇献唱 天天兄弟PK奇葩说
守株待兔
想飞的兔子
可爱的兔子