利用有效失败促进计算思维发展的编程教学设计
——一项基于设计的研究

2022-04-21 07:03杜鸿羽马志强芦镜羽
开放学习研究 2022年2期
关键词:编程建构维度

杜鸿羽 马志强 芦镜羽

(1. 江南大学 江苏“互联网+教育”研究基地,江苏 无锡 214122;2. 江南大学 人文学院,江苏 无锡 214122)

一、研究背景

计算思维涉及计算机学科基本知识、实践应用方法以及问题抽象的策略,可以归纳为概念理解、实践操作和计算策略三个层面的基本内涵,是21世纪重要的核心素养(Wing, 2011; Brennan &Resnick, 2012; Grover & Pea, 2013; NRC, 2010)。编程教学能够为学生提供程序概念理解与实践操作的基本条件,是发展计算思维的有效手段(王佑镁,宛平,南希烜,柳晨晨,2021)。当前在面向计算思维发展的编程教学中,教师常常会发现一个很有趣的现象:同一名学生在不同问题情境中的判断和决策具有内在的一致性,这是计算策略作用的结果。计算策略是一种关于如何选择问题解决方法和步骤的倾向,是计算思维的直接体现,能够帮助学生整合概念理解与实践操作解决问题。然而,计算策略不是完成编程任务就可以形成的。这是因为目前的编程教学主要侧重于编程概念理解与实践操作,而计算策略作为情感态度层面的目标常常以“暗线”的形式隐含在编程教学任务中(张屹等,2021),导致师生往往容易忽视计算策略发展(Loibl, Roll, & Rummel, 2017)。有研究表明,有意义的问题解决策略的形成来自多样化问题解决方案的整合(Jonassen, 2010),如Van Gog、Paas和Van Merriënboer(2006)采用设计指令的活动发展学生计算思维,学生通过总结分析不同小组的设计方案形成计算策略。DeSchryver和 Yadav(2015)发现,编程教学可以通过提供参考案例和建议的形式,帮助学生不断获取不同路径的解决方案,发展计算思维。综合上述来看,如何在编程教学中通过学生经验整合的方式来发展计算策略成为计算思维发展研究的重要议题(康斯雅,钟柏昌,2020)。

有研究者认为,学生在任务过程中经历的失败是促进经验整合的重要契机,这可能因为学生在经历“失败的僵局状态”后,会展开自我反思,并尝试参考他人经验对任务情境进行加工,进而形成编程经验的整合(Sinha & Kapur, 2021; Schank, 1999;McNamara, 2001)。因此,开展基于有效失败理论的编程教学设计可能成为促进计算策略发展的有效途径。本研究基于有效失败理论建立了面向计算思维发展的编程教学设计原则与策略,并在实践中应用、迭代和完善。

二、面向计算思维发展的有效失败教学设计

有效失败理论的基本观点认为:知识来自学生对任务探究过程中经验的加工和建构,失败情境可能通过促进反思或问题建构的方式对学生思维发展起到重要作用(Ackermann, 2001)。有效失败教学设计的基本原理是在最初的学习中针对失败进行设计,以促进针对失败的教学和学生反思。在上述理论的基础上,本研究的设计理念主要涉及三个方面:促进学生产生有意义的失败、促进失败方案的迭代改进和促进学生通过反思完成策略学习。

(一)面向计算思维发展的有效失败教学设计原则

基于上述设计理念,本研究凝练了以下三条教学设计原则。

第一,在面向计算思维发展的编程教学中,有意义的失败情境通常来自于自身未完成的问题解决实践或不确定的答案。因此,面向计算思维发展的编程任务需要具备复杂情境和多样化问题解决路径。教学设计需要为学生提供一个高挑战性的编程任务,将问题解决阶段故意设计成会导致学生失败的情况,为学生提供机会来激活与区分先验知识和直觉的猜测,批评并改进解决复杂问题的表示和解决方法(Kapur, 2008)。这种问题情境通常是解决方案不确定性更强的劣构问题。在随后的巩固阶段,教师将在学生生成的解决方案的基础上,促进他们发现方案设计与执行中包含的计算策略。基于上述分析,凝练本研究的第一条设计原则为:设计具有高挑战度的开放性编程任务。

第二,有效失败教学设计秉持“先探索,后建构”的基本理念,倡导学生开展充分探索并形成对策略或方案的理解,以促进不同经验的交流和整合,有效失败教学设计形成了独特的环节和流程。在探究任务的问题解决过程中,学生需要经历探索、生成、整合、建构四个相互联系的环节(Kapur, 2008),即探索问题的表征方法,生成多样化的解决方案,整合并对比各种方案,建构对问题核心概念的理解,最终形成关键概念并应用于不同情境的策略与限制条件中。在前两个环节中,学生活动主要为情境探索和方案生成;后两个环节中,学生活动主要为整合对比与建构理解,整个环节可以分为探索生成、整合建构两个阶段。有效教学设计关注的核心是如何设计任务、如何支持探索生成以及如何促进整合建构。对于缺乏经验的学生而言,独自完成上述阶段的任务是不现实的。并且,在开展任务的过程中,同伴之间的交流和协作能够促进学生发现更有创造性的问题解决方案,降低高挑战任务中的挫败感,有利于学生以更加积极的心态面对任务中出现的失败并尝试改进。基于上述分析,凝练本研究的第二条设计原则为:采用协作探究支持编程方案迭代。

第三,有效失败能够促进学生思维发展的关键,是在学生经历高挑战性任务带来的失败困境和尝试改进方案的多轮迭代后,整合经验,建构计算策略。因此,面向计算思维发展的有效失败教学设计的关键环节是促进学生反思。计算策略建构的关键是基于现有经验有意识地、批判性地回顾与反思,进而达到完善和优化(Nguyen, Fernandez,Karsenti, & Charlin, 2014)。因此,计算策略建构的关键阶段是整合建构阶段,在整合不同解决方案,建构计算策略的过程中,反思是计算思维有效教学中探究经验成果向计算策略转化的关键。但学生独立撰写的反思报告常常以回忆经历和过程为主,难以对其他小组的方案形成深入理解(Plack, Driscoll,Blissett, Mckenna, & Plack, 2005),需要为其提供一种结构化的支持,才能促进其深入的、批判的反思。结构化反思通过为学生提供逐渐深入的问题,引导并促进学生从简单经验回顾转向对方法的意义与价值的思考(晋欣泉,姜强,赵蔚,2020)。基于上述分析,凝练本研究的第三条设计原则为:采用结构化反思支持编程经验整合。

综上,基于有效失败理论构建的编程教学设计初始原则如图1所示。

图1 基于有效失败理论的编程教学设计初始原则

(二)面向计算思维发展的有效失败教学设计策略

在上述原则的基础上,结合相关研究成果和发现,对三条原则对应的具体教学设计策略凝练如下。

1. 原则一:设计具有高挑战度的开放性编程任务

在完成编程任务的过程中,学生关注的重点应该是如何探索更多的解决方案以及如何对比得到更优的方案,而不是学习基本概念是什么。因此,有研究者认为高挑战性任务应该基于学生已知概念来设计,在学生探究完成后,通过提供相关问题解决案例为学生创造对比和分析不同方案的机会,促进建构计算策略(Kapur & Rummel, 2012; Li,2010)。Kafai(2012)也发现,在具有高挑战度的任务中,学生虽然掌握了任务情境中的概念,但对于如何使用概念解决问题尚不明确,于是学生在探究过程中会不断试误,以此对比不同方案的设计效果,获取关于如何决策的经验。因此,具有高挑战度的任务需要为学生构建安全的探究环境,鼓励学生积极参与。Kapur和Bielaczyc(2012)就高挑战度任务的设计从环境、参与和内容三个维度提出了设计原则:首先,建立开放、平等、促进交流的课堂环境是开展有效教学的前提;其次,在任务探究中,学生是参与的主体,需要为其提供适当的参与活动;最后,教师需要设计与学生经验相关的探究任务。在此基础上提出有效失败教学设计策略:激活与目标概念相关的先验知识,关注目标概念的表征,提供解释并细化的机会以及将关键概念重新组装。在教学实施过程中,具有高挑战度的任务让学生几乎不可避免地面对“失败的困境”,但这种失败是有意义的,在探究过程中教师的引导能够有效避免学生放弃任务的情况,而经历高挑战度任务的学生能够获得更丰富的学习经验,也更容易在相关情境中迁移(郑兰琴,黄星星,2019)。

上述研究表明,面向计算思维发展的任务设计需要具有一定挑战度,为学生提供更大的探究空间,而这种高挑战度任务的探究需要同伴协作和教师指导。因此,凝练第一条设计原则中的具体策略为:①围绕学生已知的计算概念来设计劣构任务;②为任务陷入僵局的小组提供解决方案提示;③鼓励小组成员在总结环节查看其他小组的方案。

2. 原则二:采用协作探究支持编程方案迭代

一个编程任务的探究过程包括分解、抽象、算法、调试、迭代和迁移(Hermans & Aivaloglou,2017)——将任务目标分解为更容易解决的子问题,抽象出影响判断和决策的关键信息,忽略无关信息和不必要的细节,设计算法生成具体的指令,测试指令运行结果,在迭代环节不断测试和发展更优化的算法,最后考虑如何将算法应用于更广泛的问题情境。因此,计算思维问题解决其实是一个“探究—设计—再设计”的循环,实现这个循环的关键是通过分享获得同伴的评价与他人的设计经验,并在此基础上迭代并完善作品(Kolodner et al., 2003)。这说明在高挑战度的编程任务中,开展协作探究能够为学生提供发现解决方案的机会和必要的情感支持。然而在基础教育阶段,开展同伴之间的分享与评估具有一定难度,交流和评估的机会更适合隐含在协作探究的过程中,如在小组协作的过程中,由于观点差异而对概念做出更多讨论和解释的小组在任务中收获更多(Kerrigan, Weber, &Chinn, 2021; 朱龙,胡小勇,2016)。综上,凝练第二条设计原则中的具体策略为:①建立具有理解差异的异质性小组;②促进学生调试修正设计方案。

3. 原则三:采用结构化反思支持编程经验整合

计算策略的整合与建构是计算思维发展的重要环节,也是教学设计的“重头戏”,结构化反思是促进计算策略整合的有效途径。结构化反思经典模型ALACT将反思理解为行动、回顾、发现问题、创新方法和试验五个循环过程(Korthagen & Kessels,1999)。在这样的循环过程中,反思是对行动结果的分析,分析的具体维度包括任务目标、具体行动和方法策略,这些维度构成了结构化反思问题的设计维度(Korthagen, 2001)。在面向计算思维发展的编程教学设计中,反思的目的是对比分析不同编程方案从而形成计算策略,因此,在计算思维编程教学的结构化反思题目中,任务目标是程序要实现的具体功能,具体行动是程序编写的具体内容,方法策略是对编程方案在不同情境中应用效果的思考。

Dewey(1910)认为反思的前提是对现有状态的存疑,在课堂情境中,教师具有权威性,因此当教师不提供可靠答案时,学生会对所有答案存疑,进而开始探讨和反思。反思的目标聚焦于现实结果与目标状态的差异和联系(Simon & Tzur, 2004)。对于K-12阶段的学生而言,标准化考试是他们更为熟悉的测评形式,Kyoungna、Barbara和Priya(2004)分析了在K-12阶段实施结构化反思的影响因素后发现,学生更倾向于采用标准化考试的形式进行单独反思。因此,凝练本研究的第三条原则中的具体策略为:①促进基于同伴作品的反思;②提供针对方案差异的结构化反思问题;③提供选择填答式的反思报告。

三、研究设计

(一)研究方法

本研究采用基于设计的研究方法,基于理论原型凝练设计原则与设计策略,通过应用和评价进行迭代完善,教学设计原则与策略包含设计、应用与评价三个环节,如图2所示。

图2 研究思路图

(二)研究对象

本研究在小学五年级编程课堂环境下开展实证研究,研究对象为华东地区某小学五年级编程课程中的24名学生,其中男生15人,女生9人,学生为编程课程的初学者,具备编程基本操作技能,在数学、科学等计算思维相关学科中表现无显著性差异。

(三)数据收集与处理

本研究主要考察学生任务完成度、经验整合情况和计算思维水平三个方面的变化。其中,任务完成度由学生提交的小组编程作品展示,经验整合情况通过学生反思报告及迁移任务完成度反映,计算思维水平采用Bebras试题测评。

1. 任务探究过程报告

任务探究过程报告根据作用不同分为两类,一类是推进学生探究过程的报告,包括问题分析报告、方案设计报告和故障检测报告,将学生任务过程中的观点、计划、步骤等以图文形式呈现,帮助学生清晰地规划和执行,也能够在交流分享环节帮助学生更清楚地理解他人的策略规划与方案设计。探究过程报告作为学生任务探究的支持和反思的依据,在评价阶段不做分析。另一类是用于推进学生反思的报告,为结构化反思报告。采用内容编码的方法从目标、行动和策略三个方面对学生的反思深度进行编码。编码框架根据Webb(2007)对科学学习中认知深度的层级规定,确定为5个水平层级(见表1)。

表1 反思深度编码框架

本研究共有两位编码者共同编码,经过指导、测试和校正后,编码信度达到0.918,表明两名编码者编码一致性较高,编码结果可靠。

2. 计算思维测试题

Bebras计算思维测试是由国际计算思维联盟发起,全世界60多个国家参与的计算思维专项挑战赛,测试题目的编写、评审、优化和校对由研究专家、中小学教师、教育企业人员和优秀学生代表共同参与,是世界公认的计算思维可靠测试。在每道试题的题目说明中,都包含该题目应用于不同年龄段的难度说明及试题类型说明,不同试题类型分别对应于计算思维的分解、抽象、算法、评估和概括五个维度,题目可以根据难度比例在不同应用场景中重新编制。本研究根据研究对象年龄阶段,在Ⅱ阶段中等难度至Ⅲ阶段中等难度区间内筛选试题,低中高难度占比为2:2:1,题目以文本形式呈现。根据学生答案正误判分,在教学实践前后分别开展前测和后测,通过两次测试的差异反映基于有效失败的编程教学设计对计算思维提升的效果。

3. 计算思维迁移任务

计算思维迁移任务是反映学生将计算思维应用于具体问题解决时的水平,分为良构迁移任务和劣构迁移任务,用以测试学生不同维度的计算思维。其中,良构任务具有明确的限制条件和目标结果,主要用于测试学生概念理解的水平,劣构任务用于测试学生实践操作的水平,是教学任务设计改进和迭代的直接依据。本研究参考Van Gog等(2006)的设计方法,迁移任务的设计来源于与任务主题相关的Bebras试题,为了保证良构任务和劣构任务主题的一致性,将依据同一道难度中等的试题进行改编。良构任务为具有明确限制条件的测试题目,要求学生通过计算的形式作答,以此检验学生是否理解问题情境中的主要概念。劣构任务在Bebras试题基础上补充与生活实际相关的问题情境,设计为与教学任务具有相似问题解决方法但情境不同的评价任务,考察学生在不同情境中的问题解决实践能力。

四、研究实施

(一)第一轮实施与调整

1. 设计与实施

在上述理论分析的基础上,初始教学设计原则与策略见表2。通过教学实践对策略进行应用与迭代。在三条设计原则的基础上,采用以学生探究为主的教学方法,具体教学活动分为探索生成和整合建构两个阶段。融入设计策略形成六个具体的环节:回忆生活经验、任务情境引入、协作编程探究、组间交流分享、经验总结反思与策略迁移应用。通过回忆与任务主题相关的已知概念了解任务背景信息,并明确任务目标。教师组织学生进行异质性分组,小组协作设计解决方案,协作编程验证并迭代方案。整合阶段首先在班级内分享方案和作品,结合探究经验分析方案或案例完成结构化反思报告,整合实践经验,建构策略知识,发展计算思维。最后完成良构及劣构迁移任务,以此反映策略知识建构水平。

表2 基于有效失败的编程教学设计原则与策略(初始)

根据理论框架中的原则与策略进行第一轮活动设计,活动主题为“花圃设计”,要求学生使用循环语句绘制不同形状的花圃,并划分不同花卉的种植区域。首先由学生提出个人设计思路,在教师帮助下完成异质性分组。在第一轮活动中,24名学生分为12个小组,开展协作探究编写程序,调试及完善方案,并且学生需要在规定时间内上传作品。最后学生查看其他小组作品,开展组间交流,分享小组作品,填写个人反思报告并完成迁移任务。其中,良构迁移任务是复杂图形的重复执行频次计算,劣构迁移任务要求学生策划如何重复利用同一图形组装成规定图形。

2. 评价与调整

通过兴趣度调查发现,学生积极性极高,九成以上学生表示“非常感兴趣”,但学生提交的作品显示,12个小组中仅有5个小组完成了任务,任务完成度仅为40%多。于是进一步开展了学生认知负荷的调查,发现学生认知负荷均值达到3.71,说明任务难度过高,在不影响学生探究的情况下,需要为学生提供适当的支持帮助其完成任务。分析学生迁移任务作品发现,学生良构和劣构迁移任务完成度分别达到91.6%和83.3%,学生在迁移任务中表现良好,说明尽管教学任务对学生而言难度较高,但确实有助于发展学生计算思维。对学生的反思报告进行编码和分析,结果显示,学生反思深度在三个维度的得分均值分别为0.46、1.21和0.46,说明学生整体反思深度不足,且更多关注于具体行动维度。这可能是由于整体任务完成度较低,学生难以从未完成的作品中获得经验,并且选择题形式的结构化反思题目留给学生的空间过小,不利于学生开展深层次的反思。

根据实施过程中的问题,对活动设计做出如下调整:第一,在协作探究前为学生提供多样化的参考方案;第二,将学生反思依据改为优秀学生案例;第三,将结构化反思问题改为开放性作答题目。

(二)第二轮实施与调整

1. 设计与实施

第二轮活动主题为“区间测速系统设计”,要求学生编写指令实现速度计算并判断是否超速。同样由教师将学生分为12个异质性小组,学生协作完成编程作品。在学生正式开展作品设计之前,教师首先展示了3种不同的设计思路,并给出一些可供参考的修改意见。组间交流环节由教师选择优秀小组作品进行分享,学生填写反思报告并完成迁移任务。其中,良构迁移任务是车辆平均速度计算,劣构迁移任务是搭乘公交车时,需要多次换乘并在指定时间内到达的路线规划。

2. 评价与调整

第二轮学生提交的作品显示,12个小组中有7个小组完成了任务,任务完成度接近60%,说明教师的参考方案对学生完成任务具有重要作用。分析学生反思报告,结果见表3。相较于第一轮,学生在任务目标、具体行动和策略方法三个维度的得分均显著提高,但整体得分依然偏低,且策略方法维度的得分明显低于其他两个维度,说明优秀的学生案例和开放性反思题目确实能够促进学生开展深度反思,但仍需增加策略方法维度的内容。

表3 前两轮学生反思情况对比

学生良构和劣构迁移任务完成情况较第一轮均有所下降(见表4)。经过与学生的沟通发现,由于学生对该主题很陌生,所以尽管学生已经掌握了相关编程概念和代码模块,但对于目标功能并不确定,很难完成解决方案的设计和实践,说明任务主题设计需要贴近学生的生活情境。并且在这一轮实施过程中,教师通过课堂观察发现学生对同伴方案的权威性存疑,在整合和建构过程中不愿意深入探究该方案的迁移应用价值。典型对话如:“他们这个(代码)用了这个蓝色的块,跟我们的不一样。”“那我们下次要用这个吗?”“也不用吧,他写的也不一定对。”

表4 前两轮迁移情况配对样本t检验(n=24)

根据实施过程中的问题,对活动设计做出如下调整:第一,任务主题围绕与学生学习生活紧密相关的话题设计;第二,在反思阶段同时为学生提供优秀学生案例和教师参考案例;第三,增加有关应用情境差异的结构化反思问题。

(三)第三轮实施与调整

1. 设计与实施

第三轮活动主题围绕学生生活经验开展“垃圾分类系统设计”,要求学生编写程序自动判断输入的垃圾名称为何种类别。探索生成阶段教学活动与前一轮相同,但组间交流环节包括优秀学生案例分享和教师参考案例分享。在结构化反思报告中增加了两道关于编程作品如何在具体情境中应用的问题。学生需要完成的良构迁移任务是关于小区内垃圾如何收纳的计算,劣构迁移任务是根据小区特点设计智能清扫机器人的工作程序。

2. 评价与总结

第三轮学生提交的作品显示,12个小组中有10个小组完成了任务,任务完成度超过80%,说明贴近学生生活主题的任务更有利于学生理解任务目标。但这样一来,任务主题设计具有较大的局限性,如何支持学生在较为陌生的主题下明确任务目标并开展探究依然需要探讨。学生结构化反思报告分析结果表明,学生在三个反思维度的得分分别达到2.75、1.96和2.46,说明关于应用策略的结构化反思题目能够有效提升学生在策略方法维度上的反思深度。分析学生在迁移任务中的得分发现,第三轮中学生在良构和劣构任务迁移中的得分均值分别为2.21和3.54,说明学生的迁移水平有所提升,且劣构迁移水平提升更多。

第三轮结束后对学生的计算思维水平进行了测试(见表5)。计算思维Bebras测试结果显示,在三轮教学实践前后,学生在分解、抽象和评估方面的能力显著提升,算法与概括两个维度的提升并不明显,这可能是由于这两个维度主要检测学生提炼出普适性规律并应用的能力,而小学生尚处于学习的初级阶段,很难在短时间内达到提炼规律并应用的水平。

表5 学生计算思维测试结果(n=24)

表6呈现了学生反思水平在第一轮与第三轮中的变化,可以发现,经过三轮教学,学生在任务目标、具体行动和方法策略三个维度的反思水平均显著提升,学生整合探究经验并建构计算策略的能力显著提升,说明基于有效失败理论的教学策略能够帮助学生从不同问题解决方案中获取策略知识,进而发展计算思维。

表6 学生第三轮反思水平与第一轮对照(n=24)

进一步分析第三轮较第二轮的反思水平提升情况,发现学生在任务目标维度的反思水平无显著变化,具体行动维度较第二轮有显著下降,方法策略维度则显著提升,分析结果见表7。这说明随着学生对操作方法熟悉程度的增加,对完成任务需要如何操作的关注开始减少,逐渐转向对不同解决策略的对照和分析,因此方法策略维度的反思水平有显著提升。与第二轮相比,第三轮增加了教师案例,与优秀学生案例相比,教师案例的问题解决策略的呈现更清晰,也有助于支持学生在方法策略维度中反思水平的提升。

表7 学生第三轮反思水平与第二轮对照(n=24)

五、研究结论

以往面向计算思维发展的教学设计中对计算策略的关注不足,有效失败理论为这一问题的解决提供了教学设计的新思路。研究通过梳理现阶段国内外研究成果凝练初始的设计原则及策略。在编程任务设计方面,关注任务情境设计和为学生提供的支持。在方案迭代方面,关注促进协作开展的分组策略和促进成果改进的策略。在通过反思促进经验整合方面,关注反思材料和反思呈现形式。

初始原则和策略在实证研究中开展了三轮迭代和完善,实证研究发现:第一,有效失败教学设计中的任务需要与学生的已有经验具有较为紧密的关联,否则会因学生对任务情境的不理解而造成任务难以完成。因此,任务设计不仅要围绕学生已知的计算概念,还要与生活实际相关。第二,当学生无法在自主探究中提出任何解决方案或解决方案不可行时,有效失败教学设计很难进一步发挥作用。这时,来自其他同伴的经验或教师提供的不完整的参考案例能够帮助学生找到解决问题的思路或想到新的方法。因此,在任务过程中可以鼓励学生查看其他小组的方案,并为学生提供多样化的参考案例。第三,结构化反思能够促进学生整合探究经验,形成计算策略,但是过于封闭的结构化反思问题不利于学生深层次的思考。因此,结构化反思题目需要设计适当的开放性问题。第四,在总结反思环节中,学生急于得到肯定的答案,同伴作品虽然会提供多样化的设计思路,但学生对权威性的质疑不利于反思开展。因此,总结环节中的优秀案例由教师提供并确定将更有利于深层次反思的发生。

基于上述研究结果,最终形成了任务设计、方案探究和经验整合三个方面的设计原则及其相应策略(见表8)。

表8 基于有效失败的编程教学设计原则与策略

原则一:设计具有高挑战度的开放性编程任务。高挑战度的编程任务是促进学生计算思维发展的基础,但任务主题需要与学生日常生活学习紧密相关,教师还需为学生提供多样化的参考方案以促进学生对任务目标产生多样化的理解,确保学生探究顺利开展。在探究过程中,教师需要为陷入僵局的学生提供适当的提示推进探究进程,并允许学生在总结环节查看其他小组方案来获得不同的实践经验。

原则二:采用协作探究支持编程方案迭代。计算策略的形成来自经验整合,而学生更容易从个人探究的直观经验中完成深层次的整合和建构,因此,采用异质性分组的策略能够促进学生在协作过程中探索不同方案,形成更加多样化的经验。另外,迭代是计算思维探究的关键,采用任务成果检测报告能够为学生方案迭代提供动力。

原则三:采用结构化反思支持编程经验整合。经验整合是直接指向计算策略形成的教学环节,以开放性问答形式呈现的结构化反思报告能够促进学生开展深层次反思,建构计算策略。反思报告的设计需要覆盖任务目标、具体行动和方法策略三个维度,设置关于应用情境差异的问题更容易引发学生方法策略维度的反思。在反思依据方面,同时提供优秀学生案例和教师参考案例能够很好地平衡经验多样性与权威性,有利于学生开展深层次的反思。

在基于有效失败理论开展的三轮教学实践中,相较而言,分解、抽象和评估是计算思维发展最显著的维度。另外,学生的反思深度显著提升,在学生自主探究的开放性任务中,发现不同的问题解决方案,通过反思建构不同方案的应用策略,在这一过程中,学生的主要关注点由概念和技能“是什么”转向“怎么用”的问题,发展问题解决计算策略。但算法和概括维度提升较小,这两个维度的能力均涉及提炼普适性规律的能力,且“算法”“概括”等概念在编程课程中与其他学科的概念内涵存在一定差异,低年级学生更容易在描述时使用混淆的概念。有研究发现,跨学科问题情境更有助于学生将同一名词的不同意义内涵联系起来,发展学生总结和概括普适性规律的能力(Waite, Curzon,Marsh, & Sentence, 2020)。

六、研究不足与展望

计算思维的核心是计算策略的构建,然而计算策略的培养作为高阶目标却常常在教学实践中得不到有针对性的发展。有效失败理论揭示了学生在完成任务过程中的失败对高阶思维的培养和作用,提供了计算思维教学设计的新思路。本研究基于有效失败理论凝练教学设计原则与策略,并通过三轮迭代最终得到编程课程中具有实践参考意义的教学设计原则及相应策略,对发展计算策略的编程教学设计具有借鉴意义。但是计算思维的发展需要长期培养,本研究的实验时间较短,迭代仍不够充分,在不同的具体教学应用场景中可能存在未尽之处。另外,本研究涉及的学科比较局限。教学设计原则和策略的设计与迭代均基于编程教学展开,并未针对其他与计算思维发展相关的课程,如机器人、STEM等展开研究,因此,本研究得出的教学设计原则和策略对其他学科任务设计的支持力度不够。

在未来的研究中,可以从以下几个方面开展深入研究:第一,有效失败理论对面向高阶思维或能力的教学设计研究中具有广阔的应用前景,可以对理论本身展开更加深入的挖掘和探讨。第二,对面向计算思维发展的教学设计而言,不同学段和不同学科均具有较大差异,可以扩大研究范畴,针对中学生、大学生、教师教育,以及不插电活动、机器人或跨学科项目等学段及学科开展研究,探索不同教学设计范式(周盼盼,马志强,岳芸竹,2021)。第三,在有效失败教学设计方法中融合其他教学设计方法和评价方法,如采用表现性评价方法或多模态分析方法(马志强,2021),支持更加精细、全面的教学设计和迭代。

猜你喜欢
编程建构维度
理解“第三次理论飞跃”的三个维度
情境—建构—深化—反思
编程,是一种态度
元征X-431实测:奔驰发动机编程
认识党性的五个重要维度
残酷青春中的自我建构和救赎
编程小能手
纺织机上诞生的编程
浅论诗中“史”识的四个维度
建构基于校本的听评课新文化