小学生编程教学的实践与思考

2017-12-07 18:30汪霞华
中国信息技术教育 2017年21期
关键词:语句积木编程

汪霞华

近年来,越来越多的小学开展计算机编程教学,这是培养学生使用信息技术解决各类问题的意识和能力的重要组成部分。图示化、积木式的程序环境的出现,降低了编程的入门要求。但对于大多数小学生而言,编程本身并不有趣,无论编程语句还是编程规则,都是抽象和枯燥的。基于小学生爱玩的天性,编制游戏程序获得他们普遍的欢迎。然而,面对小学生对游戏编程教学的喜爱,教师的教学遇到了新的挑战。首先,以前的编程教学基本上是教师出示一个任务,学生照着模仿写语句,但时间长了,学生缺乏自由想象与创新,自己的分析与设计较少体现在自己的程序中;其次,由于小学生的年龄偏小,而编程的学习一定需要逻辑思维的支撑,所以教师需要培养学生对事情抽象再逻辑化表达的能力,提高他们分析问题和解决问题的能力;最后,小学生的关注点往往在游戏本身,这样会忽略游戏编程背后的编程思想。因此,教学设计需要把“理解编程思想,培养编程思维”作为重要的教学目标。

困难一:

关注编程任务分析,缺乏指导学生建模的方法

存在问题:大多数教师在编程教学中,关注的是编写代码本身,对如何建模并不重视。学生往往根据一个任务,在教师的指导下通过模仿类似的程序设计,开始编程和调试,在整个过程中,学生可能学会了一些编程的技巧,但对编程的目的和方法还是一知半解,无法编写出具有自己想法和个性化的程序。

解决方法:编程任务的分析与建模是指能够对现实世界的事物进行分析,用适合计算机编程的形式表达出来。这种抽象能力和构造能力,不仅在编程中很重要,也是一种在日常工作生活中解决问题的能力。

以《捕鱼达人》为例,它是用Kodu编程环境完成的教学任务,其要求是根据自己创编的“捕鱼达人”故事,制订相应的游戏规则,编写一个游戏程序:游戏主角在海里移动,捉到鱼时可以获得奖励,同时要避开障碍;当奖励值达到一定數值时成为捕鱼达人,游戏结束。

根据王荣良教授提出的“故事—规则—语句—作品”儿童编程学习流程,笔者把《捕鱼达人》设计为故事分析、人物设计与游戏规则制订、场景设计、编写代码、作品调试等五个教学环节。其中,故事分析、人物设计与游戏规则制定环节就是完成编程任务的分析与建模工作。

课上,老师首先提出:“海里有很多鱼,如果你想让Kodu成为一名捕鱼达人,你能编一个怎样的故事呢?”

同学甲:海里有一些鱼,它们自由地游动,Kodu很聪明也游得很快,一会儿他就捉到了5条小鱼,成了捕鱼达人了。

同学乙:海里有各种各样的鱼,有的鱼是Kodu喜欢的,有的鱼还会伤害Kodu,他既要捉住小鱼,也要防止坏鱼,他要捉到6条小鱼才能成为捕鱼达人。

同学丙:海里有鱼也有一些水草,当Kodu被水草缠住,他就不能捕鱼了,他要绕过水草,捉住6条小鱼,才能成为捕鱼达人。

以上师生问答教学环节的设计,是希望通过一定的故事情境帮助学生理解、分析任务的目的、参与的角色及角色之间的关系,为游戏规则的制订做好准备。然后,教师提出了如下几个问题,要求学生作深入的思考:①根据你的故事,在游戏中需要设计哪些场景和对象?②根据你的故事,每一个对象会做哪些动作?③根据你的故事,如何设定游戏的奖励和惩罚?④根据你的故事,如何认定Kodu成为捕鱼达人了?

接着,教师要求学生填写学习单,归纳整理《捕鱼达人》游戏中的对象和游戏规则。

请根据你创编的故事,选择相关的场景和对象,填写下面的表格。

场景:□海洋□陆地

对象:□Kodu □鱼 □水草 □_______

至此,尽管教师还没有开始用计算机编写程序,但已经为学生下一步编写程序提供了明确的要求。这样的设计强化了学生的思考过程,把学生关注计算机的操作转化为对问题的分析。学生通过这样的学习方法,可以在游戏故事情境中学会“抽象”游戏规则,并用形式化的方式“表达”规则,潜移默化地学会“构造”计算机程序的方法。

困难二:

关注编程积木工具的具体功能,缺乏程序思维渗透的方法

存在问题:Scratch程序设计是一种全新的编程理念,搭积木式的编程方式,操作简单,学生利用它可以充分表达自己的创意,轻松创作各种故事、音乐、游戏等动画作品。由于Scratch积木式编程方式把一些语句做成模块,所以学生对一些程序命令的流程缺少认识,这在一定程度上也弱化了计算机学科形式化编程思想的习得。

解决方法:正因为Scratch编程环境采用积木方式,所以学生不用记忆命令语句,教师不需要通过对程序语句的解构来抽象地分析程序流程的结构特点。当教师把教学重点放在对任务的分析上时,就能顺应学生的创作欲望,同时整理清楚所分解的每个小任务的相互关系,从而把逻辑思维的教学渗透在编程教学中。

以《图形的变化》为例,它是在Scratch编程环境下完成的一个画规则图形组合的教学任务,其要求是:①通过观察规则图形,发现其规律,能够利用循环指令编写程序绘制规则图形;②理解循环语句的意义,掌握循环语句的使用方法。其中,“循环”是计算机编程的一个典型结构,是需要重点掌握的编程思想。

课堂上老师提出故事情境:我们的神奇花园里盛开着一朵神奇的花,大家仔细观察,你们发现了什么?能画出来吗?

通过讨论,学生得到答案,这朵花是由六个一样大小的正方形组合而成的(如下图)。但是学生却无从下手,他们似乎遇到了很多困难。有的学生直接提出来:正方形如何画?老师开始把大的困难分解成若干小的问题:

1.Scratch中哪儿的积木负责画画,你能找到吗?

2.画笔的颜色,粗细可以设置吗?

3.哪一块积木负责画画的?画错了怎么办?

4.你能试着画出一条长度为60毫米的直线吗?

5.你能试着画出一个正方形吗?endprint

6.你发现有什么简便的方法画出正方形吗?

当把大的问题分解成若干小问题后,学生的积极性提高了,较容易地就完成了前面四个问题。但是,学生的感受是Scratch可以当作画板,很有趣。因此,教师需要进一步提示。

老师提示:如果我是一只小蚂蚁,刚才很容易走了60步,走出了一条直线,现在我要转弯啦,往右转,转多少度就能走出一个直角呢?学生一下子就反应过来,要“右转90度”。通过不断尝试,学生在“小蚂蚁”的引导下,画出了第一个正方形。

继续提示:你们发现代码有重复的地方吗?学生很容易看到:move 60步;右转90度;这两句写了四遍。这次,老师再告诉学生,我们可以用另外一个命令——重复命令来代替刚才的过程。我们写了四遍,那么重复命令就应该选择重复4次的积木。其实在计算机里,我们把重复这块积木称为循环。在这个例子里,循环的内容是前进60步,右转90度,就是告诉我们循环4次后,我们的正方形就绘制成功了。

最后,老师布置课堂任务,促使学生深入思考:

1.图中的花朵是六个正方形组成,我们接下来需要重复几次?

2.每个正方形都是围着一个中心点进行旋转,那么你知道旋转了几度吗?

3.你可以尝试画出大小不同的花朵吗?

教学过程呈现了学生的理解过程是:认识Scratch可以画画→发现画正方形有规律→Scratch中的重复积木可以使用→循环,这是一种表达操作步骤的方式。计算机编程中一些教学内容比较抽象,不容易被小学生接受和理解,所以教师在指导编程技巧时,可以通过化繁为简的引导,将深奥的理论讲得通俗易懂,让学生既能完成“图形的变化”的编程任务,又能对条件、判断、循环等编程方法有正确的理解。

困难三:

关注学生编程过程,缺乏学生调试程序的教学方法

存在问题:小学生往往因缺乏调试程序的思路和方法而无从下手,调试随意,甚至在调试过程中,为了让程序顺利运行,没有根据原有的设计目标去合理修改自己的程序,反而让程序无法完成原来的设计目标,甚至有的学生根据程序执行的结果,修改原有的设计目标。

解决方法:程序调试不仅是程序设计的重要环节,也是编程教学的重要环节。只要程序有一定的规模,程序编写就不可能一次成功。对于程序设计工程而言,程序调试是为了获得无错的程序。对于编程教学而言,除了完整地完成程序设计工作,获得成就感以外,程序调试还有更多的教育价值:第一,可以很好地体验到计算机的自动化属性;第二,可以强化设计目标的理解,也就是对计算机世界的理解;第三,可以培养缜密的逻辑思维和推理能力。在编程教学过程中,调试环节的设计是指要求学生先依据原来的方案设计,调试和完善自己的游戏程序,在这个过程中,学生需要再次把故事与最终的程序进行匹配,是一种预设与效果的比较,体验通過自动化的程序来完成任务。

仍以《捕鱼达人》为例,学生学习了when…do…语句完成自己的游戏程序的编写后,进入调试阶段。他们根据自己原来的方案设计,从场景、对象、过程、结果进行了针对性的测试。对于不能达到预期目标的现象,查找与检测对应的when…do…语句。

在实际教学过程中,因为学生编制的是游戏程序,所以调试程序很容易变成玩游戏。事实上,玩游戏同样具有教育价值,同伴之间相互调试程序就是一种实现方法。

同伴之间的互换调试程序行为,是希望通过测试他人的程序来拓宽自己的思路,让同伴帮助自己完善作品。为了避免互换调试程序行为陷入单一的玩游戏,教师要给出评价标准、评价内容,以帮助学生掌握评价的重点。

在学生基本完成自己的程序调试工作以后,教师要求相邻同学互相交换运行游戏程序,并填写下面的学习单,把自己的感受和建议告诉你们同伴。

同学之间调试他人的作品,能够取长补短,共同完善双方的作品,提高学生之间的合作能力;通过发现同伴方案设计与程序设计的不同,可以关注细节,培养学生的耐心和理解力。

结语:

此次专题只是儿童编程教育的一个初步探索,也许还不够全面,但这并不是重点,重点是希望通过儿童编程教育,让孩子从编程开始学会思考,这就是儿童编程的最大意义。endprint

猜你喜欢
语句积木编程
堆积木
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
编程屋完成数百元万天使轮融资
学编程,先画画
有趣的积木
玩积木
基本算法语句
我喜欢
作文语句实录