“身边的算法”教学实施策略探究

2024-04-09 11:39佘友军
中小学信息技术教育 2024年3期
关键词:计算思维跨学科

佘友军

【摘 要】《义务教育信息科技课程标准(2022年版)》提倡以身边的算法问题为载体开展算法教学,培养学生用算法解决问题的能力。本研究尝试将编写可执行的流程图融入算法教学,在掌握算法的同时确保了学生的实践操作,在观察流程图动态走向的过程中提升计算思维,为新课标理念下信息科技算法教学提供新的实践样态。

【关键词】算法教学;跨学科;计算思维;思维可视

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

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

目前,在中小学开展算法教学,培养计算思维,存在着两个极端现象:一个是反对削弱编程地位,他们认为编程是落实课程标准中计算思维和数字化学习与创新的有效载体,编程是数字时代的基石,学生理解編程,能更好地掌握现有的数字技术;另一个是重视算法教学,将教学的重心由编写程序转变为设计算法,课堂教学中重点关注算法的描述,由此带来的问题是编写程序或者体验程序的时间不够,学生缺少足够的时间验证算法是否正确,大大降低了学生学习算法的热情。第一种现象的编程学习脱离了算法,是一种低效的学习。新的更加简洁、更加高效、执行性能更好的语言在不断出现,让学生掌握特定语言的语法不应当成为教育的核心目标。算法是解决问题的核心,关注算法将注意力集中在解决问题本身[1]。掌握了解决问题的思维,对学习任何一门语言都有帮助。但同时学生的实践操作要得到保障,验证算法是否正确,并进行算法的优化与迭代,是思维活动中重要的一环。

“身边的算法”教学策略探讨

基于上面的分析,笔者引入Flowgorithm进行可运行的流程图教学,确保了计算思维的提升,并保障了学生的操作时间,取得较好的实践效果。在教学这个模块时,教师从学生已有的生活经验中,寻找运用算法的例子,进行抽象和概括,让学生掌握基于流程图或者自然语言描述算法的方法。在应用环节,教师创设学生感兴趣的情境,让学生使用手绘流程图将解决问题的思维进行可视化;利用数字工具编写流程图的形式,对思维的过程进行可视化的验证[2]。教学过程中,注重从真实生活中提取算法问题,让学生经历问题抽象、分解、构建解决问题的模型,通过手工绘制解决问题的流程图,将解决问题的思维活动显性化[3];在学生熟悉算法描述方式的基础上,开展跨学科的项目学习,利用数字化工具编写流程图并加以执行验证,无须编程即可实现数学问题的自动化求解[4]。教学实践重在思维过程的可视,将教学的重点从程序编写转移到流程图的设计,降低了学生的认知负荷,有助于学生了解算法在解决问题过程中的作用,领会算法的价值;有助于学生总结解决问题的方法,并将其迁移到其他问题求解中,有效促进学生计算思维的发展[5]。

1.结合生活案例,了解算法的基本控制结构

“身边的算法”模块,“算法”确定了学习的内容和学习的最终目标,“身边”明确了案例的选择范围,让学生借助学习与生活中的实例,体验常见的算法结构,初步理解算法是可执行的解决问题的步骤。五年级的学生正处于抽象思维发展的起步阶段,教师选择学生熟悉的内容,学习算法的描述方式、常见的结构,能让学生尽快形成认知关联,有效激发学生学习的主动性,避免了枯燥的概念讲解教学。这部分内容的学习,使学生对算法的认识从感性上升到理性,有效建构算法的概念。

如洗衣机洗衣服的步骤一般有:浸泡、洗涤、漂洗、脱水四个步骤,这四个步骤就组成一个顺序结构;再比如,通过猜数字游戏理解分支结构,通过红绿灯的信号控制理解循环结构。这些源自生活的鲜活的案例,让学生初步了解流程图图示,掌握流程图的常见结构。

2.手绘流程图解决生活问题,促进思维可视化

学生的思维活动、思维过程往往是不可见的。在学生掌握了算法描述的基本结构后,教师可以让学生尝试绘制算法,解决一些简单的生活问题,以流程图的形式将思维可视化呈现。思维可视化是将原本不可见的思维路径、思维过程,以思维导图、流程图等形式呈现出来。国内研究学者充分探讨了思维可视化对教师教学和学生认知的影响,华东师范大学刘濯源研究员较早开展了思维可视化技术与学科整合的理论和实践研究, 提出了“把教学关注点从‘知识转移到‘思维, 从而持续提升学生的思维能力, 实现教学效能的倍增”的理论。井冈山大学外国语学院许燕讨论了思维可视化工具支持学习的优势和应用策略, 提出思维可视化工具对学习者提高理解能力和记忆能力, 发展逻辑思维和创造性思维有着较大帮助。

思维可视化的过程,是学生知识再加工的过程。将思维可视化运用到学科教学中,有利于学生主动地建构知识系统,实现零散知识系统化、隐性思维显性化、解题规律模型化,学生的思维能力能得到有效的训练[6]。

3.编写算法实现数学问题自动求解,使用流程图验证思维过程

计算思维代表了一系列解决问题的技能,它能让学生真正参与学习,参与有价值的学习,并超越信息科技课程,扩展到更广泛的内容领域。跨学科学习要求学生跨课程灵活地运用概念,研究表明,学生在多种环境和跨学科中学习的知识比在单一环境中更有可能实现知识的迁移。

数学学习是学生生活中的重要部分,因此将数学问题的自动求解作为提升学生计算思维的重要学习项目。这个环节采用数字化的流程图编写软件Flowgorithm开展学习活动,将学生的思维活动显现化。Flowgorithm是一种可以绘制流程图并可以执行验证的软件,相比于图形化编程软件,Flowgorithm更符合新课标的要求,更适合在教学中使用。

Flowgorithm由flow(流程)和algorithm(算法)两个词组成。与图形化编程软件、代码编程软件侧重编程不同,Flowgorithm侧重算法设计。Flowgorithm简单易用,不需要拖拽组件,通过在“开始”和“结束”之间增加输入、输出、分支、循环等结构完成算法设计。学习者通过设计流程图,将思维过程可视化。作为一款流程图软件,Flowgorithm提供了多种常见的流程图例,降低了设计流程图的难度。与普通流程图绘制软件不同,Flowgorithm中绘制的流程图是可以执行的,学生可以运行流程图,观看流程图执行的动态走向,验证算法是否正确。当算法执行出错,学生可以了解自己出错的位置和原因,并从中吸取教训,从而提升解决问题的能力。这个过程对学生理解算法非常重要。通过反复调试和观看算法执行的走向,学生的思路逐步清晰,逻辑思维能力得以提升。除此之外,Flowgorithm还能将流程图转变为超过25种主流的编程语言,如Python , C++, C#, Java, JavaScript, PHP,Pascal,Swift, Lua, Perl, Ruby, Visual Basic .NET以及VBA等。

“猜物游戏中的算法”教学案例

“猜物游戏”是研究分支结构的案例。学生从喜闻乐见的游戏中,提炼出算法的结构,在此基础上,尝试运用分支结构实现“判断平年和闰年”数学问题的自动求解。

1.尝试描述算法:从身边的具体活动抽象出解决问题的过程

设计程序的关键是设计算法,直接让学生描述算法难度较大。教师引导学生从真实的猜物游戏中提炼抽象出算法:从羽毛球和网球中选择一个物体让学生猜。学生猜测物体的特征,老师进行判断,学生再根据老师的判断分析选中的是何种物体。如学生猜测这个物体有羽毛,老师如果判断“真”,那么选中的物体就是羽毛球,否则就是网球;还可以通过增加物体的数量,掌握多分支结构。教师通过活动引导学生理解现实世界解决问题过程中所蕴含的算法、原理,改变以往一味传授概念知识的方法,实现知识和思维的双重建构。通过这样的活动,学生逐步抽象出解决问题的步骤。

2.绘制流程图

在掌握了分支结构的绘制方法后,学生尝试开展跨学科学习,实现判断平年闰年数学问题的自动求解。这个过程就是对判断方法进行数学建模。教师挑选一些典型的流程图,带领学生一起分析,寻找问题,最终为判断方法建立模型。

3.编写可执行的数字流程图

通过交流互动,学生基本明确解决问题的过程。在此基础上,学生可以利用Flowgorithm进行流程图的设计。学生在设计完毕后,并不需要等待老师的评价,Flowgorithm的优势在于可以直接执行流程图,学生可以根据执行的结果,进一步了解算法的执行流程,对遇到的问题进行调整。

4.自评与互评:提升合作学习能力

交流活动能有效提升学生的批判性思维能力、合作学习的能力。教师根据学生的表现进行评价。学生也对项目的学习情况进行自评和互评,汇报自己小组在研究过程中遇到的问题,以及是怎么解决问题的;对自己的研究项目进行反思,提出优化改进的想法,对其余小组的项目提出建议。

在计算思维的培养过程中,比较重要的一环是自觉迁移算法用以解决实际问题。教学中,教师要鼓励学生将解决问题的思维进行迁移和运用,用于解决相似的问题,将解决问题的过程内化为解决问题的能力,促进学生计算思维的发展。

结论与建议

1.Flowgorithm让教学专注于解决问题的思维训练

信息科技的教学不能只关注程序设计语言,在信息社会,程序设计语言本身在飞速地发展,新的高效的语言层出不穷,教育者的注意力应当回归到解决的问题本身。新课标将教学重心前移,从关注程序转变为关注算法。课程标准对信息科技的教学提出了新的要求,不应局限于学生对某种特定程序设计语言的掌握,而是让学生掌握使用计算机解决問题的思维方式和实践方法。Flowgorithm让教学专注于解决问题的思维训练,是学生提升计算思维的有效途径。

2.将学生的学习活动置于现实情境的丰富任务之中

知识是由学习者基于经验主动构建的,而不应该被动地从外部获得。教育者在创建研究任务时,要通过设计丰富的任务,确保所有学生都有机会进行高层次的思考。当丰富的挑战任务与现实生活背景及学生的个人兴趣紧密地联系在一起时,学生更有可能投入到任务的研究中,从而提升高阶思维能力。通过个人或协作完成任务挑战,让学生感到有能力运用技术解决问题,并能改进以满足自己的需求。丰富的任务发展了学生解决问题和推理的能力,形成适应未来环境的能力。这些学习经验的获得会帮助学生形成迁移到新问题的能力[7]。

3.通过分享与交流加深理解

知识和技能在生生、师生的互动中有效建构,分享算法还可以让课堂上的每个学生成为积极的思考者。学生解释自己解决问题的想法或评估其他同学的策略,能够加深对思维的理解,从而产生深度学习,提升用语言表达对问题理解的能力。通过对比,学生会意识到其他可能更有效、更容易执行或更容易理解的策略。

总之,将Flowgorithm运用于中小学算法教学具有重要价值。通过对身边的问题进行抽象建模,利用Flowgorithm设计流程图,描述解决问题的算法并进行验证,在互动反馈中形成设计简单算法的能力,能切实有效提升学生的计算思维。Flowgorithm能将思维过程可视化,达到培养学生抽象、分解、建模和设计算法能力的目标,非常适合运用于中小学开展算法教学实践。

参考文献

任友群,隋丰蔚,李锋. 数字土著何以可能?——也谈计算思维进入中小学信息技术教育的必要性和可能性[J].中国电化教育,2016(1): 2-8.

王娟. 基于Scratch的创意计算思维可视化研究[D]. 上海: 上海师范大学,2015.

郁晓化,肖敏,王美玲. 计算思维培养进行时:在K-12阶段的实践方法与评论[J]. 远程教育杂志,2018(2).

熊秋娥, 葛越. Scratch游戏化编程培养小学生计算思维的实证研究[J]. 基础教育,2019(6): 24-35.

WING J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-36.

张屹. 我国小学生计算思维量表研发与应用[J]. 中国电化教育, 2020(10): 49-57.

曲茜茜,解月光,王海. 高中信息技术学科教材“三重结构”及课堂实施建议[J]. 现代教育技术, 2018(4): 48-54.

作者单位:江苏海安市实验小学

编   辑:冯艳艳

猜你喜欢
计算思维跨学科
跨学科教学在高中生物课堂教学中的应用实践
初中历史跨学科主题学习活动的实践与思考
应用型高校推进跨学科人才培养的路径探索
我校成功承办“生命科学与老龄化社会”跨学科论坛
跨学科前沿研究生课程的教学改革探索
商标跨类保护的跨学科解释
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究