元认知策略在小学结对编程教学中的应用研究
2024-01-16王洪江代小瑞廖晓玲马桂秋
王洪江 代小瑞 廖晓玲 马桂秋
(1. 华南师范大学 教育信息技术学院,广东 广州 510631;2. 广州科学城爱莎外籍人员子女学校,广东 广州 510700)
引言
在人工智能时代,中小学编程教育已逐渐成为世界各国政府培养创新型人才的国家战略,中小学校正积极开展中小学编程教育研究与实践活动,充分挖掘中小学生学习编程的价值与意义。为降低学生学习编程的认知负荷,相关学者及一线教师将结对编程的方式引入编程教学中。所谓结对编程,就是指两位程序员合作完成编程任务,其中,一人是“驾驶员”,负责操作计算机软件编写程序;另一人被称为“导航员”,负责观察指导“驾驶员”的工作,发现编程过程中存在的问题,为“驾驶员”提供指导和帮助。结对编程作为适合小学生学习编程的一种教学方式,与单独编程相比,具有明显优势,可以通过探究学习过程,培养自主学习能力,提高编程学习效果[1]。然而,在实际结对编程的教学中,教学效果可能受到学生的性格、文化背景、人格类型、学习风格、技能水平、时间管理等诸多因素的影响和制约[2],加之学生的自控能力和学习能力较差,导致结对编程学习中双方合作不紧密、学习效率低下,学习效果有待提升。
元认知策略作为自我调节学习理论中的一个重要概念,是学生对自我认知过程和结果的有效监视及控制的一种学习策略[3]。在学生进行编程时,元认知教学策略(如自我提问、自我评价等方式)能有效培养学生的元认知意识,提高学生的认知控制能力,尤其是在程序知识的理解以及编程任务的计划和监控方面,效果更加明显[4]。元认知能力在编程学习中具有重要作用,计划、选择、监控、评估和修改等元认知能力,能够帮助学生在结对合作过程中以批判性、逻辑性和创造性的方式思考问题,提高学习者个体的编程技能[5]。然而,编程初学者元认知能力较弱[6],学习和运用元认知技能都是颇为困难的[7],小学生更是如此。
因此,针对结对编程中学生结对行为有效性不足、过程性思维发展不足、结对过程中合作欠缺深度和元认知能力发展有限等问题,本研究试图将元认知策略融入结对编程过程中,构建基于元认知策略的结对编程教学模式,并开展准实验研究,以期提升小学生的元认知能力、自我控制能力及学习能力,从而优化结对编程的合作过程,提升结对编程的教学效果。
一、基于元认知策略的小学结对编程教学模式建构
1.教学模式建构依据
(1)编程教学模式
麻省理工学院图形化编程Scratch 之父米奇·雷斯尼克(Mitch Resnick)[8]提出了创新思维螺旋理论,将图形化编程学习分成了“想象—创造—游戏—分享—反思”5 个步骤,指出学生在进行编程创作的时候,首先要根据学习主题和关键知识点形成对作品的初步构想并且设计方案,然后实施计划创造编程作品,并在分享交流的过程中进行反思和优化。孙立会和周丹华[9]致力于少儿编程教学的研究,以基于设计的研究为设计原则、4P 学习法为理论基础,构建了以小学科学内容为案例的儿童编程与学科融合的教学模式,包含了定义抽象、算法设计、迭代实施和拓展延伸4个关键步骤。张晓东[10]在Scratch 教学中,运用任务驱动法创设问题情境,并基于此构建了面向计算思维培养的编程教学模式,其教学环节包括“问题提出—分析任务—思维加工—抽象建模—测试调试—内化迁移”等。
综上,研究者在进行少儿编程教学模式设计时,重视对学生自由创作环节的设定,这是符合少儿思维发展特点的。但是,当前小学编程教学模式研究缺少了对教学对象的能力水平以及认知特点的差异性考虑,在教学目标及教学活动的设计上未能很好地激发学生学习编程的信心和动机,过于重视编程学习的结果,对学生编程学习思维和问题解决能力的培养不够深入。因此,本研究在进行教学模式设计时,重点考虑教学对象的差异和结对编程的特点,以学生为中心设计问题探究环节,从而培养学生的计算思维,提升学生的问题解决能力和学习能力,提高学生对编程学习的积极性和主动性。
(2)理论依据
本研究将基于社会调节学习理论来设计小学结对编程教学模式。社会调节学习理论注重学习者之间的交流互动过程,通过小组成员对学习活动协商讨论,对学习任务和目标共同监控与调节,从而在结对合作的过程中相互促进,建构知识体系。同时,为了有效提高学习者的自我监控与调节能力,即元认知能力,本研究有意识地将元认知策略融入结对编程教学过程中,从而促使学习者之间发生有效的结对行为,产生深度的合作互动过程。有学者在分析了基于计算机支持的协作学习过程后,认为社会调节学习过程可以包括七个方面,即计划和目标设定、时间安排、小组分工、任务监督、内容监督、任务评价和内容评价[11]。本研究中,教师作为学习任务和活动的设计者与引导者,利用元认知策略把控学习者的协作学习状况,在社会调节学习过程中的任务布置、时间安排、任务与内容监督等环节给予策略性指导和针对性干预,并设置适当的讨论规则,这将有助于激发学生的发散性和创造性思维,提高学生的合作学习效率,并逐渐培养学生的元认知能力、自主学习与问题解决能力,让学生能够在没有教师监管时也能按照教学任务和要求进行高效地合作学习。
综上,本研究分析和参考了已有的元认知策略教学模式,基于社会调节学习理论,并综合编程教学实践的经验和启示,从元认知能力培养的角度出发,设计建构了基于元认知策略的小学结对编程教学模式图,将编程教学过程分成了“3 阶段-6 环节”,如图1 所示。
图1 基于元认知策略的小学结对编程教学模式
2.教学模式内涵
(1)编程前阶段
环节一:“课前预习,自我检测”。本环节体现了监控策略的应用。所谓监控策略,就是指学生在认知活动的过程中,根据认知目标及时评价、反馈自己认知活动的结果与不足。在本环节中,主要是通过学习任务单和自我提问单来实现任务监督。在课前,教师将微课教学视频及导学案上传到优幕教学平台,让学生自主学习微课视频,并且独立认真完成导学案对应的学习任务单及自我提问单,增进学生对编程学习目标、学习内容与编程过程的理解与认识。
环节二:“知识迁移,案例研习”。本环节也体现了监控策略的应用,主要是通过自我提问单来实现内容监督。教师通过提问等方式带领学生回顾上节课所学的知识点,并根据学生预习反馈的学情数据中存在的普遍性、突出性的问题与疑惑进行重点教学,学生在听课的过程中理解学习本节课的知识要点,促进知识内化,消解疑虑。
环节三:“创设情境,思维引导”。本环节的监控策略主要体现在教师创设问题情境。教师创设合适的问题情境来引起学生的学习兴趣和注意力,帮助他们明确本节课的学习任务(计划和目标设定)。学生需要围绕教学目标和编程学习重点去分析问题情境,自主探索主题,明确学习目标和学习任务,形成对编程作品的初步构想。
(2)编程中阶段
环节四:“头脑风暴,制订计划”。此环节体现了计划策略的应用。所谓计划策略,就是指在认知活动开始前,根据认知目标,计划完成目标所涉及的过程、策略、预期结果,并预估其有效性,以减少认知活动的盲目性和不合理性。本研究主要是采用了思维导图与流程图作为计划策略的实施手段。学生与结对编程的伙伴结合编程学习目标、任务要求及作品评价标准进行头脑风暴,设计思维导图以及流程图,对编程任务进行拆解,进一步明确任务分配,为正式的程序设计做好准备(小组分工)。教师可以根据学生的讨论情况提供一定的启发和指导,鼓励学生思考与表达,培养学生的创新意识与沟通能力。
环节五:“结对编程,实施计划”。该环节能充分调动学生对监控策略和调节策略的应用,培养学生发现问题和解决问题的能力。所谓调节策略,就是指学生根据对认知活动过程和结果的检查,在发现问题后,及时采取相应的补救措施进行及时修正和调整。过程记录表可以让学习者记录计划实施过程,较好地监控和调节各自的学习行为。结合小学生的性格特征,本研究总结了以下几点结对编程的具体要求:一是与对方分享自己的想法,平等交流,不要过于带入自己的学习习惯;二是尊重他人,善于倾听,避免矛盾冲突;三是双方要积极参与编程,与结对伙伴共同学习,共同完成学习任务,不要只依靠一个人;四是明确任务分配,及时进行角色互换,认真完成对应角色的学习任务;五是遇到困难和疑问,双方要合力解决,积极应对。教师根据以上5 点提前对结对编程的规则进行说明,指导学生实施结队编程过程。
编程时,学生按照结对编程的相关要求有序地展开学习活动,教师则巡堂观察,做好课堂表现记录,为学生提供必要的帮助和指导,提醒学生及时进行角色互换。学生在学习过程中要根据实际情况填写过程记录表,以监控和调节学习行为。
(3)编程后阶段
环节六:“作品展示,评价反思”。本环节主要融入评价策略。所谓评价策略,就是指依据明确的认知目标,按照一定的标准,采用科学方法,测量认知活动的过程和结果,并做出价值性的判断,为认知活动的调整提供依据。本研究主要采用作品评价表作为媒介,来实施评价策略。评价主体以学生为主、教师为辅,评价方式是形成性评价和总结性评价相结合。学生对照共同制定的编程作品评价指标以及课堂学习过程记录进行自评与互评,包括任务评价和内容评价。教师要及时引导学生回顾总结本节课所学内容,带领学生查漏补缺,巩固学习效果,根据学生能力及作品完成情况布置课外拓展作业,让学生有目的地去探究更多知识,从而培养学生的自主学习能力。
二、基于元认知策略的小学结对编程教学模式应用效果分析
1.实验设计
(1)实验对象
本研究采用准实验法。实验对象为某小学四年级的两个班级,各42 人,总计84 人。两个班的学生人数相等,男女比例大致为一比一。在学习情况方面,学生成绩水平相近,对编程学习有较为浓厚的兴趣,熟悉一些基本的编程知识点和操作;然而,在独立完成作品创作、问题解决及反思评价等更高层面的知识与能力掌握上较为欠缺,编程学习多停留在模仿教师操作和完成基本学习任务的层次。在心理特征方面,实验对象年龄大致在9 ~10 岁,思维具有一定的完整性和逻辑性,能够进行独立的、简单的思维活动,但是较难进行抽象逻辑思考,需要具体实物的支持;学生更希望采用合作探究的方式来学习,拥有更多学习的主动权和发挥空间,但学习的自主性较低,团队协作意识和能力较差,在学习过程中需要教师引导和协作互助来完成学习任务。
(2)实验假设
本研究的实验变量为元认知策略教学模式,在实验班进行基于元认知策略的结对编程教学干预,在对照班采用传统的“讲解—演示”的结对编程教学方式,两个班的教学内容、课时及教学进度保持一致,以排除无关变量的干扰。本研究的实验假设为:
假设一:元认知策略教学模式能有效提升结对编程双方的元认知能力;
假设二:元认知策略教学模式能有效培养结对编程双方的计算思维;
假设三:元认知策略教学模式能有效提高结对编程双方的学业成绩;
假设四:元认知策略教学模式能有效促进结对编程双方的合作行为。
(3)实验过程
根据学生的基本情况和学校的实际教学条件,本研究选择图形化编程工具“源码编辑器”来进行一学期的编程教学,课程教学内容来源于编程猫社区线上教学资源——“图形化编程启蒙”,以及编程猫自主编辑的教材“图形化编程入门”。教学内容涵盖程序设计的3 种基本结构(顺序结构、循环结构、选择结构),以及在这3 种结构中常用的编程积木块,此外也包含了常见的编程知识,如变量、链表等,让学生认识通过拖拽和拼接“程序积木块”来实现程序逻辑,充分发挥自己的想象力和创造力去尝试自己的编程作品创作。课程时长为12 周,分为准备篇、基础篇、进阶篇和回顾篇。
在实验开始前,本研究设计了小学生编程学习现状调查问卷、小学生元认知能力测试问卷及小学生计算思维测试题等量表开展前测调查,以了解前测学生的元认知能力和计算思维水平,结果显示实验组和对照组的元认知能力、计算思维水平不存在显著性差异,符合实验条件。
在实验过程中,本研究将基于元认知策略的小学结对编程教学模式融入实验班级的教学中,依据学习者的学习情况、元认知能力和计算思维水平,针对性地采取培养策略促进学生的编程思维与能力的发展,包括了元认知策略教学模型中提出的具体教学举措。教师在教学过程中,做好研究规划,观察和记录学生表现,及时引导学生,根据培养目标和要求灵活地将元认知策略融入结对编程教学中,从而来规避以往编程教学中存在的问题,验证编程教学中元认知策略的有效性。在对照班中,采用传统的教学模式开展教学,按照以教师为中心、“讲解—演示”教学方式的一般流程设计和开展学习活动,包含“新课导入、讲解新知、结对编程和总结评价”4 个环节,同时保证教学时长、教学内容和项目作品等方面的一致性,遵循对照实验的相关要求。
在实验结束后,分别向实验班和对照班的学生发放小学生元认知能力水平测试、小学生计算思维测试题(后测)和图形化编程学习测试题进行实验后测,以及对学生和教师进行元认知策略教学的反馈调查和访谈,检验元认知策略在结对编程中的教学效果,并对其做进一步的优化和改进。
2. 数据分析
对通过问卷收集到的元认知能力、计算思维、学业成绩等数据进行组间和组内分析。组间分析采用独立样本t检验,组内分析采用配对样本t检验。分析结果如表1 和表2 所示。
表1 实验组-配对样本t 检验
(1)实验前后元认知能力的分析
由表1 可知,在经过教学实验后,实验班的学生的元认知能力与实验前相比有显著提升,且在元认知能力的3 个维度(元认知知识、元认知体验、元认知监控)的测量结果显示,学生的元认知监控能力提升幅度最大,较实验前增长了5.833 分。说明元认知策略中的计划、监控与调节、评价等策略的教学运用对学生的元认知监控能力的提升有较为直接和显著的影响。这也间接帮助学生有效获取元认知知识,提高学生的元认知体验,增强学生对编程学习的兴趣和信心。
如表2 所示,在对实验班和对照班的元认知能力后测数据进行独立样本t检验后,其Sig.值为0.005(<0.05),说明二者得分存在显示差异。
综上,元认知策略教学模式对学生元认知能力有正向的显著影响,假设一得到有效检验。
(2)实验前后计算思维的分析
由表1 可知,实验班的学生的计算思维测试成绩的均值在教学干预后提高了6.429 分,经过对实验组进行配对样本t检验,其Sig.值为0.000,小于0.05,说明经过元认知相关训练后,学生的计算思维有了显著的提升。同时,实验班以及对照班的后测成绩的独立样本t检验的Sig.值为0.025(<0.05),说明实验班和对照班的学生的计算思维成绩在教学实验后存在显著的差异,元认知策略教学模式在结对编程中的应用能有效提升学生的计算思维水平,假设二得到有效检验。
(3)实验前后学业成绩的分析
为了了解在不同的教学模式下开展编程教学实践活动对学生的编程学习效果的影响,在教学实验结束后,对学生进行编程学习评估测试,满分100 分。由表2 可知,在后测的编程学习测试中两个班级出现了显著差异,实验班的学业成绩要明显优于对照班。并且从实验班学生的编程作品分析可以看出,在基于元认知教学策略开展结对编程教学中,学生的编程作品代码质量更高,学生对编程知识的理解更加深入和透彻,编程操作能力更强。概言之,实验班的学生的编程学习测试成绩及编程作品质量总体上要优于应用传统教学模式开展结对编程教学的对照班。
综上,元认知策略教学模式能有效促进结对编程双方的学业成绩,假设三得到有效检验。
(4)实验前后合作行为的随堂观察分析和访谈分析
本研究对学生的过程记录表以及指导教师的随堂观察结果进行分析,发现采用元认知策略教学的实验班学生在结对合作过程中的表现要明显优于对照班的学生,实验班学生任务分工明确、学习投入度和效率更高,结对合作更加紧密。实验班的学生因为在编程方案设计环节对要完成的编程作品有更加清晰和具体的任务分工,所以在合作过程中会更加有意识地去承担各自的角色职责。在编程过程中,学生会相互监督、提醒和帮助,积极参与到学习活动中,形成共同努力完成编程作品的合作意识,有效地避免了结对中一方“搭便车”的现象,因而实验班学生在学习过程中学习纪律和氛围更好,完成学习任务的效率更高。对照班的学生采用的是传统的“讲授—演示”的结对编程教学模式,编程学习过程是以教师为主体的,这导致学生在编程学习活动中的参与度较低。同时,由于没有元认知策略的指导,学生在结对编程的过程中存在一些问题,如学生会因为想法不同且没能达成统一认识而争论,气氛不够和谐,最终导致双方各自行事,放弃结对合作;或者其中能力较弱的一方被能力强的另一方主导,被主导方学习的参与度不高,出现“搭便车”的情况。
另外,本研究还针对学生的合作情况做了访谈,主要包括以下问题:“在上过老师的课之后,你会更加愿意和同学合作来解决问题吗?会更好地与同学相处吗?在结对编程的过程中,你能明确自己和同伴的角色和职责吗?你认同你和同学都很重要吗?”访谈结果表明,学生认为在结对编程中有了学习任务单和观察记录表,可以帮助他们更好地实施角色互换,明确不同角色的任务分配;同时,同伴的帮助能够使他们更快地发现编程上的失误,并和同伴共同解决,这让学生充分体验到结对中彼此角色的重要性,从而更加主动地深度参与协作过程。
综上,元认知策略教学模式能有效促进结对编程双方的合作行为,假设四得到有效检验。
(5)实验过程元认知策略使用情况分析
为了解元认知策略在学生结对编程过程中如何具体发挥调控作用,本研究对实验班学生进行了元认知策略应用的反馈调查,以研究计划、监控调节和反思评价三种策略对学生结对编程活动的影响。如表3 所示,学生在计划策略、监控调节策略以及评价反思策略三方面的平均得分均大于3,说明实验班学生对元认知策略教学应用的反馈基本上是“同意”及以上,认为元认知策略对结对编程学习活动具有一定的调节指导和提升促进作用,有利于学生的结对编程学习。其中,学生对监控调节策略的认可度最高,认为该策略能让学生更加明确学习重点、促进结对合作、关注问题解决以及作品优化提升,这也与元认知能力后测中学生的元认知监控能力提升最高的结果一致,验证了本研究提出的元认知策略能有效弥补传统结对编程过程中存在的合作不够深入以及学习效率低下等不足。
表3 元认知策略使用的满意度分析
三、总结与讨论
本研究首先将元认知理论融入小学的结对编程教学中,建构了基于元认知策略的小学结对编程教学模式;其次采用准实验研究方法,将完善后的教学模式应用到教学中,验证了该教学模式的可行性和有效性;最后通过数据采集与分析,发现该教学模式的实施显著提高了学生的元认知能力、计算思维、学业成绩、课程表现。
1.元认知能力
结对编程被认为是增加元认知活动和提高解决问题能力的有效方法,学生们通过与搭档的交流来解决问题,一起检测和纠正错误,互相帮助学习代码调试的过程。周迎春[12]认为组内成员讨论有助于学习者反思自身观点,从而有利于学习者自我监控、调节,这也有利于学生元认知能力的培养。由此可猜测,在本研究提出的教学模式中,“结对合作,编程调试”以及过程记录表的使用有利于提高学生的元认知监控和元认知调节,从而提高元认知能力。另外,有研究指出,教学中的作品展示和评价也有助于提高元认知能力[13]。由此可推测,本研究提出的教学模式中“作品展示,评价反思”及作品评价表的使用有利于提高学生的元认知能力。
2.计算思维
本研究发现基于元认知理论的结对编程有利于提高计算思维,这与一些学者的研究结果相一致。有研究认为,学生的认知水平与计算思维有着紧密联系,提高学生的计算思维有助于学生在更为复杂的认知活动中产生更多的认知行为和思考活动,而结对编程能帮助学生从简单的认知任务和思维活动开始,让小学生在结对合作的过程进行计算思维的联动与交互,从而培养学生学习编程的实践能力[14]。在本研究中,结合元认知策略和结对编程的教学方式对学生的计算思维有积极影响。
3.学业成绩
本研究发现将元认知理论融入结对编程教学有利于提高学生的学业成绩,与一些学者提出的观点一致。陈涛等人[15]在C语言课程教学实践中倡导活用结对编程,引导学生共同进步。这种方法激发了学生的编程兴趣,并且能够提高学生的编程能力。而且,结对编程能够有效减少代码出现错误的频率[16],提高学习效率[17]。
4.合作行为
本研究对学生的课程记录表、教师的随堂记录结果以及访谈进行分析,发现采用元认知策略开展结对编程的实验组在结对合作方面表现更好。首先,在配对编程过程中,学生可以互相帮助、共享信息,通过不断纠正程序中的错误来解决问题,快速且高质量地完成给定的活动任务,从而可以有效地提高学生的学习兴趣,增强学生的动手能力、沟通能力与团队合作能力[18],有助于提高学生的编程问题解决能力。其次,元认知策略的融入更有利于学生开展合作和发展能力,在结对编程中引入元认知提问单有利于在结对编程中指导学生的思维[19]。在访谈中,学生表示教学中思维导图、观察记录表等元认知策略的使用,让他们的编程思路、各自角色定位以及合作方式更加清晰,编程时也更有兴趣和参与积极性。
四、应用与局限
本研究的实际应用价值:本研究立足于当前社会对少儿编程教育的重视,结合现阶段已有的中小学编程教学的相关教学模式、教学资源和教学经验,在相关教学理论和原则的指导下,创新性地把元认知策略引入结队编程教学领域,构建了基于元认知策略的“3 阶段—6环节”结对编程教学模式。随着教学环节的推进,根据不同环节的任务目标设计了具体的元认知策略教学材料,体现元认知能力培养的针对性,并提供了相关教学案例做参考。经过一个学期的教学实验研究,证明了该模式能解决现阶段中小学结对编程教学在课程目标和教学过程中存在的问题,提高学生的元认知能力和计算思维能力,促进编程学业成绩和合作程度,具有一定的理论研究和实践参考价值。
受研究者自身的知识水平、科研能力以及实验开展的时间、实施条件等主客观因素的影响,本研究还存在一些局限,主要体现在:(1)本研究的样本数量较少,仅有实验班和对照班各42 人,从实验规格上讲,实验人数较少,缺少代表性和说服力,需要增加样本容量来提高论证力度,以及进一步验证本研究构建的教学模式在不同学校、不同年级之间的适用性。(2)由于教学实验时长仅为一学期,时间较短,编程课的课时有限,不能在编程教学实践中融入更多的编程知识,且学生的元认知能力以及计算思维培养的影响因素较多且较为复杂,因此还需要进一步排除其他变量的干扰来验证本研究提出的元认知策略教学模式的有效性。