陈丹雪
中山市黄圃镇大雁小学 528429
【摘要】本文在探索算法思维内涵实质的基础上,通过研究小学信息科技Scratch教学中常见的问题,分析所存在的问题对学生形成算法思维的影响,提出了“从趣味案例讲解知识点入手”“强化程序分析”“拓展创作应用空间”三种教学策略,并结合丰富的教学案例进行说明,以提升小学信息科技Scratch课程教学质量和水平,充分发挥Scratch课程在学生算法思维培养方面的积极作用。
【关键词】算法思维;Scratch课程;教学策略
当前,在我国大城市少儿编程已经非常的火热了,世界正在向人工智能发展,不会编程应用的人可能就是未来社会的文盲。Scratch编程因其界面直观、趣味性强、操作性强、功能强大等特点而深受学生、家长、老师的欢迎。学生在Scratch课程的学习中,不仅能提升他们的逻辑思维与创造力,而且能够帮助学生提高发现问题、分析问题和解决问题的能力,而这正是学生算法思维的培养过程。
一、算法思维的概念
华东师范大学祝智庭教授认为,基础教育应该着重培养学生的算法思维能力。算法思维可以看作是在人机共生社会中高级思维能力,有了这种思维能力,不但可以大大拓展人们有效利用信息工具解决问题的能力,还有助于培养人们在信息化社会中生存的自信与理性。
王荣良教授曾提出,算法思维就是能清楚说明问题解决的方法,能够将一个复杂的问题转化为若干子问题并将其进一步简化,以达到解决问题的目的。结合祝智庭教授及王荣良教授的观点,在小学信息科技Scratch的课程教学中,笔者认为算法思维就是在程序设计中培养学生解决问题的思维方式,让学生掌握解决问题的一般步骤,会提出问题,会分析问题,会解决问题。
二、问题的提出与分析
然而,在小学信息科技Scratch的课程教学中,笔者常常发现学生不善于编程,不懂得对已学过的案例进行迁移,如脱离了老师、书籍等参考资料的辅助,学生就不会编写程序,对指令的使用感到混乱。造成这种状况的原因主要有三个方面:
现有的很多Scratch的教学教材和Scratch的课堂教学都是从案例出发进行编排的,缺少对各模块各指令等基础知识的使用说明。案例式的学习,对于成年人而言,显得有趣、有深度,对于小学生而言,可能连简单指令的使用都无法理解。缺乏Scratch基础知识的积淀,学生的编程之路往往容易受挫,算法思维的培养也就无从谈起。例如,在案例式的学习中,学生对于“ ”“ ”等常用指令比较熟悉,而对于Scratch的坐标等知识,如果教师或者教材中没有提到的话,以小学生现有的知识,他们就会在“ ”等涉及坐标知识的指令使用中感到困惑。
根深才能叶茂,树壮才能果成。知识基础的薄弱,学生的学习积极性就会受到打击,学生的后续学习就难以继续,算法思维的培养也就会遇到阻碍。
Scratch的编程课程中,对程序的分析常常使用自然语言描述的方式开展,学生对程序的认识可能还停留在浅层甚至表面上,而教师往往迫于课堂时间的关系,就急匆匆的进入了如何编写脚本的学习中。缺少对程序进行有效分析的环节,学生要不就是在程序的编写前止步不前,要不就是依靠教师或其他参考资料完成程序的编写,难以依靠自己的力量独立完成学习任务。
陶行知曾说:“不拿现成的解决方法来传授给学生,而把这个解决方法如何找来的手续程序,安排停当,指导他,使他以最短的时间,经过相类的经验,发生相类的理想,自己将这个方法找出来,并且能够利用这种经验理想来找别的方法解决别的问题。”教学过程中,教师要引导学生加强对案例的有效分析,要让学生知道为什么要这样编写程序,引导学生学会分析问题。只有掌握了分析问题的能力,学生才能学会如何解决问题,学生的算法思维才有可能得到培养。
学生因其年龄特点喜欢游戏,Scratch教学也常常与各类游戏的制作相结合,例如学生很熟悉的《小猫钓鱼》《飞机大战》等。设计能够吸引学生注意力的教学内容诚然很重要,但是Scratch教学仅与游戏的制作相联系,不利于学生算法思维的培养。
算法思维的培养要求学生能够根据问题,尤其是不同的问题进行分析,然后找到解决问题的方法。教育即生活,“所学”应该与“所用”紧密联系起来。给学生创作应用的源泉,学生的算法思维才会水涨船高。Scratch是一款功能强大的软件,可以应用在故事的创编、实用工具的制作、艺术作品的创作等方面。教师应该在Scratch的课程教学中引导学生在更广阔的空间里进行创作,帮助学生在不同的创作中提升算法思维。
三、问题解决策略
学生学习Scratch课程的目的不是为了当程序员,而是在培养一种思维,增加一个思考问题的角度。在Scratch课程教学中,教师应该充分考虑学生的年龄特点、认知结构和兴趣爱好,通过生动有趣的案例,按照从简单到复杂、从具体到抽象的方式处理教学,循序渐进地帮助学生形成算法思维。
Scratch提供了动作、外观等十大类模块,功能强大,指令多。以案例讲解的方式开展Scratch课程教学,可以激发学生的兴趣,但是知识点很难做到面面俱到。同时,Scratch涉及到了坐标、方位、变量等知识,缺乏相应的基础知识,学生只能通过模仿教师或参考资料来完成程序的编写。因此,笔者在Scratch课程教学中,帮助学生先从认识不同模块的不同指令入手,同时结合书籍《Scratch真好玩 教小孩学编程》中有趣的案例讲解各指令的使用。在学生熟悉各功能模块的知识点后,再进入到各种项目案例的学习中去。表一是笔者对Scratch中“运动模块”的课程内容安排,同时借助图1、图2的讲解帮助学生掌握坐标、角度的知识,通过创设不同的情景,让学生有序学习“运动模块”中的各指令,帮助学生打牢Scratch学习的知识基础。
“运动模块”的课程内容安排
模块 | 指令 | 内容 |
运 动 模 块 |
| 打开文件“小猫1.sb2”,为小猫编写脚本,使小猫能够快速移动起来。 |
| 打开文件“小猫2.sb2”,为小猫编写脚本,使小猫能够任意旋转起来。 | |
| 打开文件“小猫3.sb2”,为小猫编写脚本,使小猫能够面向女巫发起攻击。 | |
| 打开文件“小猫4.sb2”,为小猫编写脚本,使小猫能够瞬间移动,攻击女巫,熟悉“移到XY”指令的使用。 | |
| 打开文件“小猫5.sb2”,为小猫编写脚本,使小猫能够跟踪导弹的发射,熟悉“移到”指令的使用。 | |
| 打开文件“企鹅.sb2”,为企鹅编写脚本,使企鹅能够滑动起来,熟悉“在几秒内滑行到”指令的使用。 | |
| 打开文件“小猫6.sb2”,为小猫编写脚本,使小猫一靠近墙壁就被弹回,熟悉“碰到边缘就反弹”指令的使用。 | |
| 打开文件“小猫7.sb2”,为小猫编写脚本,使小猫能够控制旋转的角度,熟悉“将旋转模式设定为”指令的使用。 | |
| 打开文件“小猫8.sb2”,勾选运动模块的x坐标、y坐标、方向,小猫不停反弹的时候,说一说数值的变化。 |
在这一章节的学习中,学生对各指令的功能、参数的设置都有了清晰的认识。这样的学习过程帮助学生扎扎实实的打好Scratch的知识基础,练好Scratch操作的基本功夫,为算法思维的培养奠定了坚实的基础。
根据皮亚杰的认知学习理论,小学生随着年龄的增长会从具体运算思维阶段逐步过渡到抽象逻辑思维阶段,但仍带有很大的具体性。传统的Scratch课程教学偏重使用自然语言对程序进行分析,内容分析看似“清晰明了”,但对于小学生而言,却显得抽象难懂。千言万语不如一张图,流程图在表示算法思路方面是一种极好的办法,具有形象直观、易于检查等特点,十分符合小学生的认知特点。应用流程图分析算法,可以让学生理解问题解决的一般过程,以及理解计算机解决问题的核心思想。
以Scratch设计的“猴子接香蕉”的游戏为例,笔者先引导学生使用自然语言描述游戏场景:香蕉纷纷落下,如果碰到猴子就隐藏并将分数增加1,如果不碰到猴子就继续落下。接着,笔者重点引导学生思考关键字“如果”背后的条件判断思想,并使用流程的形式表示出来(如图3所示),以帮助学生快速的找寻到条件判断指令。
流程图的使用帮助学生将隐性的条件判断思想显性化表达出来,理顺了问题要素之间的关系,了解了条件指令背后的算法思想,有效培养了学生分析问题的能力,从而促进了学生算法思维的形成。
熟能通其窍,精能尽其妙。算法思维的培养更是如此,只用在创作应用中,算法思维才能得到有效提升。在Scratch课程教学中,学生创作应用的空间是广阔的,可以是创编故事,让学生结合自己的生活经历或者想象力设计故事情节,例如“校园情景剧”“未来的生活”;可以是制作实用工具,例如“计算图形面积”“判断闰年”等;可以是制作趣味游戏,例如“幸运大抽奖”“星球大战”等;可以制作艺术作品,例如“电子相册”等。
笔者在讲授完“猴子接香蕉”这一课例中的新知后,设计了如下的环节:让学生结合日常生活常见的情景,利用条件判断指令编写出合理的脚本(如图4所示)。
该环节将条件判断指令与生活紧密联系起来,不仅加深了学生对条件判断指令的认识,也将算法思想融入到生活问题的解决中,有利于学生算法思维的培养。例如,从学生在本环节中制作的作品(足球点球、汽车遇到行人要让行),可以看出学生对问题的表达能力、分析能力、解决能力都有了很大的提升(如图5、图6所示)。
教师应为学生创造更广阔的创作空间,激发学生的创作灵感,让学生在创作中不断加强算法思维的培养。
四、结束语
正如乔布斯的经典名言:“这个国家的每一个人都应该学习电脑编程,因为它会教你如何思考。"Scratch课程教学教授的不是一种技术,而是一种思维方式。优秀的老师不会只是让学生模仿,而是应该关注如何利用Scratch培养学生的算法思维。经过小学信息科技Scatch课程培养的学生,不仅思维得到促进和发展,而且解决问题的能力也有所提升。笔者相信,不管未来的社会如何发展,拥有算法思维的学生,都能立于不败之地。
参考文献:
[1]高淑印.小学信息技术关键问题指导[M].高等教育出版社.2016年8月版:160-165.
[2]刘赛飞.Scratch真好玩 教小孩学编程[M].机械工业出版社.2019年8月版:1-28.
[3]方其桂.Scratch创意编程 趣味课堂[M].清华大学出版社.2019年2月版:54.
[4]周旺纯. 基于脚本解构的Scratch教学[J]. 中国信息技术教育, 2019, (17):30-33.
[5]梁永辉.Scratch 程序设计教学中培养小学生计算思维的研究[J].教育信息技术,2018,(7):83-86.