给小学生的App Inventor课程
刚刚完成一个培训任务,给60位小学的信息技术教师作App Inventor的编程培训,授课时间是6个小时(两个上午)。接到任务时,心中既欣喜,又不免忐忑,欣喜的是终于有机会开始考虑面向小学生的App Inventor课程了,忐忑的是,要选择怎样的案例,才能既覆盖到编程语言的语法要素,又不超出小学生的知识范围与理解能力。虽然这是一个面向教师的课程,但是课程的组织者希望我的课程可以直接转化为面向学生的课程。
提前半个月开始准备课程,共准备了难易程度不同的10个例子,语法上覆盖了变量、过程、条件、循环四大要素,使用到了按钮、标签、滑动条、画布、精灵、照相机、音效播放器、加速度传感器、方向传感器、计时器等等,介绍了事件驱动的编程特点,还穿插了一些常用的块语言使用技巧。由于时间关系,课上只讲了4个例子。
课程从一个最简单的例子开始,有点类似于Hello world,项目名称为“变魔术”,与公众号课程中“按钮的故事”相似,利用加速度传感器的摇晃事件,实现图片的显示与隐藏,并配合不同的声音效果,来突出魔术的神奇效果。第一个案例就使用了条件语句,引入了事件驱动的概念,并成功地调动起学员的学习热情,是一个不错的破冰课程。
第二个例子选择了涂鸦板,这个例子主要介绍画布的绘图功能,对于低年级小学生来说,涂鸦是一种充满乐趣的事情。案例分为两个阶段讲解,初级阶段实现画线功能,可连续调节画笔线宽,可调颜色只有红绿蓝三种;高级阶段的颜色调节范围增加到1667万种,在讲解合成颜色块的同时,介绍了计算机的颜色合成机制——RGB及每种颜色的256个色阶。数字滑动条的使用为编程增添了不小的乐趣,学员们熟悉了与组件进行交互的思路,对于事件处理程序的编写也更加娴熟。在高级阶段讲解了两种类型的自定义过程——有返回值过程及无返回值过程。
第三个例子是绘制乘法口诀表,语法涉及到了循环语句,而且是双层循环。从单层循环开始,先绘制九九表的第一列,然后再扩展到双层循环。在介绍循环语句的同时,讲解了文本类数据的处理方法——字串拼接、换行等,并引入了有返回值的条件语句块。与前两个例子相比,这个例子的逻辑要复杂许多,因此先以1加到100为先导,介绍循环语句的运行特点,再正式开始九九表的例子。有一部分学员开始感到困难。
第四个例子是小球蹦蹦跳,利用画布、精灵及计时器组件,以动画的方式模拟现实世界中小球下落并弹起的阻尼运动。这个例子中涉及到了高中的物理知识——匀加速运动,不过这里是以实验的方式展开的,以小学生可以理解的方式讲解重力与空气阻力对速度的影响,并绘制出小球运动的轨迹。这个案例的讲解大部分在黑板上完成,包括对公式的解释,对画布坐标系及画布边界代码的介绍,等等。代码的编写并不复杂,只是条件判断以及简单的四则运算。
贯穿于课程始终的,是学员们的学习热情和富有创造力的解决问题的方法,有些甚至超出了我的想象。例如,在做涂鸦板的例子时,有学员问,当画笔线宽变大时,绘制的线条出现断裂,有没有办法弥补,我给出的答案是不能,可是第二天居然有一位同学给我演示了他的解决方案——在画线的同时画圆。可惜我没有记住这位同学的名字,如果你能看到这篇文章,希望能够与我联系,欠你一本书的奖励。
另外值得一提的是,图灵公司为我的这次培训免费提供了60余本创客教育类图书,作为课堂上对学员们的奖励,提问、回答问题以及率先完成课堂练习的学员,都有机会获得图书奖励,有一位同学获得了4本书!这些图书受到了学员们的追捧,我也趁机为我翻译的两本书签上名字。在这里对图灵的支持表示衷心的感谢!