吴凝
笔者所在省的小学是从三年级起开设信息技术课程的,三至六年级共有8册教材,2019年,我们启动了修订小学信息技术教材的工作。在本次教材修订中,教材内容调整为七个模块:信息的识别与获取,信息的存储与管理、信息的加工与表达(文字处理、图片处理、音视频的获取和处理、多媒体作品制作)、信息搜索及信息交流和网络安全、算法与程序设计、初识机器人、初识物联网。教材修订后,内容中增加了编程的分量,选取了适合小学生学习的Scratch语言和LOGO语言,意在培养小学生编程的兴趣和意识。笔者现将Scratch编程教材的设计与思考分享给大家。
● 编程内容设计新颖,符合小学生的年龄特点
虽然Scratch是一款适合小学生使用的积木式编程工具,人机交互友好,但对于小学生而言,编程本身是缺乏趣味的,无论编程指令还是编程规则都比较抽象和枯燥,而如果基于小学生爱玩的特点,利用Scratch编写游戏、创编故事程序,则能够让他们喜欢上编程,产生成就感。
Scratch编程教材内容分为两个单元,共16课,第一单元设计了8课时的内容。教学目标指向Scratch编程平台和编程基础知识的了解,设计一些简单有趣的小任务,让学生掌握最基本的编程技能,如:制作成语故事《坐井观天》的动画,让故事中的角色进行对话;制作打篮球的小动画,绘制篮球投篮的运动轨迹,实现篮球沿特定轨迹运动的动画;根据输入的正多边形边数,自动完成正多边形的绘制,感受计算机重复执行指令的精准便捷;设计“神笔马良”小游戏,实现类似“画图”软件中的画笔功能,用鼠标绘画……每节课都让学生在玩中学,不仅拉近了编程与实际应用的距离,并且渗透了编程的方法和思想。
第二单元的教学目标是应用前面学习的相关知识和技能解决实际问题,并且用编程方法思考问题,促进学生思维的发展。教材用8课时创编“保卫地球”故事:一颗超级大的陨石正向地球飞来,如果撞向地球,后果不堪设想。从小对计算机知识非常感兴趣的Luke和它的机器人助手R2d2得知此消息后,决定用自己所学知识去完成保卫地球的任务。学生将与Luke和R2d2一同经历陨石来袭、采集能量、进入基地、卫星侦测、准备战斗和发射导弹这6个前期准备任务,然后完成拦截陨石任务。学生通过这个故事情境创设,学会分析需求,探究编程技能,并运用Scratch编写完整的“保卫地球”编程作品;通过场景分析、添加角色和背景、位置初始化、角色的代码设计和代码完善,体验程序设计的整个过程。
小学高年级学生的思维正处于从形象思维到抽象思维的发展过程,正在从与他们熟悉的场景的联系中形成概念、发现并解决问题的阶段,走向利用语言文字就能在大脑中重建事物发展过程来解决问题的阶段,如果编程内容设计符合他们的学习心理,生动有趣,并适时提供支架,就能降低其学习编程的门檻,让他们爱上编程,并促进思维的发展。
● 编程内容以指向学生思维培养为重点
以往在编程教学中,教师关注更多的是学生操作技能是否掌握,对学生的思维培养关注不多。我们在设计教材内容时,仅对编程中可能涉及的代码基本用法做简要介绍,保证学生能够看懂程序,不进行Scratch各模块指令的系统化学习,而是通过对游戏场景进行情节设计,让学生理解游戏规则,编写简单的程序代码,实现游戏效果,理解程序设计的基本算法和逻辑关系。
例如,处理“运动”模块中的三个指令:
如何理解这三个指令实现的不同功能,恰当地应用于编程中,我们在设计任务时,将这几个指令放在积木块中,让学生理解不同指令实现的不同效果。制作“打篮球”动画时,要让篮球沿着运动轨迹中各个位置点移动,可用指令来实现,但如何确定X和Y的坐标值呢?为避免冲淡教学主题,教材设计成让学生将篮球拖动到运动轨迹的起始位置点,拖动“运动”模块中的指令到代码区,再次拖动篮球到运动轨迹的第二个位置点,拖动指令到代码区,运用同样的方法,堆积代码实现篮球沿着运动轨迹移动的效果,但运行测试时,学生发现篮球直接从起始位置跳到了终点位置,没能像预想的那样沿着轨迹运动的效果,再单击“当绿旗点击”时篮球没有运动,这时让学生将指令替换成指令,就能实现篮球沿着运动轨迹运动的效果。
接着比较这两个指令,都可以实现从坐标点X:120,Y:23到坐标点X:-48,Y:155的移动,但是用指令有延时的效果,可以实现篮球沿运动轨迹运动的效果。
● 渗透编程思想,以解决问题为核心目标
编程教学的目标指向不能仅停留在知识层面,而要指向思维、能力层面的提升,培养学生编程的逻辑思维、创新性思维,使其学会利用信息技术工具来处理信息,解决真实问题。
教材中设计的小游戏,通过明确学习任务、游戏分析、编写角色代码、测试和完善代码,使用编程工具编写程序实现游戏效果,并且设计练习,引导学生用编程的思维方式去思考问题的解决方案。例如“找苹果”游戏中,练习是设计“换装”游戏,用到了使用指令来侦测是否按下了方向键,使用指令判断满足条件下需要执行的指令,如果按下“向上”方向键,就面向90度方向前进10步。学生在理解“如果按下……键,就做……”思维方式的前提下,来设计“换装”游戏的编程思路。这样的练习设计可以让学生在完成游戏作品中得到愉悦体验,并且还留下了设计新游戏的空间。
● 重视调试程序,设计代码完善环节
程序调试既是程序设计的重要环节,也是编程教学的重要环节。对于编程教学而言,程序调试除了完整地完成程序设计工作,使学生获得成就感以外,还有很多的教育价值:其一,可以让学生更好地体验计算机通过自动化的程序来完成任务;其二,可以让学生验证编程实现任务设计的效果,进行预设与效果的比较;其三,可以培养学生缜密的逻辑思维和推理能力。我们在教材中每一课的最后都设计了“测试与完善代码”内容,有针对性地设计“漏洞”,让学生深感调试和完善代码的必要性。
P68 五、测试与完善代码
细心的同学可能会发现,代码在运行过程中有个问题:采集飞行器总在能量块的后面,画面很奇怪,这是为什么呢?
这个问题可以利用角色的层叠次序来解决,在飞行器角色代码一开始添加外观指令,就可以使飞行器始终出现在能量块的前面,代码修改前后对比如下:
小学信息技术编程教学的实施是关键,而教师对教材设计的理解、教师编程素养的高低、教研团队研讨方法等因素,都影响着编程教学的效果,因此,在小学开展编程教学任重而道远。