阳光志愿者-机器人课程教案
第1页 共40页
阳光志愿者-机器人课程教案
版本
版本1.0
时间200904
作者大于
更改内容
收集往次上课教案并整理成册。
第2页 共40页
阳光志愿者-机器人课程教案
目录版本目录版权TODO,考虑使用CommonCreative的License前言TODO,描述课程所使用软件rur-ple的来历,以及作者信息。教学目标教学内容第一个程序:走一步。第二个程序,走两步。第三个程序:走两步,左传,再走两步。第四个程序:画一个大的正方形(逆时针)。思考题:如何顺时针画个正方形。第五个程序:顺时针画一个正方形思考:这么多重复是不是很麻烦,是否有避免麻烦的办法,除了复制粘贴以外。第六个程序:用右转函数重做第五个程序,画一个顺时针正方形。思考:仍然要用到36个move(),右转可以定义成一个,函数,那么前进九步呢?第七个程序:再定义一个前近九步的函数,用两个函数完成顺时针正方形。思考题:爬楼梯程序八:做爬楼梯的程序思考题:下楼梯程序九:下楼梯(注意:爬台阶的函数不删)思考:往返楼梯程序十:往返楼梯思考:简化程序十一:repeat语句简化上下楼梯程序思考:跨栏程序,要用repeat语句。程序十二:用repeat语句,做个跨栏程序。思考:如果台阶宽度和高度不一样,栏的距离和高度不一样会出现什么情况:撞墙。程序十三:让我不再撞墙,前方有墙不走。思考:要让机器人不但不撞墙,还能找到出路。程序十四:找到出去的路思考:找到路后,如何走出去程序十五:走出死胡同思考:改变地图,如果死胡同带拐弯怎么样,会来回打转,走不出去,就需要更聪明rihgt_is_clear(), left_is_clear().第3页 共40页
阳光志愿者-机器人课程教案
程序十六:走出有弯路的死胡同思考:聪明了,怕一下宽高不等的楼梯程序十七:if elif else爬楼梯(宽度高度不等)思考:跨栏,距离高度不等,可以用十七吗,试试看,结果不可以。程序十八:跨栏,距离栏高不等。思考:这次分了四种情况,多种情况也可以实现,只要多用elif语句就行了。程序十九:画正方形,看看能又多简单第二十个程序:新的思考方式,看前方走路。思考:while和if的区别。大于的话第4页 共40页
阳光志愿者-机器人课程教案
版权
TODO,考虑使用CommonCreative的License
第5页 共40页
阳光志愿者-机器人课程教案
前言本教程引用地址:http://tinyurl.com/ygclub-rurple或者更长一点的地址:http://docs.google.com/Doc?id=dc7s8bgw_548czk8p6dv请将反馈跟帖至 http://www.ygclub.org/bbs/thread-2040-1-1.htmlTODO,描述课程所使用软件rur-ple的来历,以及作者信息。第6页 共40页
阳光志愿者-机器人课程教案
教学目标
知道什么是程序。
知道程序的三种结构:顺序,分支,循环。提高学生们的逻辑思维能力。能够阅读和编写简单的程序。
第7页 共40页
阳光志愿者-机器人课程教案
教学内容
介绍来自国外的机器人Reeborg,和他的世界:一个街道组成的矩形。如何用键盘操作机器人。
第8页 共40页
阳光志愿者-机器人课程教案
第一个程序:走一步。需要介绍move()和turn_off()两个命令和如何运行你的命令。强调机器人必须有turn_off()命令,不然会出错。move()turn_off()第9页 共40页
阳光志愿者-机器人课程教案
第二个程序,走两步。运行程序和单步运行程序。从单步运行程序中告诉大家其实程序就是命令的集合。move()move()turn_off()第10页 共40页
阳光志愿者-机器人课程教案
第三个程序:走两步,左传,再走两步。告诉同学们机器人的第三个命令:turn_left()。move()move()turn_left()move()move()turn_off()第11页 共40页
阳光志愿者-机器人课程教案
第四个程序:画一个大的正方形(逆时针)。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()第12页 共40页
阳光志愿者-机器人课程教案
第13页 共40页
阳光志愿者-机器人课程教案
思考题:如何顺时针画个正方形。顺时针就要右转,如何右转,即三次左传第五个程序:顺时针画一个正方形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()第14页 共40页
阳光志愿者-机器人课程教案
move()move()move()move()move()move()move()move()move()turn_left()turn_left()turn_left()turn_off()第15页 共40页
阳光志愿者-机器人课程教案
思考:这么多重复是不是很麻烦,是否有避免麻烦的办法,除了复制粘贴以外。
函数子程序的概念,如何定义一个函数,def关键字的运用。
第16页 共40页
阳光志愿者-机器人课程教案
第六个程序:用右转函数重做第五个程序,画一个顺时针正方形。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()第17页 共40页
阳光志愿者-机器人课程教案
move()move()move()move()you()turn_off()第18页 共40页
阳光志愿者-机器人课程教案
第七个程序:再定义一个前近九步的函数,用两个函数完成顺时针正方形。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()第19页 共40页
阳光志愿者-机器人课程教案
第20页 共40页
阳光志愿者-机器人课程教案
程序八:做爬楼梯的程序Pro_8:def you(): turn_left() turn_left() turn_left()def pataijie(): turn_left() move() you() move() move()move()pataijie()pataijie()pataijie()pataijie()turn_off()第21页 共40页
阳光志愿者-机器人课程教案
第22页 共40页
阳光志愿者-机器人课程教案
程序九:下楼梯(注意:爬台阶的函数不删)def you(): turn_left() turn_left() turn_left()def pataijie(): turn_left() move() you() move() move()def xiataijie(): move() move() turn_left() move() you()turn_left()turn_left()xiataijie()xiataijie()xiataijie()xiataijie()turn_off()第23页 共40页
阳光志愿者-机器人课程教案
第24页 共40页
阳光志愿者-机器人课程教案
程序十:往返楼梯def you(): turn_left() turn_left() turn_left()def pataijie(): turn_left() move() you() move() move()def xiataijie(): move() move() turn_left() move() you()def huizhuan(): turn_left() turn_left()move()pataijie()pataijie()pataijie()pataijie()huizhuan()xiataijie()xiataijie()xiataijie()xiataijie()move()huizhuan()turn_off()第25页 共40页
阳光志愿者-机器人课程教案
第26页 共40页
阳光志愿者-机器人课程教案
程序十一:repeat语句简化上下楼梯程序def you(): repeat(turn_left,3)def pataijie(): turn_left() move() you() repeat(move,2)def xiataijie(): repeat(move,2) turn_left() move() you()def huizhuan(): repeat(turn_left,2)move()repeat(pataijie,4)huizhuan()repeat(xiataijie,4)move()huizhuan()turn_off()第27页 共40页
阳光志愿者-机器人课程教案
第28页 共40页
阳光志愿者-机器人课程教案
程序十二:用repeat语句,做个跨栏程序。def you(): repeat(turn_left,3)def kualan(): move() turn_left() move() you() move() you() move() turn_left()repeat(kualan,4)move()turn_off()第29页 共40页
阳光志愿者-机器人课程教案
第30页 共40页
阳光志愿者-机器人课程教案
让机器人永远不撞墙就要具有思考的能力:front_is_clear()。程序十三:让我不再撞墙,前方有墙不走。if front_is_clear(): move()turn_off()第31页 共40页
阳光志愿者-机器人课程教案
程序十四:找到出去的路if front_is_clear(): move()else: turn_left()turn_off()第32页 共40页
阳光志愿者-机器人课程教案
程序十五:走出死胡同def zhaochulu(): if front_is_clear(): move() else: turn_left()repeat(zhaochulu,5)turn_off()第33页 共40页
阳光志愿者-机器人课程教案
程序十六:走出有弯路的死胡同def you(): repeat(turn_left,3)def zhaochulu(): if front_is_clear(): move() elif right_is_clear(): you() move() else: turn_left() moverepeat(zhaochulu,20)turn_off()第34页 共40页
阳光志愿者-机器人课程教案
程序十七:if elif else爬楼梯(宽度高度不等)def you(): repeat(turn_left,3)def kaoyouzou(): if right_is_clear(): you() move() elif front_is_clear(): move() else: turn_left() move()repeat(kaoyouzou,16)turn_off()第35页 共40页
阳光志愿者-机器人课程教案
程序十八:跨栏,距离栏高不等。def you(): repeat(turn_left,3)def huizhuan(): repeat(turn_left,2)def kaoyouzou(): if right_is_clear(): you() move() elif front_is_clear(): move() elif left_is_clear(): turn_left() move() else: huizhuan()repeat(kaoyouzou,35)turn_off()第36页 共40页
阳光志愿者-机器人课程教案
第37页 共40页
阳光志愿者-机器人课程教案
程序十九:画正方形,看看能又多简单def zhi9zuo(): repeat(move,9) turn_left()repeat(zhi9zuo,4)turn_off()第38页 共40页
阳光志愿者-机器人课程教案
第二十个程序:新的思考方式,看前方走路。def zhizuo(): while front_is_clear(): move() turn_left()repeat(zhizuo,4)turn_off()第39页 共40页
阳光志愿者-机器人课程教案
大于的话我说两句吧:因为每次讲编程的时候我都在,所以斗胆写了这些东西,供大家讨论,这些东西是我总结了前人的教案和大概看了lessons文档写出来的,因为我们是以任务来驱动教学的,所以整个教程都是以程序串联再一起的,期间会逐一把内容带出来。按照以后的课时来说我觉得,先写这么多应该差不多了。这里边包含了编程的顺序结构,分支结构(if等语句的应用),循环结构(repeat,我认为是for语句的变体,while语句),但是以前讲过的“=”内容给删掉了,因为我看到那个是为了定义变量做准备的,因为我们不讲后边的语言编程,所以这个就没必要在放到里边了。大家有想法都可以来讨论修改。大于2009.4Google 文档 - 网络文字处理、演示文稿和电子表格。 编辑此页面(如果您有权限) | 第40页 共40页