流程图支持下的计算思维培养实践研究

网友投稿 2019-09-27 11:42

【摘要】 当前K-12阶段的计算思维培养中缺乏一种思维加工的辅助工具,用以记录并显性化呈现学习者的思维从识别问题到形成方案的全过程。这使得教学很难深入思维发展的细节部分,做出有针对性的指导和评价,使得计算思维培养的效果存在局限。本文基于工程设计的问题解决视角,从问题识别与分解、系统抽象与方案设计优化、方案实现和问题迁移四个阶段探讨了流程图支持下的计算思维教学过程,并对来自上海某中学6—8年级的19名学生开展了一个学期的教学实践,结合流程图评价、能力前后测、作品评价、作品问答反馈四种方式,从认知和操作层面以及非认知层面对他们的计算思维发展进行评价。实验结果初步显示,学生的计算思维在流程图的支持下得到了有效提升,并且流程图得分高和流程图得分提升幅度大的学生其提升效果更加显著。

【关键词】计算思维;流程图;程序设计;问题解决;K-12;评价;人工智能;信息技术;核心素养;信息素养

摘要

引言

计算思维作为一种解决问题的重要技能(Wing, 2006),被认为是与阅读、写作、计算一样的当代学习者自我发展必备的基本素养之一(Freeman, Adams Becker, Cummins, Davis, & Hall Giesinger, 2017),也是人工智能(artificial intelligence, AI)时代的独特能力要求(王本陆, 等, 2018)。2017年7月,国务院(2017)印发的《新一代人工智能发展规划》明确了新时代下人工智能发展的战略目标以及AI人才培养的竞争焦点。这一文件的出台引发了教育界对于人工智能教学和编程教育下计算思维培养的关注,尤其是新一轮发展的落脚点由高等教育向K-12阶段的发展迁移(Bocconi, Chioccariello, Dettori, Ferrari, & Engelhardt, 2016)。

计算思维的培养强调为学习者建立一种以计算的视角和方法参与问题解决全过程的全新能力(郁晓华, 等, 2018),涉及思维加工过程在问题的识别与理解、问题的分解与重构、方案的设计与实施等多个环节的综合发展。但在以往计算思维培养模式下,学习者在解决问题时思维加工的过程往往是直接隐含在编程开发(方案的实施环节)中,不被重视、被弱化,甚至被忽略,而学习者计算思维的发展情况又是以最终的编程制品作为评价的主要依据或者是唯一的依据。由于最终的编程制品只能展现学习者思考的结果而不能呈现学习者思考的过程和变化,这种重结果轻过程的培养模式并不利于师生对计算思维发展细节的把握,也与计算思维培养的本质不符。

由此带给我们的思考是,能否引入一种思维加工的辅助工具,用以记录并显性化呈现学习者的思维从识别问题到形成方案的全过程,从而更好地帮助师生理解学习中的过程性信息,进而有针对性地加以评价和调整,使计算思维的发展回归核心本质。在本研究中,流程图就被选作这样一种计算思维加工过程的可视化承载工具。

一、

流程图作为计算思维加工过程的可视化承载工具

(一)计算思维培养中对思维加工过程的忽视

编程教学作为目前培养计算思维的最主要手段,在全世界范围内得到了广泛的实践和多元化的发展。比如,美国麻省理工学院媒体实验室(MIT Media Lab)终身幼儿园研究小组(Lifelong Kindergarten research group)开发了旨在培养计算思维的Scratch创意计算课程,该课程体系下每个学习单元中都有不同的情境和任务,学习者经过自主思考后用Scratch探索开发完成任务(王旭卿, 2014);DEVTECH研究小组设计的KIBO课程,学习者在操作动手的过程中加强对计算思维概念的理解(Sullivan, Bers, & Mihm, 2017)。Wang等(2014)提出通过有形编程工具培养计算思维,教学分为演示、练习、创造开发和访谈四个环节,学习者在有了一定的操作基础后进入创造开发环节,自主设计开发自己喜欢的作品;在Atmatzidou等(2016)提出的基于教育机器人的计算思维培养模式下,学习者在工作表的指导下以小组合作的形式由易到难掌握基本操作,开发机器人程序,培养计算思维核心能力。

然而,从工程设计的视角看(Massachusetts Department of Education, 2006),这些研究普遍把培养的重心放在方案实现的环节,教学组织上大多是从识别与理解问题直接就进入代码编程实现的阶段,缺乏对问题如何从现实转为抽象的观察和指导;在此操作中,学习者对问题进行分解和重组,进而进行系统抽象和建模,形成设计方案的思维加工过程并没有很好地被凸显出来,大多被隐没在具体的程序编写当中。

实际上,计算思维在实践运用中继承了工程思维的统筹特性(郁晓华, 等, 2018),围绕问题的解决,学习者要能发现主客体的属性以及它们之间的各种价值逻辑,并将这些关联复合在一起加以提炼抽象(王荣良, 2008),同时还要能识别和评价出最佳解决方案。培养学习者的计算思维能力并不是为了培养将来的程序员,而是要帮助他们更好地掌握解决问题的思维和方法,建立观察和理解周边世界的全新视角(Grover & Pea, 2013; 李锋,2018)。

在计算思维的核心内涵下,强调解决问题的过程更重于问题解决的结果。因此,从工程设计角度出发的计算思维教学过程应至少包括识别问题、分解问题、系统抽象、方案设计与优化、方案实现五个部分。其中,前四个部分体现了思维的加工过程,最后一个部分则呈现了思维发展的结果。程序开发只是对思维结果的一个很好的表达和呈现,而在分解重构问题、形成方案的过程中还亟须一个思维加工过程的承载工具来协助学习者进行思路的梳理和建构,记录并可视化他们解决问题过程中从现实向抽象的过渡与转变。

(二)流程图与计算思维过程的可视化

计算思维培养中思维加工过程的弱化甚至缺失,一方面是由于在教学设计当中未受到重视,另一方面是由于没有寻找到适合的思维承载工具。

在已有研究中,主要是通过访谈或调查问卷的形式呈现学习者的计算思维加工过程。比如,布伦南和瑞斯尼克(Brennan & Resnick, 2012)采用基于作品的访谈法了解学习者开发作品的过程性信息,但这种形式耗费大量时间,而且要求学生保持对开发过程的准确记忆,访谈过程中容易出现部分学习者存在表达障碍等情况;科尔克马兹等人(Korkmaz, Çakir, & Özden, 2017)通过编制量表来评价学习者计算思维技能的发展,但这种形式容易产生测验误差,对低年级学习者易造成理解困难。

思维可视化的出现,有力推动了学习者的“思维发声”,运用可视的技术手段可以将他们隐性的思维过程清晰地呈现出来(赵慧臣, 等, 2014),以协助对学习者的思维加工过程进行理解和认识。思维可视化通过丰富的图示符号展现了主题元素之间的关系逻辑和过程演绎,近年来开始逐渐纳入计算思维的培养环节之中。例如,Chen等(2015)在计算思维的培养过程中引入概念图帮助教师建构教学问题,有效提升了学习者的计算思维。Repenning等(2016)指出思维导图可以作为辅助计算思维培养的工具,将概念捕获为节点和链接,学习者通过使用思维导图可视地组织信息,支持问题表达这一概念化的过程。

在各种图示方式中,流程图以其特性更适合用于绘制解决问题的过程(刘濯源, 2014),当前编程教学实践中的应用非常多。例如,基于流程图的编程环境中将流程图直接作为一种设计工具,帮助学习者尤其是编程初学者实现系统的开发;通过减少对编程语言和语法的关注,将设计聚焦在解决问题的过程上(Crews & Ziegler, 1998; Powers, et al., 2006; Hooshyar, Ahmad, Shamshirband, Yousefi, & Horng, 2015);在正式编写代码之前,引入绘制流程图的环节,可以促进学习者理解程序的逻辑关系,提升编程的学习效果(Hu, 2003)。基于此,流程图可以很好地作为计算思维过程抽象表达的形式化工具,以有效展现问题解决的细节分解和过程演绎(Gouws, Bradshaw, & Wentworth, 2013)。此外,还可以作为一种评价工具,以考察学习者解决问题的思考过程(Chen, et al., 2017),但现有实践在流程图与计算思维的结合上并不多见。

二、

流程图支持下的计算思维培养实践

(一)计算思维在流程图中的体现

有效的培养实践扎根于对计算思维的深度理解。数十年来,诸如周以真(Wing, 2006)、美国师生创新技术体验机构(Innovative Technology Experiences for Students and Teachers,ITEST)计算思维工作组(Allan, et al., 2010)、计算机科学教师协会(Computer Science Teachers Association, CSTA)与美国教育技术协会(International Society for Technology in Education,ISTE)(2011)、美国麻省理工学院媒体实验室的布伦南和瑞斯尼克(Brennan, et al., 2012)、南安普顿大学的塞尔比等(Selby & Woollard, 2013)以及中国教育部(2018)等很多组织和研究人员都对计算思维的含义进行了不同阐释。

尽管这些阐释中关于计算思维所包含的内容和评估计算思维发展的策略不尽相同,但都普遍认为计算思维是一种关于问题解决的复合思维能力,包含计算视角下解决问题的多个要素——问题识别、问题分解、抽象、算法和逻辑等。而选择的思维承载工具只有能很好地对这些要素加以展示,才能有效呈现问题解决思维的形成与演变过程。本研究中,流程图的使用与计算思维要素间的映射关系如表1所示。

表1 计算思维要素与流程图的映射关系(杨超培, 1999; DeCaprio, 1981; Izu & Weerasinghe, 2014)

https://cdn.china-scratch.com/timg/190929/1142536350-0.jpg

(二)教学实践的设计

计算思维是一种建构性思维,需要将解决问题的思维转化为一系列计算机可以理解并执行的过程,再进一步建立可自动化处理的计算系统。从认知的角度看,计算思维与问题求解密切相关(龚静, 等, 2018),计算思维的提升依赖于持续的发现和解决问题的过程,即从一个问题开始提出解决这个问题的理论和方法。随着最初的问题解决会产生新的问题,然后提出新的解决方案,以此循环往复。这种“从问题到问题”的原则对培养学习者的计算思维能力具有一定的参考价值(Chen, et al., 2015)。

本研究中教学的开展基于工程设计的问题解决视角,围绕项目主题,使用流程图作为“思维发声”支架,聚焦于学习者的思维加工过程和方法习得。整个教学过程如图1所示。

https://cdn.china-scratch.com/timg/190929/114253C14-1.jpg

图1    流程图支持下的计算思维教学过程

1. 识别问题与分解问题

每个教学项目本质上就是蕴含在实际生活情境中的一个大的问题。教学从学习者熟悉的生活场景或现象导入,使他们能很方便地结合自身的认知经验识别出问题的主题,从而将思维加工聚焦于从情境中抽象出待解决的问题并加以分解细化。在这个过程中,学习者可借助流程图的不同等级逐渐呈现他们理解问题的层次,以及他们如何将一个大问题分解为不同粒度的问题和对象的思维过程。

2. 系统抽象与方案设计优化

学习者自主思考,由简单、基础的子问题着手,并借助流程图中的框线和符号逐渐抽象、设计问题解决的计算逻辑,最终建立起系统化的解决方案。在此过程中,虽强调学习者探索的主体作用,但教师适当的引导以及与同伴的交流互动也同样不可或缺。学习者通过反思不断更新解决问题的思路,进而不断优化自己的流程图设计,即系统的程序逻辑,发现最佳的问题解决方案。这一阶段所形成的流程图,不仅呈现了学习者抽象和优化问题解决系统的思维过程,也为下一步实现方案的具体程序开发提供指导。教师可以根据学习者绘制的流程图了解他们解决问题的思路,还可以将其作为评价学习者计算思维发展的重要依据。

3. 方案实现

学习者在绘制流程图的基础上,使用各类程序开发工具实现问题解决方案的开发,在呈现思维发展结果的同时,也验证程序逻辑的可行性和效率。学习者在完成一个子问题后,再以同样的方式进行下一个更深层次子问题的解决。通过这种问题逻辑的逐层叠加、从简单情境到复杂情境的螺旋式上升方式,最终完成整个项目问题的工程方案设计与开发。

4. 问题迁移

问题迁移是计算思维培养不可缺失的一环,是促使项目习得的思维过程和解决方法真正吸收内化进而迁移运用的一步。在每个项目结束后,通过反馈问答,学习者被要求进一步根据程序的运行结果回看流程图的计算逻辑,总结拟定的计算逻辑在实现过程中所做出的调整及其原因,同时提炼自己在项目开发过程中对解决方案的抽象过程,思考当前问题的解决模式可否应用于生活中的其他问题情境,又需要做哪些改变。

(三)教学实践的开展

1. 教学实践过程

本研究的实验对象为上海某中学6—8年级的学生,共19人(6年级5人,7年级8人,8年级6人),研究人员利用课外兴趣拓展课对他们进行了为期一个学期的流程图支持下的计算思维培养实践。在教学中,流程图作为思维过程的承载工具,对流程图的使用遵守美国国家标准化协会(American National Standards Institute, ANSI)所提出的规范,而App Inventor(一款在线Android可视化编程工具软件)作为思维结果的呈现工具。研究在项目学习前首先对参与实验的学生进行了有关流程图使用的教学,然后依次开展了涂鸦画板(4课时)、躲避障碍物(8课时)、手机通讯录(6课时)三个主题项目的教学,主题复杂度依次递增。

2. 实验评价方式及其数据处理

计算思维的能力培养涉及认知层面与操作层面。此外,Snow等人(2017)指出测评还需要从认知和非认知角度进行。基于计算思维概念的复杂多元性,单一的评价手段很难全面呈现学习者计算思维的发展情况,因此本研究借鉴以往研究中较为成熟的经验和方法,整合了流程图评价法、能力测试题(前后测法)、作品评价法和作品问答反馈分析法四种评价方式。

(1)流程图的数据

评分员在预设的标准流程图基础上分别对学生在三个项目中所绘制的流程图进行评分,每个项目满分为12分(如表2所示)。评分规则为:①流程图结构的完整性,即符号的选用是否正确,是否包含开始结束符,是否包含解决问题所必要的一些结构;②流程图结构的合理性,即所示流程逻辑是否清晰,是否能够有效地解决问题;③流程的创新性,即是否包含一些标准之外的独特设计。流程图的得分将客观反映学生计算思维的综合发展情况。

表2 评分过程案例表

https://cdn.china-scratch.com/timg/190929/1142534435-2.jpg

(2)前后测的数据

本研究参考Román-González等(2017)所编制的计算思维测试题,在教学前后分别进行了前后测。本套测试题是依靠计算的基本概念和使用编程语言的逻辑语法来制定的,由28道单选题组成,适用于5—10年级的学生,图2是翻译成中文后的计算思维测试题目示例及其说明。参照测试题自身的设置,结合本研究对计算思维的设定,测试结果将从算法、逻辑思维和抽象三个角度来客观反映学生的计算思维在认知层面的发展变化。

https://cdn.china-scratch.com/timg/190929/1142541627-3.jpg

图2 计算思维测试题题例

(3)App作品的数据

研究将学生所提交的App作品下载安装并进行试用,以获取学生作品相对于教师所要求功能的完成情况,以及学生作品中功能的拓展创新情况,从而了解学生的计算思维在操作层面的发展变化。

(4)作品反馈问答的数据

研究通过作品反馈问答收集学生对参与项目学习的自我评价,对所学问题解决的计算技术与方法的表述,以及对这些技术和方法可迁移用在学习或生活中哪些方面的思考。整理学生的这些观点或看法,可对其计算思维在教学后在解决问题策略、理解问题发散性等非认知层面的变化有所了解。

三、

流程图支持下的计算思维培养实践评价

随着三个项目的教学实践推进,流程图的得分直接映射了学生的计算思维在问题识别、问题分解、问题解决、创意拓展等方面的综合发展。研究还进一步根据学生流程图的得分对学生绘制流程图的能力水平进行了分组,再结合其他三种评价方式探究流程图支持下不同组别的学生计算思维发展的差异,以及在非认知层面的发展影响。

(一)计算思维认知和操作层面的发展评价

1. 对流程图的分析

两位评分员基于研究设定的评分细则,分别对19名学生在3个项目中绘制的流程图进行了评分。评分的斯皮尔曼相关系数分别是,项目一0.756,项目二0.743,项目三0.875,评分一致性较高。因此,可将两位评分员对每位学生评分的平均值认定为该生在该项目流程图上的最终成绩。各年级学生在三个项目上流程图的平均得分情况如表3所示。

表3 流程图得分表

https://cdn.china-scratch.com/timg/190929/1142543607-4.jpg

从表中不难看出,学生在经历了项目1和项目2的学习后,到项目3的学习时三个年级学生的流程图得分都有了明显的提升,即计算思维综合能力得到了有效发展。

2. 对前后测的分析

前后测试数据显示,无论从整体上还是分年级段,学生的计算思维后测平均成绩均高于前测。可见,经过了一学期的项目教学后,学生的计算思维能力得到了提升。将学生在三个项目中的流程图得分求平均值后与后测成绩做相关分析,皮尔森系数为0.714,呈现出显著的正相关关系,说明学生计算思维能力的提升与流程图的使用相关联。

根据流程图得分的高低,研究将学生分为高、低两组(三个流程图平均得分位于前50%和后50%),排除前后测数据无效的3人后每组8人,高分组学生主要分布在6年级、8年级,低分组主要是7年级学生。两组学生计算思维的各个维度在前后测中的差异如表4所示。在抽象、逻辑以及总成绩方面,高分组进步幅度均大于低分组,而且采用配对样本T检验可以发现高分组在这三方面的提升是显著的,即流程图绘制越好计算思维分数提升幅度越明显,说明流程图的支持能够有效促进学习者计算思维的发展。这与已有研究的观点相符,流程图能够帮助学生将他们思考问题的过程显性化呈现出来从而支持思维表达,提高学生的认知能力(赵慧臣, 等, 2014),并且流程图的使用与计算思维要素之间还存在紧密的映射关系(见表1)。所以高分组学生流程图掌握程度好,在其支持下的计算思维就能够得到更有效的提升。对于算法维度,由于前测时高分组得分已经达到较高水平,所以进步空间有限。

表4 高低分组前后测成绩差异

https://cdn.china-scratch.com/timg/190929/1142541Y6-5.jpg

3. 对学生作品的分析

在本研究中,最终有12人完整地提交了3个项目的App作品。研究发现每个项目中流程图得分高的学生其作品完成度更高,说明流程图能够帮助他们梳理思路、明确解决方案,减少直接编程带来的盲目性。此外,随着教学项目的逐步推进,越来越多的学生开始能够在作品中体现个人想法,开发拓展功能。其中,83%位于流程图高分组或流程图得分提升幅度较大组(项目三之于项目一流程图得分提升幅度位于前50%)。可见,流程图掌握好的学习者更能够自主发现情境中蕴含的问题,并能结合所学知识开发出解决该问题的功能,这也从侧面展现了流程图的引入能够使学习者利用计算工具解决问题的能力增强,促进他们计算思维的发展。

(二)计算思维非认知层面的发展影响

在作品反馈问答中,有7名学生提出习得的问题解决思维和方法可以迁移用在日常的学习和生活中(图3左上)。有2名学生明确表达课程发展了他们的逻辑思维能力,增强了他们学习数学等学科的兴趣(图3右上)。此外,还有7名学生认为在这样的教学模式下,自身在解决问题的过程中更愿意坚持和探索;有8名同学表示,面对项目学习中遇到的困难他们不会立刻求助老师和同学,而是会优先选择独立思考,自主解决(图3下)。在这些学生中,81%的人位于流程图得分高分组或流程图得分提升幅度较大组。这也进一步说明流程图支持下的计算思维培养方式的有效性,通过体验与习得解决问题的思维和方法,学习者的探索精神和自主意识有所增强。

https://cdn.china-scratch.com/timg/190929/1142553L4-6.jpg

图3 反馈问答题示例图

(三)实践中的问题探讨

当然,研究中存在不少问题。比如,学生在项目二中的流程图得分普遍偏低,一方面是因为项目二在三个项目中的算法难度相对最高,另一方面是因为没有很好地考虑学生对流程图绘制的适应过程。在学生正式熟悉流程图应用之前,需要适当地加以引导,必要时可以给出部分支架让学生以拼图的形式去建构解决问题的方案。然后,随着学生掌握程度的提高,再逐渐弱化这种引导和支持,以一种循序渐进的方式让流程图在教学中取得最好的效果。

另外,研究发现7年级学生的流程图得分相较于其他两个年级偏低,7年级60%以上的学生位于流程图得分低分组。进一步联系实践的课堂观察分析原因,发现7年级的学生更倾向于动手操作,不愿在流程图绘制上花时间,因此流程图的完成度以及完成质量都普遍不高。6年级学生对教师的信任感较强,能够按照课堂要求认真完成流程图绘制任务;8年级学生自主性和自制力逐渐增强,对于有助于自身学习的方式方法能够积极主动地贯彻实施;7年级学生在学习上处于一种被动与主动之间的临界区域,缺乏持之以恒的态度,因而导致流程图得分较低的现象。这在教学设计上带给研究者的思考是,要注意提升流程图绘制任务的趣味性以及问题粒度设置的适当性,以此吸引学生的注意力,让他们主动投入绘制流程图的环节。

四、

总结与展望

人工智能的迅速崛起正在改变世界发展的态势,而在K-12阶段加快计算思维的培养是这一态势竞争的重要一环。未来的世界需要能有效理解、应用并创造计算技术的人。我们需要具备主动而非被动地借助技术解决问题的思维和能力,这也将是未来人与人之间的重要区别(Thorson, 2018)。但在计算思维的常规培养模式下,教学过于关注程序的操作开发,强调思维的结果,而缺乏显性化呈现解决问题的思维加工过程,很难深入思维发展的细节做出针对性的指导和评价,从而局限了计算思维培养的效果。在本研究中,流程图作为一种思维发展承载工具被引入教学环节对实践具有一定的指导意义。

新方式强调学习者解决每一个问题都伴随着绘制流程图,流程图作为思维发声的工具在识别问题、分解重构问题和形成方案的过程中发挥作用,帮助学习者梳理思路,记录他们思维发展的全过程。研究初步证明了该方式能够有效促进学习者计算思维中问题识别、问题分解、抽象、算法和逻辑等维度的发展,其中对流程图得分高或得分提升幅度大的学习者的促进效果更加显著。

但该模式想要进一步推广实践还存在优化改进的空间。第一,为减轻学习者对流程图使用的不适应性,教师在问题解决过程中应适当提供部分支架以辅助学习者完成流程图绘制,帮助学习者减轻认知负荷。第二,教师要注意问题粒度设置的适当性和趣味性,以提高学习者完成任务的积极性和注意力集中度。此外,研究所采用的流程图评价法、前后测测试法、作品评价法以及反馈问答题分析法等,全面呈现了学习者计算思维的认知和操作层面以及非认知层面的发展情况,能够为实践培养中的评价环节打开新思路。

作为21世纪的必备素养,K-12阶段计算思维的培养与国家人才储备与人才竞争息息相关,但目前这一研究仍处于发展阶段(Freeman, et al., 2017),需要从不同的视角、结合不同的手段加以支持和完善。但不管怎样,只有将思维的形成与演变过程可视化,才能更好地引导和评价思维的发展。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com