APP下载

编程纠错教学策略助力学科核心素养培养的探究

2024-04-09刘安宁

中小学信息技术教育 2024年3期
关键词:教学策略核心素养

刘安宁

【摘 要】在编程教学中,学生会出现各种错误,教师要以此为契机,采用编程纠错教学策略促进学生学科核心素养的发展。教师首先要充分意识到程序设计过程中纠错能力与学科核心素养之间密切的关系;其次要深究学生编程中出现错误的根源;最后要采用有效的纠错策略提高学生的纠错能力。

【关键词】编程纠错;教学策略;核心素养

【中图分类号】G434   【文献标识码】B

【论文编号】1671-7384(2024)02、03-100-03

2017年7月,国务院发布的《新一代人工智能发展规划的通知》促进了程序设计语言在中小学教育普及。围绕编程教学,近年来衍生出很多卓有成效的研究成果,涵盖教学模式、课堂改革、教学实践、学生发展等领域,但是目前缺少完善、系统、创新的编程纠错教学策略研究。

编程纠错教学策略是指在编程教育中采用特定的方法和技巧,帮助学生识别、理解和纠正在编程学习过程中出现的错误和问题。程序纠错是编程教学中不可避免也不可缺少的环节,教师要充分发挥编程纠错教学策略的潜力,助力学科核心素养的发展,需要从以下方面做起。

相互促进——厘清纠错能力与核心素养关系

程序设计的本质是将人类形象思维转化为计算机的抽象思维,在该过程中,可能会出现各种错误、非预期结果。纠错能力即为发现、解决、更正这些问题的综合能力。学生纠错能力的提高能够促进学生学科核心素养的发展,学生学科核心素养的发展又会反作用于学生纠错能力,两者相互促进,相辅相成(图1)。

纠错能力的提高能够促进学生学科核心素养的发展。第一,促进信息意识的发展。纠错需要学生对信息有强烈的灵敏性,学生要通过多途径获取信息、收集信息、筛选信息、分析信息、利用信息解决问题,树立信息意识。第二,促进计算思维的发展。计算思维可以简单表征为用计算机创造性解决问题的能力,解决错误的过程也是提高计算思维的过程。第三,促进数字化学习与创新能力的发展。纠错过程中需要充分利用各种数字化学习工具,提高纠错的效率,如利用检索工具、论坛、博客、调试工具、英语翻译工具、思维导图、表格等,通过丰富解决问题的途径和手段,促使学生多样化的创造性学习发生。第四,促进信息社会责任感的生成。纠错主体多元化,从单一的个人、师生纠错到小组间、班级内共同纠错,再到网络求助或解答错误,增强了学生在信息世界的主人翁意识,培养了学生的信息责任。学科核心素养的发展又会促进纠错能力的提高。当学生的学科核心素养得到较好的发展时,学生能够更好地利用核心素养解决编程中的问题。

在编程教学中,有些教师往往忽略了程序纠错的专项训练和能力培训,因为教师没有意识到纠错能力与学科核心素养之间密切的关系。因此,教师要在基于正确认识两者关系前提下,在编程纠错教学中抓住机会,恰当引导,精选策略,以促进学生学科核心素养的长远发展。

探明症状——归纳学生编程错误类型及成因

根据学生能否自行解决问题,笔者将编程错误分为“无阻错误”和“有阻错误”。“无阻错误”是指学生能够理解的错误,主要由粗心、疏忽等原因造成,通过错误提醒,学生能够自行解决。此类错误不会对学生程序编写形成阻力,学生已经习得相关问题的解决方案并内化了相关知识技能。“有阻错误”是指超出学生认知范围的错误,即使程序给出了错误提示,学生依然不能理解,无法独立解决问题。此时若没有良好的纠错策略,学生将无能为力,这是阻碍学生正确编程的重要因素。

針对“有阻错误”,教师需要结合学生无法解决错误的根本原因,为学生探索解决策略,将“有阻错误”转化为“无阻错误”,其具体策略如下(图2)。

第一类编程错误原因可归结为语法等基本知识掌握不牢固。“无阻错误”发生的前提是学生已经掌握了基本的语法,能够读懂相关错误提醒,针对提示修改程序。教学实践表明,编程初学者很难从容应对由于粗心而造成的错误,如使用了中文输入法输入字符、括号不匹配、关键字拼写错误等。这些本应划分到“无阻错误”的范畴,但由于初学者刚刚接触编程,基础知识和语法掌握不牢,对于程序的认识还处于“不知所以”的阶段,因此这些错误被动成为“有阻错误”。但此阶段持续时间较短,一般发生在程序设计课程的初期,经过反复训练,学生能够自动将此类错误转化为“无阻错误”。

第二类错误原因是虽然语法已掌握,但是不能学以致用。学生掌握了基础编程语法后,并不意味着能够灵活应用。在实际编程中,常常出现以下现象:语法能够记住,但使用起来却错误百出。学生在语法的理解与应用之间存在较大偏差,究其根源,学生的学习停留在表象,没有深入本质。布鲁姆将认知领域的教学目标分为六个层次:识记、理解、应用、分析、综合、评价。此时学生的学习处于前两阶段,因此造成学用割裂,当由浅层学习走向深度学习后,自然而然能达到后四层学习目标。

第三类错误是逻辑错误,产生原因是解决问题的思路出现偏差。逻辑错误没有提示,因此程序顺利运行后,还需要对运行结果的全面性和正确性进行检查。修改逻辑错误对学生能力提出了更高的要求,不仅要求学生能够改正错误,更要能发现错误。解决此类问题,首先调试是关键,如果发现不了错误,何谈改正错误?其次,要培养学生的计算思维,提高学生算法设计能力,使之正确界定问题,全面考虑各种情况,建立健壮的算法模型。

明晰路径——优化编程纠错教学的基本策略

1.利用数字化工具,多渠道认识错误

笔者通过课堂观察、师生交流和课下调查,发现学生面对错误提示时有两类阻碍:一是无法读懂英文提示的含义;二是英语提示能够读懂,但提示过于笼统,不知道如何进行改正。针对问题一,可以借助英语翻译工具将英语翻译成汉语,当查阅次数增多时,学生无意中就会记住关键单词,从而读懂表层含义。读懂表意并不意味着就能解决问题,还要能够理解其深层含义,知道同一种错误类型可能由哪些原因导致,即能解决问题二。

为了提高学生课上编程练习的效率,传统教学中往往由教师直接告知学生错误原因,并指导学生改正错误。在该过程中,学生是知识的接受者,而非探究者,学生养成依赖外界解决问题的习惯,形成思维惰性。因此,要让学生通过查阅资料,自主解决问题,让学生在“发现—修正—调试”的迭代探索中纠错。同一错误可能由多种原因导致,学生通过搜索引擎、网络论坛、博客等路径收集、辨别、筛选信息,获取解决问题的潜在方法,利用自行获取的知识不断调试,直到修正错误、解决问题。该过程不是直线式的探究,而是螺旋上升的,每一次修改、调试错误都能够给予学生启发,无形中提高了学生的纠错能力。学生利用丰富的数字化工具和资源,能够全方位、多角度、深层次认识编程错误,探究解决问题的方法,促进信息意识的形成,养成自主学习的习惯。

2.形成纠错记录单,分类总结错误

纠错记录单主要针对代码中有提示的错误,将程序编写中遇到的错误按类型划分、标注出错误提示和原因、记录出错语句、统计出错频次,形成学生纠错档案。纠错记录单的形式可以是表格、思维导图等,只要能将关键要素清晰记录下来即可。笔者给出了表格和思维导图两种记录方式的示例(图3)。

纠错记录单能促使深度学习发生。纠错记录单是学生在编程实践中根据实际情况,自主解决问题后,对问题进行的总结、提炼和反思。学生经过一系列的主动学习和程序调试,学习在不知不觉中内化,深度学习已经发生。纠错记录单是学生的查询手册:学生常常会多次遇到相同的问题,但是信息技术课程间隔较长,学生容易遗忘。因此通过查询纠错记录单,可以帮助学生快速解决类似错误,提高编程效率。纠错记录单助力学生个性化学习:不同错误的出现频率在一定程度上反映了学习过程中潜在的问题和困难点,学生可以针对薄弱点进行个性化学习和练习。纠错记录单帮助教师优化教学过程:对教师来说,纠错记录单是反馈教学效果的一个重要依据,教师可以对班级所有学生的记录单进行统计分析,据此来调整教学过程,突破重难点。

3.逐步调试,定位逻辑错误

编程常见的逻辑错误有:运算符使用不正确、语句的先后顺序不对、条件语句的边界值不正确、循环语句的初始值与终值有误等。发生逻辑错误系统不会有提醒,因此需要程序设计者细心地阅读程序、分析程序、调试程序。在进行程序调试时,测试数据的选取要有代表性、全面性,要特别注意特殊数据和边界值。

以Python为例,常用的调试方法有三种:一是通过输出函数输出变量值进行验证,方法简单快捷,但是每次修改都需要重新运行程序;二是利用Debug工具进行断点调试,图形界面功能强大,使用简单;三是通过pdb或ipdb等命令行进行调试,方便快捷,但需要记住相应指令及其功能,学生掌握起来有一定难度。综合各种方法的优缺点和学生学情,笔者为学生介绍了前两种方法。

4.培养计算思维,减少逻辑错误

在定位好逻辑错误后,还要能够分析错误原因,进行错误修改。逻辑错误的本质是算法设计出现问题。算法设计与计算思维息息相关,要想从根本上解决问题,必须从培养学生的计算思维做起。

首先,在教學过程中,要以真实情境为背景,让学生对实际问题进行界定、抽象特征、建立模型、设计算法,提高学生分析问题、解决问题的能力。其次,借助画笔等工具绘制流程图,加深学生对问题的整体理解和建构。再次,充分发挥学生的自主性和能动性。算法应该是在学生的交流探讨中生成的,而不应由教师生成。当学生在算法设计过程中出现错误时,教师要循序善诱,引导学生逐步分析,独立解决问题。最后,鼓励学生进行发散思维,让学生通过分享不同的算法设计思路,碰撞出思维的火花,提出多样化的问题解决方案。

5.形成互助小组,创建良好氛围

一个人的能力是有限的。教师要善于利用集体的力量,发挥集体的智慧,促进学习实现“1+1>2”的效果。在教学实践中常常出现这种趣事:学生A的程序出现错误,苦思冥想半天仍然无法定位错误;学生B帮他检查,找到错误后提示学生A,学生A恍然大悟,学生B成就感满满。

对于学生A来说,这个错误点常常不是因为他不会而找不到,而是由知觉的理解性和整体性决定的。大脑为了节省注意资源,在重复某些操作时(如重复阅读相同内容),会从整体上去感知、理解,从而抑制了对个别成分(部分或细节)的知觉。对于学生B来说,阅读他人的程序本身就是一种学习,能够帮助同学修正错误,说明其知识和技能得到了内化,形成了自己的纠错策略。另外,学生B通过帮助同学获得了较强的自我效能感,拥有较强自我效能感的学生在面对困难和挑战时,会更加努力、坚韧地迎接挑战。

良好的学习心态在编程学习中至关重要,通过互助小组,形成积极向上的学习氛围;同学间彼此“找茬”,既提高了学生的自我效能感,获得了良好的学习体验,又解放了教师,将课堂还给学生。

程序纠错的过程不仅是迭代完善程序的过程,更是培养、提高批判思维和逻辑思维的过程,是发展、促进学生学科核心素养的过程。本文为编程纠错教学提供了思路,以期通过恰当的编程纠错策略,提高学生的自主纠错能力,发展学生的学科核心素养。

作者单位:江苏南京市高淳区淳辉高级中学

编   辑:冯安华

猜你喜欢

教学策略核心素养
低年级写话教学策略
谈以生为本的群文阅读教学策略
写话教学策略初探
浅谈复习课的有效教学策略
舞蹈教学策略之我见
高中英语读后续写的教学策略
思想教育视域下公民核心素养教育的研究
如何培养学生的化学核心素养
作为“核心素养”的倾听
“1+1”微群阅读