当前位置:首页 > 专题范文>公文范文> 正文

计算思维教育实施过程中的冷思考

木木文档网 发表于:2022-10-25 15:40:04 来源:网友投稿

● 问题:计算思维教什么?

自2012年学术界正式开展中小学计算思维教育研究以来,对计算思维的概念研究在中小学信息技术课程领域逐年升温。然而,有关计算思维教育成功的案例却鲜有出现,原因是多方面的,但与现有研究与教育实践脱节不无关系。

目前的信息技术课程源于计算机课程,无论是教师还是整个课程文化,对计算机教育有着挥之不去的亲近感。从计算思维的教学实践来看,许多教师把恢复计算机原理性的教学内容简单地理解为计算思维教育。例如,有教师把高中基础模块“认识图像”的教学目标设计为“通过对课程的学习学生能够理解计算机显示图像的原理,掌握以计算机方式表述图像参数的基本方法,学会使用PS图像处理软件的相关技能,逐步养成以计算机解决问题的思维方式,即计算思维”。且不说在一堂课45分钟内能将“计算机显示图像的原理”阐述到什么程度,仅凭“逐步养成以计算机解决问题的思维方式”就认为是计算思维,则是对计算思维的简单理解。事实上,一线教师也知道计算思维教育不是简单的计算机原理教学,但苦于缺乏计算思维教育的理论指导和实践素材,在实际教学中必然会存在一些困难。

从近几年中小学计算思维教育的研究来看,研究内容主要有以下三方面:其一,以文献综述为主的计算思维发展脉络和概念梳理,提出了计算思维的逻辑能力、算法能力、递归能力、抽象能力等解决问题的能力,但却未涉及计算思维为什么要有这些能力,以及这些能力的具体表现是什么,没能直接给一线教师的教学提供指导;其二,关于计算思维对信息技术课程的影响研究,阐述的内容基本上是正面的,普遍认为“计算思维解决了信息技术课程的学科思维问题”,但很少研究计算思维对应的计算学科与信息技术的关系问题,以及落实在中小学教育的课程内容问题;其三,关于信息技术课程中计算思维的挖掘研究,认为计算思维是现有的信息技术课程的内在价值,过去没有被发现或重视,需要在信息素养培养的框架下深入挖掘,从而丰富信息技术课程的教育内涵。显然这种观点的狡辩之处在于忽视了需要替换多少课程教学内容才能满足计算思维的挖掘之需,也有意无意地改变了信息素养的内涵,其表面上是为信息技术课程的重要性增加砝码,实际上是混淆了信息技术学科和计算思维的本质。

考察上述理论研究与实践研究,它们有一个共同的特点,都是以现有的信息技术课程实施为起点,以振兴或改革信息技术课程为目标,却鲜有从计算的本质、计算学科及计算思维的视角讨论计算思维教育在基础教育中的必要性和可行性。对计算的本质及计算思维的学科渊源缺乏理解,必然会影响计算思维的实施。

● 概念:什么是计算

理解计算是研究计算思维教育的逻辑起点,那什么是计算呢?

案例1:小学学习的算术运算,例如,“2+3=5”,是一种简单的计算,是指数据在运算符的操作下,按规则进行数据变换。案例2:初中学习的函数运算,例如,“f(x)=a*sin(x+x0)+b”,如果已知a和b,把x变成了f(x),也是一种计算。对于这两种计算,都有运算的对象,即“数据”,也有操作的运算符,即“规则”,也即可以做加法或正弦函数运算。从小学开始,在数学课中学习的主要内容之一就是各种运算符规则,有了这些规则,就可以完成相应的数值计算了。

现在讨论一个稍复杂的问题。案例3:我要从华东师范大学中山北路校区到浦东金茂大厦,通过电子地图查找,得出结论:可以在金沙江路乘坐地铁3号线再换乘2号线到陆家嘴站下。从输入起始地点,到输出交通线路,这个过程也是计算。这个例子的计算与前面两个计算例子的差异主要有三方面:①计算对象的类型不同,前两个例子的计算对象是数值,所执行的是数值计算。针对案例3,输入的是地理位置,计算的结果却是地铁线路。②计算的规则不同,案例1、案例2都是数学课中学习的运算规则,包括运算符和运算顺序。案例3中所使用的操作主要是比较和判断,并且其规则并不是显性的,也就是说,其计算结果的获得过程,没有像案例1和案例2这样明显和可以理解。③计算的主体不同,案例1和案例2的主体是人,而案例3则是计算机或数字地图软件系统。从以上三个例子可以发现,计算的對象可以是具体的数,可以是一个变量x,也可以是非数值量的地理位置,这些都属于广义的数据。如果把计算对象和计算结果用符号串抽象表示的话,就是从已知的符号开始,按预定的规则,一步一步地改变符号串,经过有限步骤,最终得到一个满足预定条件的符号串的过程。

在关于计算的描述中,可以发现,有“预定的规则”“一步一步地”“有限步骤”等关键词。这些关键词在案例1、案例2中用人脑作计算时并不显得关键,因为“预定的规则”就是数学课学习的内容,肯定是“一步一步”写运算步骤,并且课堂中出现的题目肯定是可以计算的,是可以在“有限步骤”中完成计算的。在实际教学过程中,经常会出现有些学生并不按照教师教授的步骤完成计算,或跳跃,或另辟蹊径,也同样能得到正确的计算结果,而这些学生往往被教师认为是聪明或思维活跃的学生。但是,当计算主体不是人脑而是某一非人类的计算系统时,这些“关键词”就非常关键了。所谓“预定的规则”,说明是人针对特定计算预先编制的;所谓“一步一步地”,则反映了计算系统的自动化属性;所谓“有限步骤”,则说明计算系统是可以经过有限次计算完成的。

再举若干人类利用工具完成计算的例子。案例4:人们使用算盘完成计算,实际上是两个因素在起作用:一是物化的算盘,主要的作用是存储数据的中间值和最终结果;二是算盘的运算口诀,这就是运算规则。案例5:在17世纪,人们就学会了运用对数将乘法转换为加法以降低计算复杂度的方法,对数表就是计算工具,这在当时的航海和天文观察中得到了广泛的应用,随后发明的计算尺也是相同的原理。案例6:计算器是现在常用的计算工具,可以直接进行加减乘除以及更复杂的函数运算。

这三个例子与案例1一样,都是数值计算。不同的是,案例4的运算步骤是由算盘的运算口诀决定的,具有一定的机械计算属性,但计算主体还是人脑。案例5是把乘法转换成加法和查对数表,加法是计算,查表也是计算,且计算是可以根据需要转换的。而案例6中,用计算器完成加法计算,操作者是不需要知道加法规则或运算口诀的,只需要按键输入,就可以得到运算结果。因此,计算器具有一定的自动化属性,与案例4不同,使用者根本不需要知道计算器是如何完成计算的。

很累赘地叙述这些实例,只是想说明当计算的主体由人部分地甚至全部变为计算系统的时候,计算规则是如何呈现与实施的。只有当计算规则的制定与实施具有机械属性时,才可以满足自动化的要求,才涉及计算科学学科的计算思维。当计算的主体是人脑的时候,不适合讨论有关计算思维教育的问题,否则在中小学计算思维教育的主要领域应该是数学课。当计算的主体由人变为某个机械或电子系统以后,很重要的一点就是自动化和实现自动化的机制。那么如何实现自动化呢?图灵机就是一个典型的具有自动化属性的计算模型。

● 核心:计算机科学家的思维

计算思维是使用计算机解决问题的思维方式吗?关键看“使用”是什么意思。受多年来计算机应用软件操作使用教学惯性的影响,有部分人把计算思维的教学简单地理解为用计算机解决实际问题。曾看到过这样一个信息技术课的教学设计,教学生使用某种电子地图,其教学目标之一是培养学生的计算思维。

事实上,简单使用电子地图的人,是不需要计算思维的。否则使用所有电子产品都会涉及计算思维。另一方面,使用传统的纸质地图,使用者所需要的思维强度明显比使用电子地图要高。所以说,学会使用电子地图,可以说是提升信息素养,但是与培养计算思维是没有关系的。

计算思维是计算学科的学科思维。通俗地说,具备计算思维的人,应该具备能够像计算机科学家一样的思考方式。在了解了什么是计算以后,就可以分析计算机科学家是如何运用计算思维思考问题以至于解决问题的。

问题求解是计算科学的根本目的之一。计算机科学家针对一个需要用计算学科方法解决的问题时,首先思考的是对问题的抽象。建立数学模型就是通过对现实问题的观察、归纳、假设,再进行抽象,并将其转换为一个数学问题。数学模型是连接数学和实际问题的桥梁,数学是工具,解决问题是目的。建立数学模型的一般步骤是:①对问题进行观察,研究其运动变化的情况,用自然语言进行描述,初步确定总的变量及相互关系;②确定问题的所属系统、模型类型以及描述系统所用的数学工具,提出假说,假说表明了数学模型的抽象性;③对假说进行扩充和形式化,将问题用数字、图表、公式、符号表示出来,经数学的推导,得到定量或定性关系;④根据现场的实际数据统计和分析,形成数学模型。

其次思考的是問题的映射。客观世界的问题都是由实体及实体间的相互关系构成的,把客观世界的实体称为问题空间或问题对象,世界上各种事物都可以看成对象。运用计算机解决问题就是借助某种语言对计算机世界中的实体施加某种动作,以此动作的结果去映射解,将计算机中的实体称为解的空间。如果按照人们通常的思维方式来建立问题域的模型,则可以提高现实世界问题域中的软件模块化和重用性。软件开发过程就是人们使用各种计算机语言将现实世界映射到计算机世界的过程,即现实世界问题域→建立模型→编程实现→计算机世界执行求解。

再次思考的是问题求解的算法。解题过程的精确描述可以由有限的、可机械执行的、有确定结果的指令或命令构成。算法是解题过程的精确描述,它是利用计算机能够理解的语言描述解题过程,包括有限多个规则,并具有自闭的基本特性。算法代表了对问题的解,而程序则是算法在计算机上的实现。

最终,问题求解的实现是利用某种计算机语言编写该算法的程序,并输入计算机,计算机按照程序指令要求自动执行,并输出计算结果。

仍以电子地图为例,作为计算机科学家,要开发一个电子地图软件,首先,需要对现实地图进行抽象,把地图上的实际位置用坐标值表示,道路用线条表示,地图上的其他有用信息也进行相应的量化处理,以便于随后的计算。当然,也要归纳出基于电子地图的核心操作是什么。例如,物理定位、最短距离计算等操作。其次,思考是现实世界的道路信息与电子地图系统中的映射,包括实际的道路、公交线路与经抽象的坐标位置、线条形成对应关系,查找公交线路操作与电子地图系统中实际计算操作的关系等,从而可以将现实世界中有关的地图信息及操作用形式化的方法表达。最后,就是运用计算科学的方法设计相关算法,并编写相关程序代码使之实现。

当然,这里只是勾勒出一个大致的系统开发过程,实际的开发要复杂得多,但也反映出计算机科学家的思考过程,这一思考过程渗透着计算思维。这是在计算科学的层面上用计算机解决问题,或者说计算机并不解决问题,它们只是执行解决方案。

对于普通使用者来说,运用电子地图,输入起始位置和目的地位置,电子地图就可以给出参考的交通线路,或提供导航等功能。这也是应用计算机解决问题,但这一层面上的解决问题与使用是否掌握计算科学知识毫无关系,这也是电子地图开发者的目标之一。

作为计算机科学家,他也会像普通人一样使用电子地图。但如果他首次使用电子地图,或者面对一个成熟的计算机产品,一定会有一些与普通使用者不一样的、基于计算科学的、出于好奇心的思考,设想该系统的数学模型,猜测该系统的核心功能和主要算法,并通过一些参数的输入来测试与验证自己的猜想。这就是一个具有计算思维的人的特征。

● 路径:抽象、形式化表达、构造、自动化

计算思维是一种解决问题的思维。在解决问题中是否体现计算思维并不是以是否使用了计算机作为判断依据,而应该看是否运用了计算科学的学科思维和方法。使用电子地图进行交通导航并不体现计算思维,而使用程序设计的一些常用算法思想来安排日常生活,同样也则体现了计算思维。

既然计算思维是一种解决问题的思维,那么让学生体验解决问题的过程应该是培养学生的计算思维的一种路径。所以,在许多本科阶段的计算机教育中,通过运用计算科学的学科思维和方法解决问题,这是实现计算思维教育的途径之一。针对中小学生培养计算思维,显然会受到计算学科知识的制约。没有掌握很复杂的计算机原理,如何实现计算思维教育?这里还需要回到计算思维的本质。

周以真教授提出计算思维的本质是抽象(Abstraction)与自动化(Automation)。这个用2A描述的本质很规整,也反映了计算学科的基本事实,因为抽象是计算机要表达现实世界的基本手段,自动化是计算机最根本的特性。那么抽象与自动化之间是什么关系呢?

回顾一个计算机科学家解决计算问题的思考以及操作过程,需要将解决的问题抽象与归纳,抽象操作的输出就是形式化表达。例如,一伙朋友一起聚餐,最后AA制结算。对于这一问题的解决,首先需要的操作就是抽象,把每个菜的单价、聚餐的人数等要素提炼出来,而菜的色、香、味等要素则忽略,再提炼出计算的公式,即菜价求和除以人数,得出每个人的花费。这一过程就是抽象的过程,也是数学建模的过程,最后输出的公式可以用变量、数值、运算符等符号串来表达。

表达是将思维所得的成果用语言、语音、语调、表情、动作等方式反映出来的一种行为。表达以交际、传播为目的,以物、事、情、理为内容,以语言为工具,以听者、读者为接收对象。而形式化表达,则不同于日常语言,需要去除自然语言含糊多义的缺点,运用形式化的方法表达科学化、准确化、严格化,而编程就是形式化表达的一種形式。

在形式化表达中,形式化方法在数学、计算机科学、人工智能等领域得到广泛运用。它能精确地揭示各种逻辑规律,制定相应的逻辑规则,使各种理论体系更加严密,同时也能正确地训练思维,提高思维的抽象能力。

从形式化表达到自动化,其中最关键的一步就是构造。自动化是计算思维的重要属性,系统实现自动化的基本原理就是有限状态的自动化,即一步一步地执行预设的命令,完成计算。

所谓构造,就是寻求一种结构化的方法,得到一个满足已知要求的证明,并且能从此证明中,给出一个机械方法,使其经过有限步骤后,能得到满足性质的结果。简单地说,就是能够具体地给出某个满足要求的对象,或者给出某个对象的计算方法。例如,一元二次方程的求根公式,通过的求根公式,不仅能够证明是否存在实数解,还能按部就班地求出相应的解。而对应的非构造性,往往能够证明结果成立,但并不能给出获得结果的机械步骤。例如,著名的罗尔中值定理就是一种存在性证明,可以证明在指定区间内存在某一点的函数值为零,但并不能确定哪一个坐标点。在计算机科学中,构造需要解决客观世界问题到计算机解决问题空间的映射;构造需要形成问题求解的算法;构造还需要完成一条条有序的命令序列。

如果说,计算思维是一种解决问题的思维方式,那么这种思维方式形成的解决问题的方法是具有自动化属性的,或者说,是在分解成若干个有限步骤以后肯定可以实现的,或者说是构造性的。如果说计算思维的本质是抽象与自动化,那么自动化是结果,抽象是方法,抽象的目标是为了自动化,但从抽象不能直接到达自动化。抽象→形式化表达→构造→自动化,形成了计算思维的方法路径。

● 目标:体现计算思维教育的学习内容特征

计算思维是计算学科的学科思维。通俗地说,具备计算思维的人应该是具备能够像计算机科学家一样的思考方式。把人脑的计算过程表达出来,用非人脑的装置来实现计算,是一件很有挑战性的工作。计算思维一定是人脑的思维,是人脑对计算、计算规则与过程以及计算装置的概括和间接的反映。

计算思维的教育与培养,重点不是在体验自动化,而是在如何构造自动化,也就是在于抽象、形式化表达以及构造等形成自动化目标的各种环节上。在中小学开展计算思维教育,面临着学习者关于计算学科基础知识匮乏的困境。相对而言,编程学习需要的学科基础知识比较少,起点低,中小学生更容易接受,是一个适合中小学开展计算思维教育的载体。同时,在中小学开展编程学习,目前有比较多的人机交互友好的编程平台可供选择。更重要的是,程序设计是一个作品创作的过程,这个过程涵盖了“抽象→形式化表达→构造→自动化”这一形成计算思维的方法路径。

信息技术课程的发展研究与计算思维教育在中小学实施的研究,从原理而言是两条线索,有交集,但不是简单地用一条线索覆盖另一条线索。多年以来,信息技术课程的特征是以人为中心,关注的是人使用计算机,焦点是运用计算机及一系列的应用软件来构建一套解决方案。而计算机学科则是以计算为中心,关注的是计算如何通过计算机系统来落实的。计算思维教育,应该让计算成为一面“镜子”,通过对计算的认识,我们可以用一种新的思维方式理解自然世界、计算机世界以及思想。信息技术课程一旦成为中小学开展计算思维教育的主要渠道,如何让课程内容具备计算思维教育的特征就成为一个很有挑战性的课题。

推荐访问:过程中 思维 实施 计算 冷思考