郑兰琴 黄星星
[摘 要] 随着人工智能技术的迅猛发展,各地在中小学阶段相继开设了人工智能技术的相关课程。编程类课程是学习人工智能技术的基础,不少中小学已经开设了相关课程。然而,采用什么样的教学方式能够提升学习者的编程技能是研究者关注的热点。文章采用富有成效失败的协作编程策略,在小学五年级Arduino课程中开展了为期三个多月的实证研究,综合采用定性和定量研究相结合的分析方法,跟踪学习者的编程过程和结果。研究发现:富有成效失败的协作编程策略能够显著提升小学五年级学生的编程技能、编程态度和问题解决能力。
[关键词] 富有成效的失败; 协作编程; 编程技能; 编程态度; 问题解决能力
[中图分类号] G434 [文献标志码] A
[作者简介] 郑兰琴(1979—),女,山西五台人。副教授,博士,主要从事计算机支持的协作学习、学习分析技术、教学设计等研究。E-mail: bnuzhenglq@bnu.edu.cn。
一、引 言
(一)研究背景
随着信息技术的迅猛发展,以机器学习和深度学习为关键技术的人工智能技术正影响着人们的生活和学习方式,并为教育领域带来了新的发展机遇。编程技能作为实现人工智能技术的基础,日益受到各个国家的高度重视并成为基础教育的重要组成部分。2017年7月,我国国务院正式颁布《新一代人工智能发展规划》,明确指出要广泛开展人工智能科普活动,在中小学阶段设置人工智能相关课程,并且将人工智能真正写入高中课本[1]。2017年9月,教育部印发《中小学综合实践活动课程指导纲要》,也将“趣味编程入门”和“开源机器人初体验”两个模块作为“设计制作活动(信息技术)”的推荐主题[2]。
人工智能技术进课堂的主要目的是培养学生的高阶思维能力和创新能力,并提升学生的信息素养。有学者指出,小学阶段的人工智能课程应该包括编程、智能机器人等内容,初高中阶段的人工智能课程包括程序设计、算法等内容[3]。为了帮助中小学生掌握如何设计程序并进行趣味编程,以及如何创作智能机器人,选择什么样的教学方式就成为要解决的关键问题。有研究者指出,人工智能类课程应与学生的生活密切相关,应采用任务驱动式、协作学习、基于问题或融入游戏机制的教学策略,让学生切身体会人工智能的巨大效应[4]。在人工智能课程体系中,编程类课程是普遍开设的一类课程,这类课程到底采用什么样的教学策略才能取得良好的教学效果就成为研究热点。经过大量的文献和实地调研,本研究尝试探索富有成效失败的协作编程策略在小学Arduino课程中的应用效果,重点关注采用富有成效失败的协作编程策略对小学生的编程技能、编程态度和问题解决能力的影响。
(二)研究问题
根据研究目标,本研究确定以下三个研究问题:
(1)与传统的讲授式策略相比,富有成效失败的协作编程策略是否能够显著提升学习者的编程技能?
(2)与传统的讲授式策略相比,富有成效失败的协作编程策略是否能够显著改善学习者的编程态度?
(3)与传统的讲授式策略相比,富有成效失败的协作编程策略是否能够显著提升学习者的问题解决能力?
二、文献综述
(一)中小学编程教育现状及问题述评
1. 中小学编程教育现状
目前,中小学开设编程课程是传播人工智能技术的主要途径,旨在培养学生的逻辑思维和高阶思维能力以及问题解决能力。作为信息技术教育起步最早的美国,非常重视对计算机科学兴趣的培养。2015年,美国前总统奥巴马曾签署“Every Student Succeeds Act”法案,明确指出要将计算机科学视为基础学科,并尽早开展计算机科学教育[5]。2016年10月,美国制定了《K-12 计算机科学框架》(K-12 Computer Science Framework),该框架规定了五大核心概念和七项核心实践,并凸显中小学计算机科学课的重要地位,提倡加强该课程的实践性[6]。
不仅仅是美国,其他国家也相继制定相关政策并鼓励把计算机课程列为基础教育阶段的必修课。例如:英国将2014年定为“编程年”,并将计算机课程定为5—16岁学生的必修课程;日本将从2020年开始在所有的小学全面开设编程课;韩国则从2015年进行编程教育的试点,2018年编程教育全面进入中小学[7]。
2017年,我国颁布了《新一代人工智能发展规划》,各地中小学纷纷开设人工智能相关课程。在高中阶段的信息技术课程标准中,新增“模块4:人工智能初步”,该模块包括“人工智能基础”“简单人工智能模块开发”“人工智能技术的发展和应用”[8]。小学阶段,也将“算法与程序设计入门”“机器人入门”列为信息技术课程的拓展模块[3]。
2. 我国中小学编程教育存在的问题
笔者在前期的调研过程中发现,我国中小学编程教育中主要存在以下几方面的问题:
(1)从硬件环境来看,学校建设状况参差不齐,有的学校已经建设好人工智能教室、创客教室供学生使用,有的还没有起步。
(2)从软件资源来看,课程体系层次不齐,很多学校自主开发校本课程。开设什么样的人工智能类课程主要取决于教师的知识基础和兴趣。另外,市面上的编程教材质量良莠不齐,缺乏统一的规划和管理。
(3)从师资配备来看,发现师资紧缺、教师工作负担较重,教师不仅要讲授信息技术课程,還要讲授新增的人工智能方面的课程。另外,缺乏系统的教师培训,教师的编程教学能力亟待提升。
(4)从编程教学方式来看,为保证教学进度,教师在教学过程中通常采用传统的讲授式教学法,即教师直接讲解编程的知识、技能和程序设计思路及方法,学习者没有自主探究的时间和空间。
(5)从评价角度来看,教师通常只关注学生的学习结果,如学生是否制成作品、程序最终的运行效果等,重结果轻过程,忽视了“学生经历了什么”以及“学习是否发生”,学生自身也缺乏完整的解决问题的学习体验。
(6)从学生的学习方式来看,学生在编程过程中往往不能自主发现和解决问题,由于时间和精力有限,教师只能帮助部分学生排查和解决问题。同时,学生遇到一点小困难并且长时间不能解决而无法按时完成课堂任务,常常产生无助和挫败感,由此导致对编程的兴趣逐渐消失。
上述问题中,前面三类问题需要政策的支持、经费和人力的投入等才能解决,而后面三类问题则可以通过改变传统的教学方式得以解决。本研究尝试探索富有成效失败的协作编程策略,以提升学习者的编程技能、态度和问题解决能力。
(二)富有成效的失败的原理及应用现状述评
1. 概念界定及设计原理
富有成效的失败(Productive Failure)是新加坡学者Manu Kapur于2008年提出的。2008年,Manu Kapur及其研究团队在计算机支持的协作学习(Computer Supported Collaborative Learning,简称CSCL)环境中开展了第一个验证富有成效的失败的教学实验,他们发现学习者在解决问题中经历的失败对于促进学习的发生具有积极作用,于是提出了“Productive Failure”这一概念[9]。
2012年,Manu Kapur进一步对富有成效失败的教学设计模式和原理进行了详尽的阐述,主要包括两个阶段、三个设计原则和四种机制[10]。其中,两个阶段包括生成—探索阶段和巩固阶段,如图1所示;三个设计原则包括:创造解决复杂问题的学习情境、为学习者提供解释和细化问题解决方案的机会、引导学习者对比失败的问题解决方案和标准方案的机会;四种机制如图2所示。
2. 富有成效失败策略的应用研究
国内外学者采用富有成效失败的策略开展了相关研究。比如,Kennedy-Clark 采用富有成效失败的策略支持澳大利亚7—9年级的学生在多用户虚拟环境中进行科学探究,整个研究包括三个阶段:第一阶段学生参加非结构化的学习活动,第二阶段参加结构化的学习活动,第三阶段参加另外一个非结构化的学习活动,最后发现采用富有成效失败的学习策略有助于学习者解决复杂问题[11]。Pathak S A.等以新加坡十年级的学生为研究对象并分为两种情况开展研究,即一部分学生采用富有成效失败的学习策略,另一部分学生采用传统的学习策略,所有学生的任务相同即学习欧姆定律和并联电路。定性分析的结果表明,最初的失败和探索的经历为学习者提供了良好的学习机会,不仅扩大了视野,而且促进了学习者的深度投入[12]。Loibl等研究者采用富有成效失败的策略检验学习者是否能够正确进行自我评价,他们邀请240名十年级的德国学生学习变量这一概念,实验组的学生首先尝试自己解决问题、经历失败,然后再接受教师的指导,而控制组的学生在解决问题前先接受教师的讲解和指导。结果表明,采用富有成效失败策略的学生对于自身能力的感知具有更加清晰的认识,亲身经历了失败和探索后能够认识到自身能力的不足,从而取得比接受傳统教学的学习者更好的学习效果[13]。最近,还有学者采用富有成效失败的策略并结合基于项目的学习方式来考察学习者的协作问题解决技能,两个六年级的班级参与了此项研究,实验班采用富有成效失败的策略学习,控制班则没有采用,学习任务相同即探索植物的适应性问题。研究结果表明,无论在概念的理解还是小组作品方面,实验班的成绩都比控制班好,而且实验班的学习者具有更强的学习自主性[14]。
我国关于“Productive Failure”一词的中文译法尚不统一,共有三种译法:“启发性挫败”[15]、“有价值的失败”[16]、“有效失败”[17]。本文将“Productive Failure”理解为“富有成效的失败”。国内学者也采用富有成效的失败开展了相关研究。比如,探索如何在翻转课堂中利用启发性挫败进行教学设计[15]。还有研究者把有效失败作为学习活动的设计理念,支持八年级学生在生物课中利用虚拟3D星球开展科学探究[18]。也有研究者基于设计的研究范式并采用有效失败理论作为指导,在初一年级的编程课中“循环结构”这一个单元通过三轮迭代并经过三周的尝试,发现有效失败的脚手架设计能够与学习者的已有知识相匹配并提升学习效果[19]。
通过对已有研究的回顾和分析,笔者发现存在三方面的问题:第一,鲜有研究采用富有成效失败的策略在小学生的编程课中开展实证研究并论证其效果;第二,已有的研究通常引导学习者自主探索,较少开展协作学习以鼓励与同伴一起探索,并体验失败进而走向成功;第三,现有研究大多采用基于设计的研究范式通过多轮迭代的方式开展研究,较少有研究通过实证研究的范式对比富有成效的协作编程策略与传统策略的差异。基于以上问题,本研究通过准实验的方法在小学五年级开展为期三个多月的实证研究,采用定性和定量研究相结合的方法,对比不同教学策略对学习者编程技能、态度和问题解决能力方面的影响。
三、研究设计
(一)研究样本
本研究选取北京某小学五年级的56名学生作为研究样本,这些学生通过学校兴趣班的方式进行招募。随机分配所有学生在两个班级进行学习,每个班级28人。由于部分学生在教学活动中未能全程参加,因此,最后全程参与的学生共计42名,每个班级21名。
(二)研究方法
本研究采用准实验法开展研究,随机分配21名学生为实验班,另外21名学生在控制班。实验班采用富有成效失败的协作编程策略开展教学活动,而控制班则采用传统讲授式的方法开展教学活动。
在数据的搜集和分析方法方面,本研究选取定量研究和定性研究相结合的方法。其中,定量研究主要采用调查法来了解学习者的编程态度和问题解决能力,定性研究主要采用访谈法来了解学习者在编程过程中遇到的失败以及解决策略等。另外,采用统计分析方法来检验两个班级在编程技能、编程态度以及问题解决能力方面的差异。
(三)研究假设
本研究建立如下三个假设:
(1)基于富有成效失败的协作编程策略能够显著提升学习者的编程技能;
(2)基于富有成效失败的协作编程策略能够显著提升学习者的编程态度;
(3)基于富有成效失败的协作编程策略能够显著提升学习者的问题解决能力。
(四)研究程序
本研究的程序如图3所示,主要包括三个阶段:第一个阶段,针对学习者的编程技能、编程态度和问题解决能力进行前测,从而确保两个班级在编程技能、编程态度、问题解决能力方面具有相同的水平。此外,还对学习者进行Arduino编程工具的培训。第二个阶段,开展实验阶段。为了控制各种干扰因素,两个班级的学习任务、学习时长、教师、学习资源等均相同。所不同的是实验班采用富有成效失败的协作编程策略开展教学,控制班则采用传统的讲授式进行教学。就实验班的学生而言,首先,学习者以小组协作学习的方式自主探索,进行初次编程实践,体验失败;其次,每个小组分析失败的原因、提出修改方案并完成编程和调试;最后,小组分享作品并进行反思和总结。控制班学生的实施程序包括三个步骤:第一步,教师讲解相关的编程知识、方法和设计思路;第二步,学习者自己编写程序;第三步,学生分享编程作品、教师总结。第三个阶段,就学习者的编程技能、编程态度和问题解决能力进行后测,并随机选取七名学生进行深度访谈。每个班级完成四个Arduino编程任务,每个任务实施2—3周,整体实验过程持续13周。第一个编程任务是制作模拟交通灯和智能信号灯,即首先利用LED灯完成交通灯的变换过程,然后加入按钮模块,实现黄灯闪烁,制作智能交通信号灯。第二个任务是利用LED灯设计创意台灯,然后利用乐高积木搭建创意台灯。第三个任务则利用Arduino中的套件制作坐姿提示器,当距离小于20厘米时,会自动发出声音进行提示。第四个任务是制作智能风扇,实现风扇边转动边摇头。
(五)研究工具
本研究采用的研究工具主要包括编程技能测试题目、编程态度和问题解决能力的调查问卷、学习单以及Arduino编程工具。
1. 编程技能测试题目
主要测试学生对Arduino编程技能的掌握程度。前测题目主要包括顺序结构、循环结构、函数三大模块,题目以伪代码和文本、图片相结合的方式进行呈现,适合小学生的阅读方式和认知水平,旨在测量实验班和控制班学生在编程技能方面是否存在显著性差异。后测题目主要考察学生解决实际问题的编程技能。
2. 编程态度和问题解决能力的调查问卷
编程态度问卷改编自Shim, Kwon, Lee的调查问卷,该问卷包括三个维度即编程的价值、编程的兴趣、编程的信心[20]。该问卷为五点量表,一共11个题目。问卷总体信度为0.905。问题解决能力问卷改编自Heppner等开发的调查问卷,该问卷包括三个维度即解决问题的信心、风格、情绪控制力[21],该问卷为五点量表,一共15个题目。问卷总体信度为0.794。
3. 学习单
主要为学习者提供指导,包括编程任务描述、编程要求和流程提示三部分。
4. Arduino编程工具
Arduino是一套开源的电子微控制器和编程平台,其软件部分使用类似于C语言的开发环境,硬件部分即Arduino主板则是在计算机程序的控制下,通过传感器来感知环境,并能够控制LED灯、电机等装置输出信号。
四、研究结果
(一)编程技能
编程技能测试主要衡量学习者动手编程的操作技能,包括顺序、循环、选择结构等。前测旨在了解实验班和控制班在编程技能方面的差异。根据前测结果,发现实验班和控制班在编程技能方面没有显著性差异(t=1.808,p=0.078)。因此,可以进行后续的实验。为了检验富有成效失败的协作编程策略对编程技能的影响,采用协方差分析法进一步对后测成绩进行检验。首先,需要检测是否满足协方差分析的条件,即变量是否正态分布、方差是否齐性。结果表明,后测编程技能测试成绩呈现正态分布(p=0.134>0.05),方差齐性(F=1.935,p=0.172>0.05)。因此,可以采用协方差进行分析。协方差分析的结果表明,实验班(M=70.71, SD=11.03)和控制班(M=54.29,SD=10.80)在编程技能方面具有显著性差异(F=19.75,p=0.000<0.05),并且实验班的编程技能显著高于控制班。因此,富有成效失败的协作编程策略能够显著提升学习者的编程技能。
(二)编程态度
编程的态度主要衡量学习者利用Arduino工具进行编程的兴趣和信心。前测结果表明,实验班和控制班在开展实验前的编程态度方面没有显著性差异(t=1.770,p=0.084)。然后,检测是否满足协方差分析的条件,即变量是否正态分布、方差是否齐性。结果表明,后测的态度呈现正态分布(p=0.200>0.05),方差齐性(F=2.318,p=0.136>0.05)。进一步采用协方差分析法检验富有成效失败的协作编程策略对编程态度的影响。根据统计结果,发现实验班(M=4.29,SD=0.55)和控制班(M=3.68,SD=0.75)在开展实验后的编程态度方面具有显著性差异(F=5.708,p=0.022<0.05),并且实验班的编程态度显著高于控制班。因此,富有成效失败的协作编程策略能够显著改善学习者的编程態度。
(三)问题解决能力
实验前,对两个班级学生的问题解决能力进行前测,独立样本t检验结果显示,实验班和控制班在问题解决能力方面没有显著差异(t=0.116,p=0.908> 0.05)。然后检测是否满足协方差分析的条件,即变量是否正态分布、方差是否齐性。结果表明后测的问题解决能力数值呈现正态分布(p=0.200>0.05),方差齐性(F=0.835,p=0.366>0.05)。进一步采用协方差分析法来检验富有成效失败的协作编程策略对问题解决能力的影响。研究结果表明,实验班(M=3.79,SD= 0.66)和控制班(M=3.36,SD=0.46)在开展实验之后的问题解决能力存在显著性差异(F=5.815,p=0.021<0.05),并且实验班学生的问题解决能力显著高于控制班。因此,富有成效失败的协作编程策略能够显著提升学习者的问题解决能力。
(四)访谈结果
为了探究学生在学习编程过程中的体验,本研究随机选取了7名学生进行深度访谈。根据访谈结果,学生们表示自己非常喜欢与同伴进行协作编程,从一开始讨论算法设计思路到协作解决编程过程中遇到的困难和问题,都离不开同伴的支持和帮助。各个小组的编程结果展示和分享,也开阔了他们的视野,进一步拓展了编程思路。
被访者还表示,一开始和同伴一起绘制流程图,然后组内讨论解决问题方案,最后尝试编程,这样的学习过程不仅为他们提供了充分的探索空间,而且提供了方向上的引导。与传统的教師讲授编程方案的教学方式相比,学生们更认可富有成效失败的协作编程策略,他们认为这种学习方式提供了更多的思考和探究的机会。
当被问到实际编程中遇到问题、遭遇失败后如何解决时,大多数学生保持积极乐观的态度。一般的解决方案是:首先,努力尝试自己解决,有问题时,一方面借助学习单上的引导和提示并重新对照流程图思考失败的原因,另一方面与小组其他成员讨论,寻求组内成员的帮助,而非单纯依赖于教师的直接指导。被访的学生都表示,他们非常喜欢和同伴共同解决问题的体验,因为很多问题可以通过同伴的帮助有效解决,这样的学习过程不仅增强了学生的成就感,而且从失败的经验中学生收获更多,如解决问题的迁移能力、承受挫折能力等。最后,通过教师的总结,进一步引发学生的深度思考,促使他们逐渐走向成功。
五、讨 ;论
(一)编程技能提高的原因
编程技能主要考量学生在学习编程后,对编程相关概念的理解程度以及编程实践操作的能力。实验结果表明,实验组在编程技能测试中表现更为优异,所完成的编程作品更加精致。笔者深入分析实验组编程技能能够提高的主要原因,在于富有成效失败的协作编程策略能够切实帮助学习者体验失败、解决问题、走向成功。由于实验组的学生采用富有成效失败的协作编程策略,学习者在整个编程过程中经历了两个阶段,即生成—探索阶段和巩固阶段。在生成—探索阶段,学习者通过对任务的分析,绘制流程图并与同伴一起讨论,确定初步的编程方案后尝试初次编程,这个过程中学生常常会遇到各种各样的问题,经历了不同程度的失败和挫折,这时候有的学生有放弃的苗头。为此,在教师的引导下首先与同伴进行面对面交流和讨论,能够解决一部分问题,而对于同伴也无法解决的问题则在教师的帮助下最终解决。在巩固阶段,每个小组需要认真反思失败的原因,教师引导学生对比失败的编程方案与标准方案之间的区别,从而帮助学生巩固编程技能。
在整个学习过程中,学生前期拥有充分探索和尝试的机会,由此获得丰富的学习体验,特别是经过学生自己探索而生成的编程思路和方案,更容易在其他情境下迁移和应用。已有的研究表明,学习者经过自主探究而生成的知识,记忆更加持久并且更容易迁移[22]。另外,通过与同伴的交流、教师的指导能够帮助学习者更加清晰地认识到自身编程技能的不足。已有的研究也曾指出,教师的指导和同伴的互动能够显著提升协作学习效果[23]。学习者也经历了表征问题、生成问题解决方案、尝试编程、检验解决方案的完整学习过程。与传统讲授式的教学方式相比,实验组学生对编程相关的知识和技能的理解更深刻。因此,编程技能有显著提升。
(二)编程态度改善的原因
编程态度主要考量学生在编程兴趣、信心和价值认同方面的观点。通过本研究,笔者发现,由于实验组采用富有成效失败的协作编程策略,学习者经过自主探索编程思路和方案并尝试编写程序,提升了对编程的兴趣,特别是自主发现编程问题和解决方案时,极大地增强了学习者的编程信心。另外,学习者虽然会遇到困难并经历失败,但是失败却能够促进学习者的深度反思并帮助修正错误的认知[24],而且通过同伴的帮助和教师的指导及时解决问题。因此,增强了学习者对编程价值的认同感。特别是一些女生,一开始对编程持抵触的态度,但是经过同伴的鼓励和教师的指导,特别是经过亲自探索程序设计思路并调试程序、成功创作作品的学习过程,激励了她们对编程的喜爱。
(三)问题解决能力提升的原因
本研究设计的问题源于实际生活,无论是制作智能交通灯、创意台灯,还是创作坐姿矫正器和智能风扇,与学习者的生活密切相关。因此,在一定程度上激发了学习者解决问题的兴趣。已有的研究也表明,解决真实生活中的问题能够提升问题解决技能[25]。最重要的原因在于,实验组的学生经历失败、协作解决问题,对于编程知识和技能的理解更加深刻,相比于传统教学方式而言,经历了自主探索的阶段,更容易促进记忆的保持和迁移能力,由此提升了实验组学习者的问题解决能力。
六、结 语
本研究通过为期三个多月的实证研究,探索了富有成效失败的协作编程策略对于小学五年级学生在编程技能、编程态度和问题解决能力方面的影响。实验数据表明,采用富有成效失败的协作编程策略能够显著提升小学五年级学生的编程技能、编程态度和问题解决能力。本研究也存在两方面的不足:第一,由于研究条件所限,研究样本量较小,未来研究将进一步扩大样本,并在不同学校开展实证研究,进一步论证富有成效失败的协作编程策略的效果。第二,本研究只针对小学五年级学生的Arduino课程开展实证研究,未来研究需要在其他课程并选择其他研究对象进一步探索。
经过本研究的探索,笔者建议改变传统的讲授式教学方法,改变以结果为导向的教学方式,关注学生的学习过程,并鼓励学生自主探索,为学生提供完整的学习体验,让学生体验发现问题、协作编程、探索问题解决方案、经历失败、走向成功的学习过程,从而促使学习者更加热爱编程,由此提升逻辑思维和推理能力以及创新意识。
[参考文献]
[1] 新一代人工智能发展规划[EB/OL].[2019-03-27].http://www.gov.cn/zhengce/content/2017-07/20/content_5211996.html.
[2] 中小学综合实践活动课程指导纲要[EB/OL].[2019-03-27]. http://www.moe.gov.cn/srcsite/A26/s8001/201710/t20171017_316616.html.
[3] 陈凯泉,何瑶,仲国强.人工智能视域下的信息素养内涵转型及 AI 教育目标定位——兼论基础教育阶段AI课程与教学实施路径[J].远程教育杂志,2018,36(1):61-71.
[4] 祝智庭,雷云鹤.STEM教育的国策分析与实践模式[J].电化教育研究,2018(1):75-85.
[5] 陈斌.让每个学生都成功——ESSA 与奥巴马政府的教育政策倾向[J].教育研究,2015(7):149-155.
[6] K-12 computer science framework [EB/OL]. [2016-10-20]. https://k12cs.org/.
[7] 李玉阁,刘军.国内中小学编程教育研究现状分析[J].中国现代教育装备,2018,288(8):26-29.
[8] 中华人民共和国教育部.普通高中信息技术课程标准(2017年版)[M]. 北京:人民教育出版社,2018: 26-28.
[9] KAPUR M. Productive Failure [J]. Cognition & instruction, 2008, 26(3):379-424.
[10] KAPUR M, BIELACZYC K. Designing for productive failure[J]. Journal of the learning sciences, 2012, 21(1):45-83.
[11] KENNEDY-CLAR S. Designing failure to encourage success: productive failure in a multi-user virtual environment to solve complex problems, Proceedings of EC-TEL 2009, Lecture Notes in Computer Science,2009[C]. Berlin, Heidelberg:Springer,2009.
[12] PATHAK S A, KIM B, JACOBSON M J, et al. Learning the physics of electricity: a qualitative analysis of collaborative processes involved in productive failure[J]. International journal of computer-supported collaborative learning, 2011, 6(1): 57-73.
[13] LOIBL K, RUMMEL N. Productive failure as strategy against the double curse of incompetence [J]. Learning: research and practice, 2015, 1(2): 113-121.
[14] SONG Y. Improving primary students' collaborative problem solving competency in project-based science learning with productive failure instructional design in a seamless learning environment [J]. Educational technology research and development, 2018, 66(4): 979-1008.
[15] 楊玉芹.启发性挫败的设计研究——翻转课堂的实施策略[J].中国电化教育,2014(11):111-115.
[16] 张澜,王婷.浅析课堂中“有价值的失败”的机制及设计原则[J].教学与管理,2015(18):94-96.
[17] 郭婧远.创客教育中利用有效失败促进学习的研究[D].上海:华东师范大学,2016.
[18] 曹鹭,徐光涛.利用虚拟世界及基于代理的模型学习科学探究——计算机化科学探究模型浅析[J].中国电化教育,2017(7):33-41.
[19] 刘新阳.利用有效失败的创客学习活动设计——一项探索性研究[J].中国电化教育,2018(4):82-90.
[20] SHIM J, KWON D, LEE W, et al. The effects of a robot game environment on computer programming education for elementary school students [J]. IEEE transactions on education, 2017, 60(2): 164-172.
[21] HEPPNEP P, PETERSEN C. The development and implications of a personal problem-solving inventory [J]. Journal of counseling psychology, 1982, 29(1): 66-75.
[22] KAISER I, MAYER J, MALAI D, et al. Self-generation in the context of inquiry-based learning[J]. Frontiers in psychology, 2018(9): 1-16.
[23] HSIEH Y, TSAI C. The effect of moderator's facilitative strategies on online synchronous discussions[J]. Computers in human behavior, 2012, 28(5): 1708-1716.
[24] TAWFIK A, GIABBANELLI P, HOGAN M, et al. Effects of success v failure cases on learner-learner interaction[J]. Computers & education, 2018, 118:120-132.
[25] RONG H, CHOI I. Integrating failure in case-based learning: a conceptual framework for failure classification and its instructional implications[J]. Educational technology research and development, 2019, 67(3):617-637.