利用机器人平台认识三种基本语言结构一、设计思路信息技术基础模块中的“尝试程序开发”一节涉及到了程序设计的三种结构,程序设计的三种结构是程序设计中的基本知识点。
程序的讲解是比较抽象的,学生听着也比较枯燥乏味。
本节课的设计利用智能机器人仿真软件进行讲解,利用该软件既有图形化编程界面,又有相对应的代码窗口的特性,让学生在生动形象利于接受的学习活动中了解三种程序结构,能够使用图形化编程环境实现顺序、分支、循环三种控制结构。
仿真软件如图:左侧为模块库;中间为流程图编辑区;右侧为代码显示区。
二、教材分析“尝试程序开发”一节是信息技术基础中的第四单元中的一节,这一节的内容是让学生能够认识程序设计的三中结构,了解三种程序结构执行的过程,读懂简单的程序,为后续开设算法与程序设计选修课程做知识铺垫。
三、学生情况分析本节课之前,学生掌握了仿真软件的使用,对程序设计有了一定的了解,学会了使用仿真软件设计机器人走直线,转弯,停止,发音的设计,并同时可视化的界面看到了自己设计的成果。
但是,程序设计中的抽象化和理论化会减淡学生对程序设计的热情,这就需要教师充分营造教学情境,合理安排任务,保持学生的学习热情和兴趣。
四、教学目标知识与技能:能够清晰的绘制出顺序结构、循环结构、分支结构的流程图,能够读懂程序执行的流程,能够比较三种基本结构的异同;过程和方法:通过演示法、讲授法、任务驱动和小组合作等方法,学生能掌握流程图的设计思路,能绘制流程图;情感态度与价值观:培养合作交流的意识,提高分析、解决问题的能力;促进学生对程序语言的学习兴趣。
五、教学重、难点教学重、难点:掌握流程图的设计思路;理解三种程序结构的执行过程。
六、教学资源:机器人仿真软件、视频材料、PPT、相关学习材料。
教学用时:90分钟七、教学过程(一)通过程序演示引出顺序结构1.程序演示演示机器人走正方形轨迹【见下图】教师:看过程序演示,请同学们分析一下,机器人是如何完成任务的学生:前进右转,再前进再右转,再前进再右转,再前进再右转教师:好,通过演示可以清晰的分析出机器人运动的轨迹,那我们同学们能不能利用我们上节课讲过的知识,完成这样一个设计呢?给同学们3分钟的时间使用仿真软件设计一个机器人走正方形的程序。
2.学生操作学生依照演示完成机器人走正方型的程序。
[设计意图]:给出本节课的第一个任务,使用仿真软件完成一个机器人走正方形轨迹的程序设计,在学生上节课学习基础上,通过这个任务,熟悉软件环境,回顾上节课的内容,并继续保持学习热情。
教师:请一位同学展示他的设计成果学生:演示成果,并展示程序设计流程图【见右图】教师:有没有同学用其他方法完成这个任务的?学生:表示赞同他的设计教师:请同学们观察,这个程序是顺序执行的,有第一个程序模块一直执行到最后一个程序模块,这种设计结构,我们称为循序结构。
(板书:顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。
)[设计意图]:通过学生自己设计程序,给出顺序结构的概念,能够加深学生的记忆和理解。
(二)通过分析机器人走正方形的轨迹特点引出循环结构1.师生分析讨论教师:我们继续观察机器人行走的轨迹,有什么特点吗?学生:机器人行走的直线距离一样长,拐弯都是90度教师:那么我们在观察一下程序流程图,它使用了几种模块,使用了几次学生:使用了2种模块,使用了4次教师:好的,看出了这些特点,我们发现机器人走正方形,其实就是再重复执行直行加右转这两个步骤,重复了4次。
那么我们使用程序设计中的另外一种结构来完成这个轨迹的设计,就是循环结构。
(板书:循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。
)[设计意图]:通过分析和观察,给出循环结构的概念教师:在控制模块库中,拖拽“条件循环”模块到编辑界面中,鼠标右键该模块,弹出“属性”界面,我们重复直行加右转这个动作需要几次?学生:4次2.学生操作教师:好的,请同学们自己试着编写一下这个程序流程图。
[设计意图]:给出第二个任务,在学生好奇的前提下,直接教授讲解知识,演示操作,容易接受新知,然后再实际操作,易于掌握。
教师:同学们都编写出来了吗?不会的同学可以向同座位邻近或组内组长请教。
请完成的同学举下手,请一位同学演示一下它的程序流程图【见右图】。
学生:由同学演示设计的程序[设计意图]:鼓励学生互帮互助,培养不会就问的习惯。
通过询问展示,了解学生的占我情况,请学生演示肯定一下学生的成果。
3.讲授循环结构教师:我们学会了循环流程图的使用,下面来分析一下这个程序,点击菜单栏的“显示代码”按钮,可以在界面显示程序的源代码,我们一起来分析一下。
教师:for语句的讲解for语句是C语言所提供的功能更强,使用更广泛的一种循环语句。
其一般形式为: for(表达式1;表达式2;表达3)语句;表达式1 通常用来给循环变量赋初值,一般是赋值表达式。
也允许在for语句外给循环变量赋初值,此时可以省略该表达式。
表达式2 通常是循环条件,一般为关系表达式或逻辑表达式。
表达式3 通常可用来修改循环变量的值,一般是赋值语句。
这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。
三个表达式都是任选项,都可以省略。
一般形式中的“语句”即为循环体语句。
for语句的语义是:1.首先计算表达式1的值。
2.再计算表达式2的值,若值为真(非0)则执行循环体一次,否则跳出循环。
3.然后再计算表达式3的值,转回第2步重复执行。
在整个for循环过程中,表达式1只计算一次,表达式2和表达式,3则可能计算多次。
循环体可能多次执行,也可能一次都不执行。
[设计意图]:FOR语句的执行比较复杂,必须由教师进行讲解。
教师:以机器人走正方形的程序为例,请同学们以小组的形式进行讨论,结合for语句的执行过程,叙述一下程序的执行过程。
学生:小组讨论[设计意图]:组织学生讨论,达到合作交流的目的,通过同学间的分析讨论,加深对for语句执行过程的理解。
教师:在小组间进行观察,询问,倾听教师:找2个小组的代表,进行一下for语句执行过程的描述【见上图】学生:进行程序执行过程的描述[设计意图]:加深学生对for语句的理解,老师进行指点和语言上的规范。
(三)通过分析机器人折返跑动作讲解分支结构1.实例分析启发思考教师:我们再来看一个程序演示【见下图】教师:在一个长方形的房间内机器人进行折返跑,当机器人运行到前方墙壁前时,停止前进,并开始调头前进,当运行到另一侧墙壁时,停止并调头前进,如此反运动。
教师:机器人是怎么实现的这个动作的?学生:机器人运行到墙壁前面的时候,会探测前方是否有障碍物,如果有的话,就调头前进,反复如此教师:那么如何在程序中实现呢,我们可以将整个任务分解成几个动作呢?学生:1、走直线;2、调头;3、判断障碍物;4、反复运行以上动作教师:第1、2两个环节,我们在上节课已经讲过了,第3个环节我们可以利用“传感器模块库”中的“红外避障”判断模块进行障碍物的判断设计,点开“红外避障”判断模块,右键属性中,可以看出对前方是否有障碍物要进行判断,这就是我们要用到的分支语句。
(板书:分支结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。
我们通常也称作“判断语句”)[设计意图]:由分解任务引出分支结构的概念2.剖析分支语句教师:判断语句对条件进行判断,返回值为“是”或“否”,不同的返回值,执行不同的语句,通过流程图可以看出【见右图】教师:第4个环节可由“控制模块库”中的“永远循环”实现下面请同学们四个人为一小组,试着完成这个任务。
[设计意图]:给出第三个任务,结合顺序结构和循环结构,引入分支结构,、由教师引导将任务分解,让学生通过小组合作的形式进行学习,并完成任务。
教师:在小组间进行倾听,询问,指导学生:讨论,探究,上机编写程序教师:请1-2个小组代表展示程序流程图,并对自己的设计思路进行表述学生:展示并描述【见下图】[设计意图]:通过小组合作学习,完成这一环节的任务3.代码阅读与分析教师:看过程序演示,我们来认识一下判断语句的代码是如何编写的教师: IF语句的讲解if(表达式)语句1 else 语句2教师:解释ir_1==4的含义,在仿真系统中,ir_4这一变量名表示红外测障,1代表“无障碍物”;2代表“左侧有障碍物”;3代表“右侧有障碍物”;4代表“前方有障碍物”。
【见右图】[设计意图]:此环节教师需要针对仿真系统中的变量含义进行讲解,加深学生对if语句执行过程的理解。
(四)综合任务教师:简单小结程序设计的三种结构,指出这三种结构在程序设计中一般是要结合起来使用。
布置综合任务:在一个房间内,机器人在房间中任意行走,但是不可以碰到墙壁。
请同学们结合这节课的知识,完成这个任务。
[设计意图]:该任务涉及到了程序的嵌套,通过学生自己的尝试,该程序要求红外变量返回三个值,分别是“前”、“左”、“右”;要做三次判断。
检验学生对三种结构的掌握情况。
课堂观察:学生完成该任务的情况分为四种:一是极少数学生没有完成设计;二是部分学生设计中少做了一次判断,导致机器人碰到墙壁不再运动;三是大多数学生能够完成流程图的编写;四是有3位学生,尝试使用系统给出的碰撞检测,在程序中加入了碰撞判断,使得程序更加完善。
该任务的程序流程图及程序代码【见下图】[设计意图]:本节课的目的就在于让学生掌握三种程序结构的流程图和设计思路,能够运用学过的知识解决实际问题。
最后的任务是需要综合运用三种结构来完成的,可以加深学生对知识的理解,提高三种结构使用的熟练程度。
八.教学反思本节课通过仿真系统的演示,形象的反映出了程序设计的三种结构,不在是单纯的枯燥的讲解,对学生来说,通过编程来命令机器人完成不同任务,极大地激发了学生的学习兴趣。
考虑学生知识结构有差异,学习能力有差异,针对不同的学生设计简单题目和稍难题目,共设计了4个任务,任务难度由浅入深,由分散到综合,教师从旁辅助引导,引出学生好奇心,再此驱使下,通过自我学习、小组学习、教师讲解、学生演示的方法逐步使学生掌握知识。
通过教学实践,我认为基于“任务驱动”的小组合作学习法既活跃了课堂气氛又充分调动了学生的学习兴趣,在活动中,学生的自信心明显加强了,并且勇于表现自己,帮助他人。
像这样学生与学生之间合作,学生的认知水平和情感方面都会收到良好的效果。
同时,使教师布置的课堂任务得以顺利地完成,无形中提高了课堂效率。
不仅如此,小组合作学习不但培养了学生倾听别人意见及团队合作精神,而且培养了学生的组织、合作、礼让等社会交往能力;既拓宽了学生的知识面,又增强学生的社会责任感;还使学生获得各种体验如:与他人协作的体验;取得成功的体验;经历挫折的体验,这些体验和经历,是学生在课堂上学不到知识。