指向算法思维养成的课堂教学策略研究
2024-06-19张淑红
张淑红
【摘 要】算法是信息科技的课程标准六条逻辑主线之一。在课堂中我们可以运用自然语言描述算法、流程图设计算法、编程验证算法、在生活中的应用算法四步骤逐步培养学生的算法思维,提升学生分析问题和解决问题的能力。
【关键词】算法思维;分析问题;描述算法;流程图
【中图分类号】G434 【文献标志码】A
【论文编号】1671-7384(2024)06-061-02
2022版信息科技课程标准第三学段(5~6年级)“身边的算法”模块指出:“本模块以身边的算法为载体,使学生了解利用算法求解简单问题的基本方式,培养学生初步运用算法思维的习惯,并通过实践形成设计和分析简单算法的能力。”[1]算法是计算机科学的核心问题所在,算法思维可以理解为发现并确定问题、分析问题的构成要素,对问题进行分析分解,为问题的解决提供相对有效的途径和方法。新课标进一步扩展了算法的范畴,指出算法教学的基本思路是从“计算机算法”发展到“身边的算法”。“身边”有两方面的要求:一方面是通过算法,编写计算机程序解决一些问题,这是“用”计算机解决身边的问题;另一方面以算法的思路,形成与优化问题解决的步骤,这是“以”计算机编程等的工程思维方式解决身边更多的问题,是计算思维的体现[2]。
那如何在平时课堂中落实学生算法思维的培养呢?小学五年级的学生认知发展处于从具象思维到抽象思维的过渡时期,结合学生的思维特点,我们可以选取贴近学生生活的例子,创设真实情境,运用自然语言描述算法、流程图设计算法、编程验证算法、在生活中的应用算法的步骤展开教学,培养学生的算法思维。描述算法主要是指梳理真实问题解决步骤,然后用自然语言描述;设计算法是指提取自然语言的关键词,把问题解决步骤转换为更符合计算机处理问题步骤的逻辑图示;验证算法是指运用图形化编程把逻辑图示转换成计算机小程序;应用算法是指运用学到的算法迁移到更广泛的问题解决之中。
本文以“猜数游戏”为例具体阐述课堂如何实施教学。“猜数游戏”是编程学习中一个非常经典的游戏,趣味性足,可以激发学生的探究兴趣。在这个游戏中有明确的输入(猜测的数字)和输出(反馈“大了”“小了”“正确”),流程清晰简单,比较适合作为算法学习的入门课。这个游戏设计算法的过程中需要应用到分支和循环两种结构,设计算法的过程可以提升思维的缜密性,培养学生严谨的思维习惯。同时猜数游戏中还包含着计算机经典算法——二分法,可以让学生在玩游戏的过程中去理解二分法,同时理解二分法在生活中的应用。
亲历游戏,用自然语言描述算法
计算机解决问题时,算法通过程序能将一定规范的输入在有限的时间内转化为所要求的输出。因此,在分析简单问题时,学生首先要能对问题进行描述,其次对问题的条件进行分析,最后明确求解问题的目标结果[3]。
上课伊始,教师出示游戏规则:老师随机在纸上写一个数,请学生来猜,老师会说“回答正确”“大了”“小了”,学生可根据老师的回答再次猜测,“回答正确”后游戏结束。接着教师提出问题,请学生用自己的语言描述一下游戏的步骤。学生1回答:老师写一个数字、学生猜测、老师回答、游戏结束;学生2补充:我认为他的描述不太完整,缺少一个步骤,应该是老师写一个数字、学生猜测、老师回答“大了”“小了”或“回答正确”、学生再次猜测直,到答对为止、游戏结束。
本教学环节教师先跟学生玩猜数游戏,当学生对游戏有了一个整体感知的时候,教师再引导学生用自己的语言描述猜数游戏的步骤,促使学生深入思考游戏的整个过程,抽象出猜数游戏的关键步骤。总结梳理的过程让学生对猜数游戏有了全面的认识和系统的分析,从抽象到具象,提取出了问题的关键特征,从而促进学生思维的发展。
合作探究,运用流程图设计算法
算法是通过明确的、可执行的操作步骤描述的问题求解方案。设计算法需要学生在明确输入输出的基础上,将问题的求解方案设计为明确的、可执行的操作步骤。熊璋教授曾指出,信息科技课程不应该局限于让学生对现有程序设计语言的掌握,而应让学生学习使用计算机解决问题的思维和实践方法。
本环节教师再次提出问题:能否用流程图来描述一下猜数游戏的过程。师生先一起梳理游戏的关键步骤:教师出数字,学生猜数字,教师回答大了、小了或正确,重复猜测直到答对为止;再思考这些步骤对应到Kitten里面是哪些积木块,学生能很快思考出“教师出数”对应设置一个变量为随机数,“猜数字和回答”对应“询问……并获得答复”积木块,重复猜测需要用到重复积木块,判断的过程需要用到“如果……否则……”。至此,学生完成了由自然语言向计算机语言的转换。这正是促使学生分解、抽象、建模,用计算机解决问题的思维去思考问题的过程。
接着教师出示流程图模块,要求学生小组合作运用在线流程图编辑软件绘制猜数游戏流程图并展示汇报。学生在绘制流程图的过程中提出疑问:为什么没有“猜小了”这个积木块?教师引导学生可以自己添加并思考这个积木块是否必要。学生在汇报的过程中出现一正一误两种流程图。教师引导学生思考分析两种流程图所代表的计算机程序执行方式,指出计算机在执行任务时只能逐步判断,不能一下子判断三种情况,所以错误的流程图不符合计算机语言的执行流程;思考的过程让学生把现实问题的步骤与计算机解决问题的步骤对应起来,逐步养成算法思维。最后教师再次提出问题“猜小了”这个积木块是否必须,学生意识到除了判定“猜对了”“猜大了”就只有第三种情况,因此非必须。在修正流程图的过程中,学生学会以计算机解决问题的方式去分解问题、设计算法,从而促进了学生思维的发展。
动手实践,运用图形化编程验证算法
从计算机解决问题的途径来看,学生需要将形式化的描述转变为可以实现的结果。编写程序、执行程序是验证算法实现的一种方式。从学生的认知发展角度来看,学生需要将描述算法时的推演结果转变为编程的预测结果,然后执行程序验证结果,从而完成从自然语言到程序设计语言的过程。
当猜数游戏流程图拼完整后,教师提出问题:根据流程图尝试用Kitten编写猜数小程序。教师指导学生分析算法流程图中每个步骤对应的积木块,提供编写好的积木块,让学生动手拼接在一起,降低编写程序的难度。学生动手拖动组合完成猜数小游戏的程序。编完后,试玩的过程会出现问题,如有的小组只能猜测一次,有的小组每次猜测的反馈是相反的,该说“大了”却说“小了”。教师指导学生对照流程图修改程序错误,让学生建立流程图描述算法与程序设计语言执行算法的联系,对计算机执行算法有个整体的感知。
拓展提升,在生活中应用算法
猜数游戏的猜数技巧涉及二分法。二分法在生活中有着广泛的应用。教师提出问题:如何用尽量少的次数猜中数字?学生很快想到要先猜中间数字,并说出可以把猜数的范围缩小一半的想法,教师适时提出二分法。了解二分法的概念后,教师抛出电线电缆故障问题,100公里长的电缆中间出现故障,如何快速找到故障点,学生根据二分法作出反应,先从中间50公里处开始找,然后逐步缩小范围,只需经过6次检测就可以把故障点锁定在0.2公里之内了。由猜数游戏到二分法,让学生由了解算法、掌握算法到在生活中以算法的思维去解决真实问题,体现了更高的学科价值与作用。
参考文献
李锋. 新版课程标准解析与教学指导·小学信息科技[M]. 北京:北京师范大学出版社,2022.
武健,康小微.从算法、思维到问题解决实践:三步转译编程教学法引发的思考[J]. 中国信息技术教育,2023(15): 9-11.
黄荣怀,熊璋.义务教育信息科技课程标准(2022年版)解读[M]. 北京:北京师范大学出版社,2022.