阳光志愿者机器人课程教案
- 格式:rtf
- 大小:186.03 KB
- 文档页数:14
阳光志愿者
机器人课程教案
200904 阳光计算机组 www.ygclub.org
版本 版本 时间 作者 更改内容 1.0 200904 大于 收集往次上课教案并整理成册。
目录 一. 版本 二. 目录 三. 版权 1. TODO,考虑使用CommonCreative的License
四. 前言 1. TODO,描述课程所使用软件rur-ple的来历,以及作者信息。
五. 教学目标 六. 教学内容 1. 第一个程序:走一步。 2. 第二个程序,走两步。 3. 第三个程序:走两步,左传,再走两步。 4. 第四个程序:画一个大的正方形(逆时针)。 5. 思考题:如何顺时针画个正方形。 6. 第五个程序:顺时针画一个正方形 7. 思考:这么多重复是不是很麻烦,是否有避免麻烦的办法,除了复制粘贴以外。 8. 第六个程序:用右转函数重做第五个程序,画一个顺时针正方形。 9. 思考:仍然要用到36个move(),右转可以定义成一个,函数,那么前进九步呢? 10. 第七个程序:再定义一个前近九步的函数,用两个函数完成顺时针正方形。 11. 思考题:爬楼梯 12. 程序八:做爬楼梯的程序 13. 思考题:下楼梯 14. 程序九:下楼梯(注意:爬台阶的函数不删) 15. 思考:往返楼梯 16. 程序十:往返楼梯 17. 思考:简化 18. 程序十一:repeat语句简化上下楼梯程序 19. 思考:跨栏程序,要用repeat语句。 20. 程序十二:用repeat语句,做个跨栏程序。 21. 思考:如果台阶宽度和高度不一样,栏的距离和高度不一样会出现什么情况:撞墙。 22. 程序十三:让我不再撞墙,前方有墙不走。 23. 思考:要让机器人不但不撞墙,还能找到出路。 24. 程序十四:找到出去的路 25. 思考:找到路后,如何走出去 26. 程序十五:走出死胡同 27. 思考:改变地图,如果死胡同带拐弯怎么样,会来回打转,走不出去,就需要更聪明rihgt_is_clear(), left_is_clear(). 28. 程序十六:走出有弯路的死胡同 29. 思考:聪明了,怕一下宽高不等的楼梯 30. 程序十七:if elif else爬楼梯(宽度高度不等) 31. 思考:跨栏,距离高度不等,可以用十七吗,试试看,结果不可以。 32. 程序十八:跨栏,距离栏高不等。 33. 思考:这次分了四种情况,多种情况也可以实现,只要多用elif语句就行了。 34. 程序十九:画正方形,看看能又多简单 35. 第二十个程序:新的思考方式,看前方走路。 36. 思考:while和if的区别。 七. 大于的话
版权 TODO,考虑使用CommonCreative的License
前言 本教程引用地址: http://tinyurl.com/ygclub-rurple 或者更长一点的地址: http://docs.google.com/Doc?id=dc7s8bgw_548czk8p6dv
请将反馈跟帖至 http://www.ygclub.org/bbs/thread-2040-1-1.html TODO,描述课程所使用软件rur-ple的来历,以及作者信息。
教学目标 知道什么是程序。 知道程序的三种结构:顺序,分支,循环。 提高学生们的逻辑思维能力。 能够阅读和编写简单的程序。
教学内容 介绍来自国外的机器人Reeborg,和他的世界:一个街道组成的矩形。如何用键盘操作机器人。
第一个程序:走一步。 需要介绍move()和turn_off()两个命令和如何运行你的命令。强调机器人必须有turn_off()命令,不然会出错。
move() turn_off()
第二个程序,走两步。 运行程序和单步运行程序。从单步运行程序中告诉大家其实程序就是命令的集合。 move() move() turn_off() 第三个程序:走两步,左传,再走两步。 告诉同学们机器人的第三个命令:turn_left()。
move() move() turn_left() move() move() turn_off()
第四个程序:画一个大的正方形(逆时针)。 move() move() move() move() move() move() move() move() move() turn_left() move() move() move() move() move() move() move() move() move() turn_left() move() move() move() move() move() move() move() move() move() turn_left() move() move() move() move() move() move() move() move() move() turn_left() turn_off() 思考题:如何顺时针画个正方形。 顺时针就要右转,如何右转,即三次左传 第五个程序:顺时针画一个正方形 Pro_5: turn_left() move() move() move() move() move() move() move() move() move() turn_left() turn_left() turn_left() move() move() move() move() move() move() move() move() move() turn_left() turn_left() turn_left() move() move() move() move() move() move() move() move() move() turn_left() turn_left() turn_left() move() move() move() move() move() move() move() move() move() turn_left() turn_left() turn_left() turn_off()
思考:这么多重复是不是很麻烦,是否有避免麻烦的办法,除了复制粘贴以外。 函数子程序的概念,如何定义一个函数,def关键字的运用。
第六个程序:用右转函数重做第五个程序,画一个顺时针正方形。 def you(): turn_left() turn_left() turn_left()
turn_left() move() move() move() move() move() move() move() move() move() you() move() move() move() move() move() move() move() move() move() you() move() move() move() move() move() move() move() move() move() you() move() move() move() move() move() move() move() move() move() you() turn_off() 思考:仍然要用到36个move(),右转可以定义成一个,函数,那么前进九步呢? 第七个程序:再定义一个前近九步的函数,用两个函数完成顺时针正方形。 def you(): turn_left() turn_left() turn_left()
def zou9(): move() move() move() move() move() move() move() move() move()
turn_left() zou9() you() zou9() you() zou9() you() zou9() you() turn_off()
用单步运行按钮运行第七个程序,看看函数的执行步骤 思考题:爬楼梯
程序八:做爬楼梯的程序 Pro_8: def you(): turn_left() turn_left() turn_left()
def pataijie(): turn_left() move() you() move() move()
move() pataijie() pataijie() pataijie()