|
本帖最后由 angelisnear 于 2016-6-15 15:03 编辑
授课目标:
主要目标:让孩子学会思考如何使用之前学过的乐跑机器人命令实现预定的
目标
次要目标:教授机器人判断命令
授课内容:
1、完成机器人向前跨栏动作,完成机器人向后跨栏动作,完成机器人来回跨
栏动作
2、时间充足,则引入判断命令if
授课提纲:
1、强调课堂纪律,2'
2、发放打印的打印问题答案连线表,让孩子们做题,格式如下,5'
问题 命令
每个机器人程序必须要有的一个命令
让机器人停止的命令 trun_off()
让机器人前进一步的命令 move()
让机器人左转的命令 turn_left()
用来定义一个函数的命令,函数的作用
是使用一条命令让机器人连续做多个动作, def
这些动作可以是不重复的动作
定义一个右转命令,让机器人做三次左转动作 def ______():
turn_left()
turn_left()
turn_left()
定义一个前进命令,让机器人连续前进3步 def ______():
move()
move()
move()
同一种命令的多次重复动作,
可用什么命令简化 repeat
使用一个命令让机器人重复前进5次 repeat(move,5)
使用一个命令让机器人连续左转4次 repeat(turn_left,4)
完成练习后,提问,10'
Q1:定义一个命令让机器人左转一下,然后前进一步
Q2:定义一个命令让机器人左转一下,然后连续前进两步
Q3:定义一个命令让机器人连续左转三下,然后连续前进三步
3、演示机器人来回跨栏的程序,说明本节课目标是完成这个程序
老师会演示如何完成前跨栏,演示阶段按照老师提问,同学回答,老师操作
的方式进行
同学们完成来回跨栏
4、演示完成前跨栏程序,目的是演示思考如何达成目标的过程
4.1、第一个命令是让机器人停下来, turn_off()
4.2、首先前进一步 move()
4.2、再前进会撞墙 turn_left()
4.3、前进一步 move()
4.4、右转 turn_left()
turn_left()
turn_left()
4.5、前进一步 move()
4.6、右转 turn_left()
turn_left()
turn_left()
4.7、前进一步 move()
4.8、左转 turn_left()
4.9、提问:是不是后面的几次跨栏和第一次一样?
所以我们可以偷懒一下直接拷贝4次就可以了
4.10、上述每一步完成后演示效果 10'
4.11、同学们自己按照之前老师说的步骤完成机器人前跨栏程序15'
4.12、保存程序名为前跨栏,提问是否可以减少命令的数目?
4.13、怎么样定义函数, 10'
首先找到相同的命令段,比如说从第3行到第6行和第8行到第11行相同
,那么我们就可以为第3行到第6行定义一个函数
第二步定义函数,函数要放在所有命令前定义,想一个函数名字,比
如说AAAA,那么可以定义函数了。
def AAAA():
第3行
第4行
第5行
第6行
第三步就是使用定义的函数名替代所有和第3行到第6行相同的命令,直
接删除这些命令,写上AAAA()就可以了
4.14、同学们看一看前爬栏程序哪些命令可以定义成一个函数呢?
孩子们回答后,大家开始定义函数,简化程序吧。10'
4.15、怎么让机器人往回跨栏走呢? 15'
首先要让机器人怎么动?调个方向对不对?
然后引导大家想象机器人要怎么往回跨栏,
大家再想下前跨栏是怎么走的,与后跨栏有什么区别呢?
是不是只要调换下前跨栏中一些命令的顺序就可以了
大家写个后跨栏的程序吧
4.16、机器人是不是回到最开始的位置了,但是有点不一样?3'
对,方向不同,要再转回来,就变成跟一开始一样了
4.17、有没有同学想到怎么样让机器人来回来回的跨栏呢?10'
之前说过相同的一段命令就可以定义一个函数代替,大家想想每个来回是不
是都是相同的一段命令。现在我们是不是可以定义一个函数来表示一次来回
跨栏了呢?
4.18、定义函数
4.19、使用repeat让机器人来回跑个几次
助教要求
1、按照授课流程完成来回跨栏跑程序
2、观察孩子的闪光点,并提醒主讲加以表扬
3、带u盘拷贝孩子作品
目前最终代码:
def qianzuo():
move()
turn_left()
def qianyou():
move()
repeat(turn_left,3)
def qiankualan():
qianzuo()
repeat(qianyou,2)
qianzuo()
def houkualan():
qianyou()
repeat(qianzuo,2)
qianyou()
def laihui():
repeat(qiankualan,4)
move()
repeat(turn_left,2)
repeat(houkualan,4)
move()
repeat(turn_left,2)
repeat(laihui,10)
turn_off()
|
|