摘 要:在社区教育中开展编程学习项目弥补义务教育阶段信息学普通教育之不足。研究发现编程学习对元认知能力具有正向影响作用。通过对提升元认知能力的思维训练编程课程的框架、教学支架的建构研究,力求使编程学习对学生思维能力有所助益,从而提升学生的整体学习能力。
关键词:编程教育;元认知能力;思维训练 ;框架设计
中图分类号:G642;TP311.1-4文献标识码:A文章编号:2095-9052(2024)10-0214-03
引言
在科技与人工智能日新月异的时代,信息学在义务教育阶段的价值日益凸显,尤其编程类课程对于培养学生的计算思维能力具有显著效果[1]。然而,现实情况并不理想。据顾小清等人于2022年对全国31个省(自治区、直辖市)的义务教育阶段信息科技学科的调查数据显示,近半数 (49.81%)中小学校并未开设信息科技课程,而只开设一门信息科技课程的学校占35.85%[2],这揭示了我国信息学教育在地域间的普及程度存在明显差距。为应对这一挑战,教育部适时发布了关于发展社区教育指导意见,强调以社区教育的普惠性原则促进教育公平,坚持以人为本,需求导向[3],旨在借助社区教育资源填补学校教育的不足,特别是在信息科技教育方面的匮乏。在此背景下,广东开放大学分部汕头开放大学积极响应国家政策,于2022年在社区教育中启动了义务教育阶段的思维训练编程学习项目。该项目采用线上线下相结合的混合式教学模式,旨在提供个性化、普及性思维训练编程课程,成为义务教育体系内信息科技学科的有效补充。项目团队设计出社区教育思维训练编程学习的路径框架[4],力求适应不同学习者的需求,提升教学效果。考虑到当前义务教育阶段学生仍面对一定的应试压力,若编程学习对学生思维能力有提升效果,使学习能力有所增进,则可发挥对学生学习的辅助作用。故本研究将深入剖析汕头开放大学社区编程学习项目的实践案例,提炼成功经验,着力于以提升学生思维能力为目标,对编程课程的教学设计有更完善的建构。
一、编程学习通过提升元认知能力正向影响学习效果
在探索提升学生思维能力的有效路径中发现个体思维能力的高低是通过思维品质的差异体现,思维品质与元认知存在显著或非常显著的相关,这种联系实质是因果关系。元认知与思维品质实质上是同一事物的两个方面,思维品质是思维整个结构的功能和外在表现形式,而元认知则是思维整个结构功能的内在组织形式[5]。元认知能力在各个学科的学习中起着关键正向作用,正向结果较突出的学科是数学。另有研究发现元认知能力的成熟对学习自主性和学习成绩有提升作用。因此,元认知能力的提升对个体学习能力具有显著影响。
(一)编程过程是元认知训练过程,可促使元认知监控成熟
元认知能力的训练分为内隐训练与外显训练两种类型。内隐训练是指情境体验式学习,学生在学习过程中通过自主思考与情感体验,对学习目标与教学过程深入剖析与感悟,从而内化相关知识。外显训练则强调通过教师的详细指导与明确要求,引导学生将内在思维过程外化为可见的学习行为,使他们能够清晰地呈现解决问题的路径。程序的编写过程实际上包含了元认知训练内隐和外显训练两方面的紧密结合,它严格遵循元认知监控的各个步骤,为学习者提供了系统的思维训练平台。具体言之,编程过程可细分为以下几基本的步骤:
1.分析问题与流程图绘制,呈现程序的基本轮廓。这一阶段,编程者首先需深入理解待解决的问题,梳理其内在逻辑,预测可能的解决方案,并通过绘制流程图直观展现程序的基本架构。此步骤对应于元认知监控中的计划与预估阶段,要求学习者运用内隐训练中的自我反思与问题解析能力,在外显训练的助力下,清晰地规划解决问题的步骤与逻辑脉络。
2.用编程语言实现程序。根据已绘制的流程图,编程者先用适当的语言将逻辑设计转化为实际代码。这一过程要求学习者精准地将抽象思维转化为具体程序指令,是对内隐训练中知识内化的实践检验。同时教师在此阶段的适时指导与反馈构成外显训练的重要组成部分。在内隐和外显训练的共同作用下,即使所写程序无法实现目标,编程者也会及时调整实现策略。
3.编译运行与调试。完成编码后,通过编译器运行程序以验证其是否实现目标。若发现程序未能达到预期效果或存在错误,编程者会启动元认知的监控与调整机制,重新审视问题、代码检查,识别错误根源,并据此进行调试。这一反复调试、修正的过程,既是内隐训练中问题解决策略的动态调整,也是外显训练中教师指导学生学会利用调试工具,遵循调试方法论的实战演练。
4.错误修正与迭代优化。针对编译过程中发现的错误,编程者进行修正。随后再编译、测试,直到程序完全满足目标要求。这一阶段体现了元认知训练中评价与反馈的过程,内隐训练体现在学习者自我评估和自我修正的能力上,而外显训练则反映在教师对修正过程的指导和对学生修正成果的评价中。
综上,完整的编程思维训练过程不仅与元认知监测步骤高度契合(如表1所示),而且通过内隐与外显训练的交织进行,有力地促进了学习者元认知能力的成熟与发展。编程中调试与改错环节尤为重要,它们不仅是元认知监控训练的具体实践,更是确保程序设计步骤有效执行,实现思维能力全面提升的关键所在。因此,学生在编程中对错误的识别,分析与修正,不仅是提升编程技能,更是培养其独立思考、自主解决问题的重要途径。
(二)编程过程中反思性思维的发生,有助于提升元认知水平
编程,是一个从需求出发而解决问题的过程。在编程伊始,编程者需明确界定目标问题。个体视角与思维差异决定了学生在面对相同问题时,可能采取不同的编程策略。正是这种差异性,赋予了编程学习提升元认知的独特优势:当学生能独立分析并编写程序以达成目标时,教师则可适时引导其寻求更优算法,触发学生反思如何编写更优程序;反之,若学生编写的程序不能达到目标,他们则更容易自发进行自我反思性思考。此外,教师也可在程序设计过程中适时给予反思引导,如处理一些特殊、不可预见的情况,或对思维逻辑混乱但不影响运行的程序段进行反思与检查。大量文献研究已证实,编程学习中反思性思维对提升学习者元认知能力具有积极作用。
(三)编程学习中加入认知灵活性训练策略,调节元认知监测
认知灵活性是指个体能够根据情境的变化灵活调整思维路径,快速适应新任务或活动的能力。它是执行功能(大脑的高级认知机制)的关键组成部分,且通常在个体发展中较晚成熟。在编程学习过程中,具备高认知灵活性的学生能有效地运用元认知监测,即对自己思维过程进行监控与调整,达到有效的元认知控制;而低认知灵活性的学生其元认知监测水平不能有效地改善元认知控制。在编程的学习中通常把培养和提升认知灵活性作为重要目标之一,常见的两种策略是:
1.调动积极情感情境以促进认知灵活性。
有研究表明,情绪状态会影响认知灵活性。积极情绪有助于注意定向的转换,消极情绪延缓了注意定向的转换。积极情绪扩展认知范围,相反,消极情绪缩窄认知范围。在编程学习中,低年级学生在图形化编程、制作动画游戏、实物编程、物联网等,本身趣味性更强,与数学学科学习在形式上有一定差别。情绪状态通常是积极、期待与高涨的,这些都属于积极情绪。因此,编程过程有助于注意力定向的转换,提高认知灵活性。
2.编程中实施的认知灵活性训练学习策略。
编程教育在锻炼学生的认知灵活性方面展现出显著的优势,它通过多种直接且针对性的方法,帮助学生超越表象、洞察本质,学会从不同角度思考问题并寻求多种解决方案。比如用编程方式绘制一个正方形与绘制一个五角星、三角形,甚至圆形,其核心使用的都是同一个编程语句。从不同的具象到相同的本质,打破学生对事物固化认知模式。另外,编程实践强调“举一反三”与问题多解的学习策略,比如绘制一个圆形的程序可以改编成绘制一朵花,因为花的轮廓也是一个圆。这些学习策略都有助于认知灵活性的提升。
二、提升元认知能力的思维训练编程教学框架构建
(一)编程教学框架
基于以上分析,本研究聚焦于在编程课程设计中如何通过提升元认知能力,进而提升计算思维能力及整个思维能力表现出优秀的思维品质,促进学生学业学习。结合伯南与雷斯尼克计算思维三维框架和罗伯特·马扎诺勾勒教育目标新分类学框架,建构提升元认知能力的思维训练编程课程的教学框架。此框架是建立教学者在教学中引入编程领域特定策略,适用于学习任一编程语言时,提升学习者的元认知能力的通用范式。
1.理论框架选择与元认知能力关联。
伯南与雷斯尼克计算思维三维框架涵盖计算概念(编程语言基础、数据结构、算法原理等)、计算实践(通过实际编程项目,锻炼程序设计、调试与优化能力)及计算视角(从宏观角度理解计算在社会各领域的角色)。罗伯特·马扎诺教育目标新分类学框架,特别是其知识加工维度,划分认知(学科知识掌握)、元认知(自我认知过程的认识、监控与调控)与自我(关注情感态度、价值观、人生观等非智力因素,影响学习动机、毅力与创新精神)三个层级。两者结合,为编程课程设计构建了兼具专业深度与策略情感支持的指导体系。伯南与雷斯尼克框架确保课程内容的专业扎实,马扎诺框架特别是元认知与自我维度,旨在强化学习策略与情感支撑,通过提升元认知能力,使学生不仅能高效学习编程知识,还能在应对复杂编程任务时展现出自我调适、问题解决与创新思维。
2.思维训练编程课程教学框架的三层结构。
本编程课程的教学框架遵循从基础认知到高级思维能力培养的递进路径,设计了三个相互关联、层层递进的结构层次:第一, 位于认知系统中属于计算概念范畴的编程学习的普遍表征层。编程学习的普遍表征层概括了一般编程学习的学习范式。教学过程中可借用“案例教学法”或“实验教学法”等实例教学,实现“做中学”,减低语法语句学习的枯燥感;根据学习者年龄,结合数学背景配置相应的编程算法学习,编程思维会逐步形成,并随着普遍表征层的循环练习而不断深化。第二,位于元认知系统中属于计算实践范畴的编程领域的学习策略层。 学习策略层使用编程思维策略、反思思维策略、认知灵活度策略等。这一层次强调三个编程策略的重要性,不可欠缺,也不可由教师代劳,由此才可对元认知起有效训练作用。第三,位于自我系统属于计算视角的学习者元认知及思维能力提升层。在编程两层学习活动推进中,学习者的元认知监控水平得以训练,元认知能力得以提升,从而又助力于外层学习活动的持续进行,进而形成思维理念、观点、视角等指导思想。
(二)编程教学支架
支架设计是一种使教学和学习策略可以得到落实的干预手段,可以使学习者在编程学习中按给定的方法方式通过学习策略完成思维训练。
1.实现编程思维策略支架。
编程思维策略支架是用不同的方法对程序设计流程的梳理与强调。可根据学生年龄使用互动教学;图画流程法、填表梳理流程法等各种方法,其目的都是辅助学生提练编程思路。学生编程前先获得情境,理清自己的目标与目的。在整理问题思路的过程中,有些学生仅需教师示范讲解新知识点即可自行运用既有知识与策略,于新情境中构建程序流程。对无法独立列出流程的学生,教师会在其困惑点提供指导,逐步助其将思维具象为流程。
2.实现反思思维策略支架。
反思思维策略支架的设计是为了在编程过程中引起学习者反省,思考,从而修正。教师可使用注释提问法在程序中与学生交流提问,引导学生反思;教师可引导学生在编写代码过程中对于实现某一功能代码段加以注释,在写代码的过程中同时反思代码与目标的关系;充分利用学生编程错误与实现目标失败的机会,反思分析错因;教师可建立评价表,同时引导学生进行自我评价。
3.实现认知灵活性策略支架。
认知灵活性策略支架设计是在编程过程中有目标地融入多种认知灵活性学习策略,即使在学生已经正确完成编程任务时,有意识地为学生设计多种“障碍”。比如多结合编程过程中的多情况多分支思考的思维习惯,打破固化的单一思维方式;多设置一题多解要求,让学生形成同一目标可以有多路到达的思维方式;设置在多解中寻找最优解要求,养成多路思维中寻找最短、最优路径的思维习惯;设置学习将现有代码迁移应用的要求,让学生灵活利用代码,在不同问题进行代码迁移。
结语
随着信息技术的飞速发展,教育需要与时俱进,但学生的思维能力与学习能力的培养仍需遵循教育规律,不可急于求成。社区教育在普及信息科技知识、填补学校教育可能存在的覆盖空白方面,扮演着重要角色。社区教育坚守教育公平原则,尊重并适应每个学生的个体发展节奏,为他们提供有针对性的教育支持。鉴于元认知能力对提升学生学习效能的决定性影响,着力于通过提升元认知能力来优化编程课程设计,构建了一套适用于社区教育培训项目的通用教学模式。这一模式旨在系统性地培养青少年的编程思维,增强其自主学习能力,为他们在快速变化的信息时代奠定坚实的学习基础。如此,社区教育能够在信息技术教育领域发挥独特而有力的辅助作用,促进青少年全面发展。
参考文献:
[1]陈鹏,王晓,杨姝等.可视化编程能有效促进K12学生的发展吗——基于SSCI期刊39项实验和准实验的元分析[J].现代远程教育研究,2023,35(4):102-112.
[2]顾小清,宛平,姜冰倩等.信息科技教师教育相关者为新课标做好准备了吗?——基于多维视角的全国调研[J].中国远程教育,2023,43(10):29-40.
[3]教育部.教育部等九部门关于进一步推进社区教育发展的意见[J]. 中华人民共和国教育部公报,2016(9):44-48.
[4]苏绚.社区教育中开展编程思维培训项目的路径研究[J].广东开放大学报,2022,31(5):14-19.
[5]董奇.元认知与思维品质关系性质的相关、实验研究[J].北京师范大学学报,1990,(5):51-58.