问题提出

计算思维和编程能力是信息技术学科的核心素养,也是本学科区别于其他学科的特色所在。以前,初中、小学学编程的人,不仅要数学好,而且要有抽象思维。因为以前的程序设计教学,小学、中学、大学几乎都是一个模式,先讲数据结构和算法,再讲编程语言。这本来是教大学生的模式,却用来教中学生、小学生,那么能听懂、能学会的中学生、小学生,当然是学习思维成熟的学霸了。

前几年,机器人的出现使程序教育实现了形象化,但机器人的硬件成本太高,而且机器人的零件容易散落。后来又出现了scratch编程猫,但它的图形化界面、模块化编程中的代码没有真正地和一门编程语言(如C、Phython)一一对应。

我通过教学发现,借助某一款机器人的软件端( 杭州的纳英特、广州中鸣或乐高),或萝卜圈虚拟机器人,把它们安装到机房里每一台学生PC机上,在讲编程课时调出来使用还是比较可行的。

机器人软件程序在教学中的探索和应用

1.算法转化为流程图很方便

编程教学最主要就是教算法。那么算法转化成流程图,最原始的就是在word里面,不自选图形。现在网上有了思维导图的软件,如Xmind里面有画流程图的。但我认为还是借机器人所配的软件使用起来方便,借助机器人软件,在编程过程中都是拖拽式编写流程图的。

2.低成本、形象化地体验顺序结构

计算机编程,其实就是顺序结构、分支结构、循环结构的组合使用。而顺序结构又是最基本的。顺序结构的实质就是计算机逐条指令执行,但是怎么把它形象化是有难度的。因为计算机指令执行起来非常快,为了让学生体会到计算机是怎样逐条执行指令的,我动了好多脑筋。在Python语言的教学中,就是执行一条输出一条。后来我在上机器人选修课的过程中,在编一个迎宾机器人的程序中,发现机器人每执行一条乐曲指令就播放一句乐曲。这种实时的交互性,能充分体现分析顺序结构、逐条执行,它把计算机很快的执行放慢了,而且显示了出来。后来我想到如果编成机器人,每执行一条指令,电机驱动轮子转几圈,机器人前进几厘米,学生也能体会到计算机逐条指令执行的顺序结构,但前提是必须每个学生或者两个学生有一台机器人硬件。而用这个迎宾机器人编音乐程序,只需要每台学生计算机安装纳英特机器人的软件,不需要机器人。在程序运行时,它是驱动PC机的喇叭发声的。(用杭州纳英特积木机器人软件代码如下页图1所示)

3.借助萝卜圈虚拟机器人软件体验分支结构

用萝卜圈虚拟机器人软件(萝卜圈官方网站网址http://www.irobotq.com/website2/index.html?get=4),编写一个过路口判断有无行人的程序。

虚拟机器人小车上装两个红外测距传感器,当两个传感器的距离差值小于等于车身宽度时,说明路口斑马线上没有行人。当两个传感器的距离差大于车身宽度值时,红外波反射遇到了障碍即行人。

4.从顺序结构过渡到循环结构的教学案例

所谓循环其实就是重复地做相同的事情,体现在计算机编程里面,就是顺序结构被反复执行。我在教学时,用了机器人走正方形的例子(走相同的步数的直线后就右转,因为正方形有4个直角,要执行4次)。先写了一段代码(借助杭州纳英特积木机器人软件所见即所得,可拖拽式的流程图编写很快捷高效)(如图2)。为了使流程图当中的处理模块跟代码对应起来,我特地把旁边的代码又复制了一份放到流程图的旁边。

我启发学生这些代码反复是重复的,能不能写一次就实现了?这就引入了循环结构。(借助于杭州纳英特积木机器人软件的代码如图3所示)

结束语

在教初二学生编程的时候,我无意中把机器人拓展课用的软件引入进来,发现拓展课学生之所以喜欢机器人编程是因为给它形象化了,降低了难度。因此,针对很多初次接触编程的学生,我们可以借助这些机器人的软件,把程序代码通过流程图做得形象化,把顺序结构做成交互式,把分支的选择结构做得体验化,这样学生就不会再畏惧编程了,也使得中小学生的编程教育真正不同于大学生的编程教育。

作者简介:方明洪,男,1976年3月生,浙江宁波人,宁大物理本科,浙师大在职理硕士学位(信息管理系统与多媒体方向),2003—2006年四川师范学院西部教育研究所特聘研究员,2006年宁波市城区骨干教师,2008—2010年海曙区学术学科带头人培养人选。热爱科研,公开发表论文19篇,其中核心期刊7篇。