APP下载

基于元认知支架的小学编程教学模式设计与构建

2024-01-01王洪江 罗夏斌 马桂秋 廖晓玲 叶思思

数字教育 2024年5期
关键词:编程教学教学模式

摘 要:智能时代来临,儿童编程教育开始普及。然而,当前多数编程教学模式预设固定操作路径,忽视学生“如何学”,学生缺乏独立探索契机。如何引导学生学习编程已成为当前小学编程教学亟须解决的重要问题。有研究表明,元认知能力可助力编程调控与反思,能有效促进编程学习。因此,该研究将元认知支架引入编程教学,根据编程的问题解决过程对元认知支架进行具体分类与设计,构建了基于元认知支架的小学python编程教学模式并应用于具体教学中,最后通过数据分析发现,该教学模式的实施显著提高了学生的元认知能力和学业成绩。该研究探索了将元认知支架与编程教学相融合的实践途径,以期丰富元认知编程教学方式,为小学教师引导学生学会编程提供参考案例。

关键词:元认知支架;编程教学;教学模式;小学python课程

中图分类号:G4 文献标志码:A 文章编号:2096-0062(2024)05-0060-10

收稿日期:2023-04-22

基金项目:2023年度广东省哲学社会科学规划学科共建项目(GD23XJY56);2023年度广东省教育科学规划课题(高等教育专项)(2023GXJK270)

作者简介:王洪江(1977— ),男,浙江绍兴人,博士,教授、硕士生导师,研究方向为在线教学理论、人工智能教育应用;罗夏斌(1997— ),男,广西陆川人,硕士,研究方向为少儿编程教育;马桂秋(1999— ),男,广东汕头人,硕士,主要研究方向为在线协作学习、人工智能教育应用,系本文通信作者;廖晓玲(1998— ),女,广东云浮人,硕士,研究方向为元认知;叶思思(2001— ),女,广东河源人,硕士研究生,研究方向为人工智能教育应用。

引言

随着人工智能技术向纵深发展,编程作为实现人工智能的技术基础,对教育教学提出了更高的要求。新一代人工智能发展规划明确指出,在中小学阶段,我国将逐步开展人工智能相关课程,推广编程教育。由此可见,我国义务教育阶段对编程教育日益重视。图形化编程具有减少文本编程语法错误和操作简单等优势,适合小学生的认知发展水平,因此,通过图形化编程教学落实义务教育阶段的编程课程是当前的教育趋势。

虽然国内学者、一线教师对图形化编程教学进行了积极探索,并取得丰硕成果,但编程教学仍存在诸多不足。比如,教师在编程教学中多采用讲授演练法,往往会预设编程解题的步骤,学生机械地根据步骤完成任务和编写程序,缺乏独立探索契机。另外,教师过于关注学生的学习成果,即学生编程作品的完成度和程序结果的正确性,而忽视学生在编程过程中的自主思考。石晋阳等[1]在小学田野调查研究中发现,一些教师往往将编程教学视为“做中学”,对于“学到什么”以及思维怎样发展缺乏深入探讨。可见,当前大多数编程教学虽强调“做中学”,但忽视学生过程性思维的培养。编程实践与思维发展并非相互割裂,而是相互交接。因此,如何引导学生参与过程性编程实践,是当前编程教学亟须解决的问题。

国外相关研究指出,学习者的编程学习效果与自身的元认知能力呈正向关系,元认知能力能够助力学习者监控编程进度、反思问题解决策略的有效性。然而,编程初学者往往元认知能力不足,缺乏对问题解决过程的调节与反思,在出现错误时容易出现学习迷航[2]。对此,目前已经有相关研究关注元认知支架在编程教学中的支持作用,认为元认知支架可以引导学生进行编程调控与反思,并促进其对编程的理解。例如,詹姆斯·普拉瑟(James Prather)等[3]以问题形式提供元认知支架,帮助学生明确编程问题解决的关键步骤,有效促进学生理解编程概念和完成编程任务。保罗·丹尼(Paul Denny)等[4]发现,接受元认知支架干预的实验组学生在编程时出现的错误较少,且元认知支架有助于引导学生在编程前对程序进行计划,并在编程后进行反思。然而,目前国外学者多关注大学生群体在元认知支架支持下的编程教学,对小学生群体的相关研究较少,国内学者则鲜少从元认知视角开展编程教学的设计和实施,缺少元认知理论指导下的编程教学模式。

综上所述,针对当前小学编程教学预设固定操作路径、忽视学生过程性思考等问题,结合元认知在编程学习中发挥的作用,本研究以小学图形化python课程为例,构建基于元认知支架的小学python编程教学模式,探索将元认知支架与编程教学相融合的实践途径。

一、理论基础

(一)问题解决过程分析与启示

编程是问题解决的过程,为更好地实现元认知支架与编程教学的融合,需要问题解决过程理论的指引。达斯蒂尼·洛克萨(Dastyni Loksa)等[5]为有效地激发学习者在编程学习中的元认知意识,提出监控编程学习过程的问题解决六阶段理论,将元认知作用于理解编程思路、及时更换方案、再次理解问题等方面。基于已有研究,本研究提出编程问题解决过程,如图1所示。

编程问题解决过程可分为三阶段六步骤,各阶段之间不是单向关系,而是相互作用关系:“编程中”阶段反馈“预编程”阶段,“编程后”阶段又反馈、调整前面的“预编程”和“编程中”阶段,发挥元认知能力的监控和反思功能,及时调整方案,以确保方案顺利执行。(1)在预编程阶段,首先理解、解释问题,初步形成问题表征;其次追忆相关问题,寻找类似问题解决方案,加深问题理解;最后根据解决方案制订执行计划、分解复杂问题,在无法解决问题时,则需要再次表征问题、制订计划。(2)在编程中阶段,首先需要评估解决方案的适切性和思路的正确性,接着调动执行力实施方案,以实现预期目标。在无法解决问题时,需要回到预编程阶段,再次表征问题和更换解决方案,避免持续使用不合适的解决方案。(3)在编程后阶段,需要评估编程问题解决思路的正确性、目标达成性、计划合理性等,并根据自评、互评与师评修改方案,总结所获,以反思带动提高。

(二)元认知理论分析与启示

1.元认知结构

元认知是对认知的认知,由约翰·弗拉维尔(John Flavell)[6]首次提出,至今已形成比较系统的研究体系。对于元认知的组成部分,不同学者的研究侧重点不同,对元认知结构也有不同的理解。目前,在教育学界受到普遍认同的观点为董奇[7]提出的元认知三元结构,即包含元认知知识、元认知体验与元认知监控三部分。元认知知识包括认知主体、认知任务、认知策略,元认知体验是个体在认知过程中产生的认知与情感体验,元认知监控涵盖制订计划、执行控制、检查结果、采取补救措施四部分。

结合编程问题解决过程,可得元认知结构对编程实践的启示,包括:(1)在编程前,学生需要依据学习目标,制订计划、选择学习策略、确定问题解决方案;(2)在编程中,学生进行自我监控,及时发现存在的问题,并根据问题反馈采取补救措施,及时调整;(3)在编程后,学生需要进行自我评价与反思,以进一步培养元认知能力。

2.元认知支架内涵

元认知支架是元认知理论指导下的教学支架,通过提供元认知相关资源或提出问题等方式引导学习者计划、监控、反思和调节,被广泛应用于各学科教学领域。元认知支架能够帮助学习者明确学习目标、制订学习计划、组织学习活动、进行自我监控与评估。李英蓓等[8]在系统分析教学支架中指出,元认知支架涵盖专家示范、问题提示、同伴反馈及按步骤检索等方面,可在进度监控、阶段性反思、澄清概念以及明确需求等方面提供学习支持。例如,茅岛路子等[9]使用计划外化工具支架帮助学生制订计划、调节学习过程。

结合元认知结构启示,本研究认为在编程教学中提供的元认知支架是指引导学生在编程过程中解释问题、制订计划、调控编程进程、自我评价与反思的一系列元认知支持。

3.元认知支架表现形式与分类

元认知支架有多种表现形式,如专家范例、自我提问、提示、图表、流程图、评价量表等。在教师层面上,元认知支架主要以提示形式展现,包括提问问题、提供元认知提示等;在学生层面上,元认知支架的表现形式主要是自我监测单、项目评估表、学习情况表等,以引导学生自我监控与反思。例如,黛安娜·富兰克林(Diana Franklin)等[10]在Scratch编程教学中设计了嵌入问题的工作表,帮助学生了解编程项目的目标与主题、探索角色功能以及制订计划。

元认知支架有多种类型,目前尚未形成统一的分类标准。现有的元认知支架分类主要从元认知结构与元认知支架整体两方面进行探讨。在元认知结构上,元认知支架通常被分为定向、计划、监控和反思四种类型。在元认知支架整体上,以元认知为整体,通过问题提示支架等方式提出问题,引发认知冲突,从而加深学习者对问题的理解。

综上所述,结合编程问题解决过程、元认知结构和元认知支架理论,本研究将元认知支架分为五种类型:问题提示支架、计划支架、监控支架、调节支架和反思支架。五大支架的具体解释如下:(1)问题提示支架支持创设问题情境,提出对应问题,引导学生理解、解释问题,形成问题表征,唤醒先前图式。(2)计划支架包括选择需要的学习策略、制订编程问题解决方案、分解任务、确定所需程序等。(3)监控支架支持监控编程进程,及时检查任务分解、问题理解、内容掌握、时间安排等,确保顺利执行编程任务,达到目标。(4)调节支架支持对监控过程、交流分享中出现的问题进行调整、修正。(5)反思支架支持检查编程过程与成效,在综合评价与自我反思中以反馈带动自我提高,修正问题解决方案。

二、基于元认知支架的编程教学模式的设计与构建

(一)元认知支架设计

基于元认知支架分类,本研究将元认知支架应用分为教师提示层面与学生应用层面,从而进一步阐述元认知支架在小学python编程教学中的应用。

在教师提示层面,主要以元认知问题形式提供元认知支架,即通过提问的方式,帮助学生理解问题、制订计划、实施监控、反馈调节、评价反思,引发学生思考,调动学生的编程元认知意识,进而培养学生的元认知能力。结合编程问题解决阶段,本研究归纳总结出教师提示层面元认知支架的各部分内容及其子维度,如表1所示(见下页)。

在学生应用层面,元认知支架需要引导学生监控编程进程,避免学习迷航。本研究设计了自我提问单与学习情况表。在自我提问单中,通过问题形式引导学生监控编程学习进程,以自问自答、自问自检的方式,引发学生主动思考并监控编程进程,如表2(见下页)所示。在学习情况表中,引导学生将编程思路、学习困难及解决方案、学习反思记录下来,教师针对问题提供元认知提示与反馈,引导学生调控编程进程,如表3(见下页)所示。

(二)模式构建

为将所构建的元认知支架有效应用于编程教学,本研究结合上述设计的编程问题解决六步骤,设计了小学编程教学六环节和相应的师生活动,最终构建出基于元认知支架的编程教学模式,如图2(见下页)所示。该教学模式呈上、中、下三层分布,上层和下层为师生活动,中层为在五类元认知支架支持下的编程问题解决阶段与教学环节。该模式整体上分为三阶段、六步骤、六环节,元认知支架支持从理解问题到编程实践再到编程反思的编程全过程。

1.预编程阶段

预编程阶段主要是创设问题情境,引导学生理解问题、解释问题,能够参考类似的问题解决方案,确定编程问题解决方案,进而制订执行计划,初步形成问题表征。

(1)在创设情境环节,教师首先在课前进行学情分析,了解学生先前学习中的编程思路、学习困难、解决方案等,把握学生的实际发展水平;接着,在课堂中针对学生存在的普遍问题进行讲解;随后,结合现实生活,创设问题情境,提供问题提示支架,明确学习目标与学习任务,激发学生的学习兴趣,提高学生的目标意识。

(2)在分析旧知环节,教师引入新课知识点,并布置学习任务。通过计划支架引导学生分解任务,把大任务分解成小问题;通过问题提示支架引导学生参考类似问题的解决方案,帮助学生理解新问题,提高学生的问题意识。

(3)在确定方案环节,通过问题提示支架引导学生明确解决思路,并提供计划支架引导学生确定问题解决方案。

2.编程中阶段

编程中阶段主要是学生开展编程实践,实施自定的问题解决方案,验证当前方案的有效性,落实教学目标。在此阶段,教师需引导学生填写学习情况表、浏览自我提问单,帮助学生进行目标与任务监控、问题理解监控、编程实践监控,判断方案的执行情况和有效性。

(1)在编程实践环节,教师巡堂观察学生编程进展,了解学生编程实践情况,提供编程思路的引导,适当提供监控支架与调节支架,提示学生遇到问题时如何调整解决方案,如重新理解和解释问题、更换解决方案、重新制订计划等。在编程实践中,要发挥师生双向监控的作用,避免学生在遇到问题后出现学习迷航。

(2)在调试修正环节,根据学生所填表单中存在的不足,提供监控与调节支架引导学生自我调控,重新理解问题、修正解题思路,如重新审视解决方案、与教师和同学讨论或分享、优化程序等。在集体讨论中引导学生厘清认知矛盾,通过反馈、调节巩固所学。

3.编程后阶段

在编程后阶段主要是效果评价环节,通过学生自评、互评、师评促进编程反思。教师提供反思支架,引导学生审阅并填写表单,反思教学目标的完成度、学习计划与方法策略的合理性、解决问题与调整方案的适当性等,以调整学习活动、弥补不足。通过作品展示,引导学生对比、审视自己的解决方案,进行自我评价与反思,重新理解任务、改进问题解决方案、完善编程作品,进而通过反思推动自我提升。

三、基于元认知支架的小学python编程教学模式教学案例

(一)教学案例介绍

教学案例选自某编程教育公司的python语言入门教材第8课“绘制小雏菊”,结合“未来教室”网络平台配套的精品微课,适当增删部分内容,以符合学生的认知特点。本课的主要知识点为“圆与循环嵌套”,结合“重复执行”绘制小雏菊,可操作性强。本课的教学目标是:在知识与技能上,能够通过画圆与循环嵌套绘制小雏菊,能解释循环嵌套的编程思路;在过程与方法上,能够通过元认知支架进行编程调控与讨论交流;在情感态度与价值观上,能够强化编程监控、调节反馈的意识,并在交流讨论中解决认知冲突、培养编程兴趣。

(二)教学过程设计

“绘制小雏菊”在实验班的具体教学过程如表4(见下页)所示。

四、基于元认知支架的小学python编程教学模式应用效果分析

(一)实验设计

1.实验对象

本研究采用准实验法。实验对象为某市某小学五年级两个班的学生,共83人,其中,男生44人,女生39人;五年级(1)班为实验班(N=42人),五年级(2)班为对照班(N=41人)。实验对象掌握信息技术的基础操作;具备一定的逻辑思维能力,课中乐于发表想法;具备一定的表达能力和问题解决能力;能够进行图形化python编程的学习,已习得利用“重复执行”绘制小红花、六芒星等形状的知识和技能,对“重复执行”“旋转”等知识要领有一定的认知基础。前期问卷调查结果表明,学生间编程水平差距较小。少数学生在校外学习过编程,且接触编程的大多数学生学习过图形化编程,如编程猫Kitten,极少数学生学习过基于文本的编程,如C++,仅有个别学生学习过python。整体而言,多数学生没有学习过编程,python编程基础一致,能够保证两个班级的控制条件一致,两个班学生的编程学习水平基本上处于同一水平。

2.实验变量与假设

实验变量为编程教学模式,实验班采用基于元认知支架的编程教学模式,对照班采用“讲解—演示”的传统教学模式。为排除无关变量的干扰,两个班的教学内容、教学环境、前测水平、授课教师及进度保持一致。本研究的实验假设为:

(1)元认知支架教学模式能有效提升学生的元认知能力;

(2)元认知支架教学模式能有效提高学生的编程期末测试成绩。

3.实验内容

在了解实验学校的教学环境和学生的编程学习现状后,本研究以某编程教育公司的python语言入门教材和“未来教室”网络平台配套的python图形化精品课为参考内容,共设计10节课,每周1节课,每节课1个课时,每个课时40分钟。

4.实验过程

本研究选择小学五年级两个原始自然班作为研究对象,开展前后测对照实验。实验时间为2021年9月初至2021年12月底,持续时长为4个月。教学实验设计流程如图3所示。

在实验开始前,本研究参考雷恩·斯珀林(Rayne Sperling)等[11]针对小学三年级至五年级学生编制的元认知问卷,编制了元认知能力量表;而后结合课堂知识点和教材测试题,并参考具有多年信息技术教学经验的一线教师的意见,设计了python编程期末测试方法。在实验开始之前,进行元认知能力前测,结果显示实验组和对照组的元认知能力不存在显著性差异,符合实验条件。在实验过程中,将基于元认知支架的小学python编程教学模式融入实验班级的教学中,依据学习者的学习情况、元认知能力水平,有针对性地采取培养策略,以促进学生的编程思维与能力的发展。在实验后,分别对实验班和对照班的学生进行元认知能力后测,并进行python编程期末测试,对测试数据进行归纳、整理,进行数据统计分析,验证实验假设,得出实验结论。

(二)数据分析

1.实验前后元认知能力差异性分析

在实验班的元认知能力测试中,有效问卷为37份,问卷有效率为92.86%。由表5可知,在元认知能力实验组配对样本t检验中,元认知知识、元认知体验、元认知监控和总体元认知能力的Sig.值均小于 0.05,说明元认知能力的各个维度均存在显著性差异。因此,元认知支架教学模式对学生元认知能力有正向的显著影响,假设(1)得到有效检验。

2.实验后期末测试成绩差异性分析

在实验结束后,向实验班与对照班的学生发放Python编程期末测试题,实验班回收42份,对照班回收41份,两班的测试有效率均为100%。由表6可知,在两个班级的Python编程测试成绩统计分析中,实验班的平均分高于对照班,相差5.269分;在独立样本t 检验中,Sig.(2-tailed)=0.036lt;0.05。因此,实验班的Python编程测试成绩与对照班存在显著差异,说明元认知支架教学模式能有效提高学生的编程期末测试成绩,假设(2)得到有效检验。

五、结语

在小学人工智能课程与编程教育逐渐普及的背景下,引导学生学会编程、培养过程性思维已成为时代发展的现实需求,而元认知能力能够帮助学生在编程实践中进行计划、调控与反思,从而影响学生的编程学习过程与效果。因此,本研究根据编程问题解决过程,在元认知理论的指导下,构建了基于元认知支架的小学图形化python编程教学模式,通过具体案例描述了元认知支架如何应用于编程教学,并通过数据采集与分析发现该教学模式的实施显著提高了学生的元认知能力和编程学业成绩,为小学编程教学提供教学模式借鉴与案例参考。

参考文献

[1]石晋阳,陈刚.论儿童编程学习中反思性思维的发生[J].电化教育研究,2021,42(2):93-98.

[2]ROLL I, HOLMES N G, DAY J, et al. Evaluating metacognitive scaffolding in guided invention activities[J]. Instructional science, 2012, 40(4): 691-710.

[3]PRATHER J, PETTIT R, BECKER B A, et al. First things first: providing metacognitive scaffolding for interpreting problem prompts[C]//SIGCSE’19 Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 2019: 531-537.

[4]DENNY P, PRATHER J, BECKER B A, et al. A closer look at metacognitive scaffolding: solving test cases before programming[C]//Koli calling’19: Proceedings of the 19th koli calling international conference, on computing education research. 2019: 1-10.

[5]LOKSA D, KO A J, JERNIGAN W, et al. Programming, problem solving, and self-awareness: effects of explicit guidance[C]//Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems, 2016: 1449-1461.

[6]FLAVELL J H. Metacognitive aspects of problem solving[J].The nature of intelligence ,1976(12): 231-235.

[7]董奇.论元认知[J].北京师范大学学报,1989(1):68-74.

[8]李英蓓,迈克尔·J.汉纳芬,冯建超,等.促进学生投入的生本学习设计框架:论定向、掌握与分享[J].开放教育研究,2017,23(4):12-29.

[9]茅岛路子,稻叶昭子,滕梅芳.元认知技能模型及促进措施[J].数字教育,2017,3(2):78-85.

[10]FRANKLIN D, SALAC J, CRENSHAW Z, et al. Exploring student behavior using the TIPPamp;SEE learning strategy[C]//Proceedings of the 2020 ACM Conference on International Computing Education Research. 2020: 91-101.

[11]SPERLING R A, HOWARD B C, MILLER L A, et al. Measures of children’s knowledge and regulation of cognition[J].Contemporary educational psychology,2002, 27(1):51-79.

(责任编辑 李强)

Design and Construction of Children’s Programming Teaching Model Based on Metacognitive Scaffolding

—Taking the Python Course in Primary School as an Example

Wang Hongjiang1, Luo Xiabin2, Ma Guiqiu3, Liao Xiaoling4, Ye SiSi1

(1.School of Information Technology in Education, South China Normal University, Guangzhou, Guangdong, China 510631;

2. Shenzhen City Longgang District Shouzhen Primary School, Shenzhen, Guangdong, China 518111;

3. Dongguan Auto Technology School, Dongguan, Guangdong, China 523400;

4. Dongguan Chang An Experimental Middle School, Dongguan, Guangdong, China 523840)

Abstract: With the advent of the intelligent era, children’s programming education has become popular. However, most of the current programming teaching models preset fixed operation paths, ignoring how students learn, and thus resulting in students’ lack of independent exploration. How to guide students to learn programming is an important focus of current programming teaching. Some studies have shown that metacognition can help programming regulation and reflection, and effectively influence the programming learning process. Therefore, this study intends to introduce metacognitive scaffolding into programming teaching. Based on the problem solving process of programming, the metacognitive scaffolding is specifically classified and designed under the guidance of metacognitive theory, and the elementary school python programming teaching model based on metacognitive scaffolding is constructed and applied to specific teaching. Finally, through the data collection and analysis, it is found that the implementation of this teaching model significantly improves the metacognitive ability of students, academic performance. By exploring the practical way of integrating metacognitive scaffolding and programming teaching, this paper aims to enrich the metacognitive programming teaching method and provide reference cases for primary and secondary school teachers to guide students to learn programming.

Key words: Metacognition; Programming teaching; Teaching mode; python curriculum in primary school

猜你喜欢

编程教学教学模式
群文阅读教学模式探讨
“思”以贯之“学、练、赛、评”教学模式的实践探索
“以读带写,以写促读”教学模式的实践探索
聋校编程教学中听障学生计算思维的培养策略
核心素养下的循环结构课堂教学实践与思考
“编程教学”
网络资源辅助下的Python程序设计教学
基于奥苏贝尔理论的编程教学前端分析
“一精三多”教学模式的探索与实践
议高校软件编程教学中的目的与方法