491545
post:491545

身边的程序设计

  • 发布时间:2013-02-22 15:49
  • 作者:陈明
  • 点击量:

身边的程序设计

一、用Logo语言制作动画

师:调用过程“DHFC”,出示旋转的风车,请思考动画的制作过程?

生:有可能是画一个风车,再斜一点再画一个,再继续。

师:已经有点意思了,下面请大家看一看小海龟用慢动作来做的动画。

生:画一个风车,停一下,擦掉风车,换个角度再画风车,重复上面的步骤。(出示板书:画风车 等待 擦除风车 旋转 重复)

师:画风车用什么语句来完成?

生:调用过程FC。

师:等待的英语单词是什么?

生:WAIT

师:WAIT也是Logo语言中的命令,用WAIT 10相当于等待0.1秒。

师:擦除风车呢?

生:CLS

师:CLS后,怎么控制旋转角度呢?还有那个命令可以擦除啊?

生:PE FC

生:画风车的语句有问题,用了PE后一定要用PD才能画出风车,所以画风车是PD FC。

师:对,这位同学很善于思考,如果没有这位同学的提醒,很多同学过会就会出现问题了。怎么旋转呢?

生:旋转用RT,多少度不知道。

师:RT 2就可以了,当然你想旋转的快一点该怎么办?

生:RT 10或者20,把参数变大就可以了。

师:重复用REPEAT,次数有100次也就行了,不要让小海龟太累了。

(边讨论边出示命令,最后形成完整的语句:REPEAT 100[PD FC WAIT 10 PE FC RT 2]。)

学生学习Logo语言程序设计来画图,需要记忆很多英文命令,画错了还没有撤消,擦除上一步比较麻烦,全部擦掉又要重画,填充颜色也不方便,学生都很怀念《画图》软件。那为什么要学习Logo呢?Logo语言是美国麻省理工学院人工智能实验室研制成功的一种高级计算机语言。它以认识心理学和人工智能原理为依据,目的是给少年儿童提供一种较好的智力开发环境,使儿童们不仅学会使用计算机,同时还学习如何像数学家、语言学家一样进行思考与解决问题。

为了让学生能愉快的学习的Logo语言程序设计,在教学过程中经常让学生画感兴趣,贴近学生生活的内容,如:画雪花,风车,楼梯等。在学生学会定义过程以后,充分运用过程调用来快捷完成一个作品,从而设计了《制作动画》这一节课,学生一看到一个旋转的风车,感觉很是神奇,然后就想知道是怎么做的,通过老师一步步的引导让学生理解动画制作的原理,在拓展练习中老师提出:除了可以做出旋转的动画,你觉得还可以做出哪些其它动画呢?引导学生放飞思维,学生制作出了滚动的小球,推箱子等移动动画,一个学生在制作推箱子的时候由于忘记擦除,制作出了铁轨,从而提醒了我和所有同学用制作动画的过程中去掉擦除就可以制作出一个动态完成的画。通过学生自己的努力,不仅创造性的完成了学习任务,而且学生会期待下一节课。

二、用FreeBasic解数学题

师:今天我们来做一道数学题奇妙的算式:EGAL×L=LGAE, E、G、A、L均为一位非负整数,需要求出E、G、A、L各值。

师:请说一说解题思路。

生:穷举E、G、A、L的值,判断算式是否成立 ,成立就打印出结果。

师:E的穷举范围是多少?

生:0~9。

生:1~9,E出现在千位上,不能为0。

师:还有谁的范围和E的穷举范围是一样的?

生:变量L。

师:EGAL这个四位数怎么组成?

生:E*1000+G*100+A*10+L。

程序如下:

DIM AS INTEGER E,G,A,L,B,C

FOR E=1 TO 9

    FOR G=0 TO 9

        FOR A=0 TO 9

            FOR L=1 TO 9

                B=E*1000+G*100+A*10+L

                C=L*1000+G*100+A*10+E

                IF B*L=C THEN PRINT E,G,A,L

            NEXT L

        NEXT A

    NEXT G

NEXT E

SLEEP

END

师:你还能用FreeBasic解哪些数学题?

生:百元买百鸡问题。

生:鸡兔同笼问题。

生:歌德巴赫猜想,数列问题等。

程序设计的许多教材都不是针对小学生编写的,许多题目教师不进行解释学生根本就读不懂题目,学生学习程序设计本来就十分枯燥,又老是在解决这样的问题,学生学习的难度明显加倍了,所以很多学生学习程序设计的热情也慢慢消退。为了能够增强学生的学习热情,在教学的过程中多使用和学生数字知识相关的题目让学生利用原有经验,再加上现有的程序设计能力快捷、方便的计算出结果,从而消除学习程序设计的恐惧感。

三、用Scratch编写游戏

目前小学程序设计教学使用的是FreeBasic和Logo语言,它们属于命令式程序设计语言,学生在学习命令式程序设计语言初期最困难的是记住每一条命令的拼写、功能和语法,需要记住很多英语单词,编程的时候特别容易发生输入错误。Scratch把所有命令设计成积木式的指令块,中文显示见名而知意,也不需要去记忆语法,只有当语法正确时才能将指令块结合到一起。比如循环结构被设计成“C”的形状,提示使用者要反复执行的指令块需要要放到里面。能够输出值的指令块的形状和数据类型有关,如果是数值,那么形状是椭圆形的,如果是逻辑判断,形状是六边形。如果形状不匹配是不能放到一起的。因此,用它编程不用担心语法错误,可以让学生在不知不觉中,学习程序语言的概念,进而增加推理能力、掌握逻辑概念。

在Scratch课堂教学的过程中每一节课都精心设计一个游戏,通过制作这个游戏的过程,学生学会一、二条程序指令,从而达到润物细无声的效果。通过《制作传球动画》学习移动和平滑移动语句;通过《制作打棒球动画》学会面向语句;通过《制作会动的眼睛动画》学习重复和绘图编辑器的使用;通过《制作鱼儿水中鱼》学习随机数和碰到边缘就反弹命令;通过《制作猴子接香蕉游戏》学习侦测、变量、切换造型的语句;通过《制作打鲨鱼游戏》学会应用思维导图学会规划自己的游戏。

在Scratch教学过程中每节课都是以展示学生优秀作品开始,让学生了解同年级其他学生的水平。每一节课的结束学生会把自己制作的作品提交给教师,我会在其中选出优秀作品下节课展示。

展示学生作品后演示本节课要制作的游戏,让学生从背景、角色和角色动画内容进行分析,在动画内容的分析过程中,学生知道那些功能是已学的程序指令块能实现的,那些功能是我们今天需要学习程序指令块来完成的,这样在知道需要学习指令块功能的前提下,学生可以根据功能把尝试的从程序指令块分类中找出指令块。示范一般让学生展示尝试制作的结果或过程,教师补充。

当新授内容学习结束后,学生自己制作,如果教师展示的游戏功能制作完成,那么学生可以自己创新,制作出自己的个性化的功能。在制作的过程中教师帮助学生解决一些问题,遇到共性问题全班展示寻求解决方案,最后再展示几个优秀作品。

兴趣是最好的老师,学生在制作一个个游戏的过程中掌握程序设计技巧。更有一些学生通过玩Scratch自带的例子,掌握更多程序指令从而制作出更精彩的游戏。

孔子说:学之者不如好之者,好之者不如乐之者。在学习程序设计的过程中让学生在熟悉或者是感兴趣的环境中学习,慢慢培养学生的学习程序设计的兴趣,相信每一个孩子都可以成为小小程序员的。

 

上一篇:袁晖期初论文