张俊花 贾丙辉
摘 要 借助程序设计课程中的机器人巡线问题,引导学生通过质疑、发现问题;通过调查研究、分析研讨,提出解决问题的方法;通过表达与交流等探究学习活动,获得知识,激发学习程序设计的兴趣,掌握程序设计的方法并用于解决实际问题。
关键词 机器人;程序设计;信息技术;探究性学习;Scratch
中图分类号:G633.67 文献标识码:B
文章编号:1671-489X(2019)15-0068-03
1 引言
程序设计是初中信息技术课程中的重要内容,旨在培养中学生的创新能力、实践能力、主动获取知识并应用所学习知识解决问题的能力。探究性学习方法的特点与信息技术课程中程序设计相关知识点的教学要求十分一致。如何借助探究性学习相关方法引导学生开展程序设计相关内容的学习是教学中亟待解决的问题。
2 案例实践载体的确定:机器人
程序设计是苏教版初中八年级信息技术第四章的内容,是信息技术学科教育中的重要内容,着重培养学生分析问题、解决问题的能力和创新思维,满足学生个性化发展。机器人教育属于人工智能模块范畴,是一项综合多种学科知识技能的科技创新活动。只有通过编写相应功能的任务程序,机器人才能对外界环境信息进行响应,从而实现机器人的智能化判断。程序设计教学和机器人教育有着天然的融合基础,因此,针对初中程序设计课程比较抽象、学生学习兴趣缺乏和积极性不高等问题,尝试将机器人教育和初中程序设计教学进行融合,以机器人的巡线问题为出发点,将与生活联系紧密并具备吸引力的机器人作为程序设计实践的载体,使学生在学习程序设计课程时有实际目标、有实践对象。
3 案例主题的引入:机器人巡线任务
本案例内容是在介绍程序中的条件语句和循环语句之后,且上一节课已指导学生完成机器人结构的搭建,并使得学生熟悉了机器人各个结构的功能,如巡线的两只眼睛——灰度传感器,机器人的动力——马达等。基于机器人巡线任务,首先分析机器人巡线程序的算法并画出流程图,然后在Scratch 2.0中用条件语句模块和循环语句模块进行编程,最后经编程调试后让机器人巡线走起来。本案例旨在以机器人巡线为抓手,复习和整合程序设计中算法、条件语句及循环语句,使学生认识到程序设计能解决实际问题,进而提升其学习程序设计的兴趣。
4 案例的实施过程
片段一:情境导入 教师导入:“同学们,我们上节课搭建好了机器人,而且它能沿直线走,但是我们知道道路不仅有直线,更多时候是曲线,那么能不能实现它自主巡线走呢?”教师展示机器人巡线场地图(图1)。学生看到巡线场地图,教室里立马就炸开了锅,从他们一个个的兴奋劲儿可以看出他们对这个问题很感兴趣。教师接着问:“大家想一想,应该怎样实现机器人巡线呢?”学生思考,觉得无从下手。教师把问题难度降低:“大家想一想,机器人要巡线分为哪几种情况?”
片段二:探究机器人巡线算法 “大家先来想想机器人在巡线的过程中会有几种情况发生?”在学生思考的过程中,教师在黑板上画出机器人小车巡线的模拟图,如图2所示。一个学生回答说:“当两个光感都没有检测到黑线时,车子直行就可以了;但是当车子碰到黑线,我就不知道该怎么办了。”
教师启发:“车子碰到黑线分几种情况?下面请同学们以小组为单位进行探究。”
一小组学生回答说:“车头左侧碰到黑线或者车头右侧碰到黑线。”
“非常好!那么当车头左侧碰到黑线时,应该怎么修正车子,让车子继续巡线呢?”
“往左转。”
“非常好!那么当车头右侧碰到黑线时,应该怎么修正车子,让车子继续巡线呢?”
“往右转。”
“机器人要一直巡线下去吗?当什么情况下它会自动停止呢?请同学们观察巡线场地图。”
“当两个光感都检测到黑线时吧?”
“非常好!下面请大家测一下你们组的机器人的光感值,看看当两个传感器分别在黑线和白色区域时的光感值。注意:每个传感器要多测几组数据,然后分别取平均值。”
片段三:画出巡线流程图
【实践学习1】请同学们以小组为单位,尝试用流程图描述机器人巡线算法。
画流程图既使学生对前面分析的巡线算法有更加深入的理解,又复习了程序设计中画流程图的基本知识。但是从学生画的流程图看,他们对流程图的使用方法和各个几何图形在流程图中的作用仍然不太明晰,对处理框和输入框作用混淆。还有的学生不知道如何下手画流程图,这时候就显示出小组合作的重要性了。经过学生交流和教师指导,完成图3所示巡线流程图。
片段四:编写程序
【实践学习2】尝试在Scratch 2.0中进行巡线编程。
Scratch 2.0是一個图形化编程工具,由于学生在小学已学过类似的图形化编程软件,所以对他们来说比较容易接受。教师主要演示Scratch 2.0中如何读取光感值的程序块和马达设置模块,然后请学生小组内合作,自主尝试编程。对于刚学了程序基本知识的学生来说,这是一个综合题目,难度较大,但是由于在前面的探究学习中已通过算法分析和画流程图对巡线程序进行了铺垫,会对学生的代码编写有所引导,而且在小组内学生可以互相合作,因此,学生的任务完成度较好。
片段五:机器人巡线 本环节是学生程序编写完成并写入机器人主板中,通过在场地实际巡线来检验程序的执行。这需要不断地测试与调试。
5 分析反思
本案例整合机器人教育与程序设计的理念,通过机器人巡线创设情境激发学生的兴趣,完成设计巡线算法、画巡线流程图以及编写程序等一系列探究活动。引导学生不断思考和进行知识整合,机器人巡线问题的解决使学生真切体会到程序设计的价值与乐趣。
明确的实践对象使得程序设计有的放矢 初中程序设计课程内容一直因为比较抽象、学生兴趣不高而让教师难教、学生难学。机器人是学生比较感兴趣的,而且观察机器人巡线项目也是难度不大而学生又很感兴趣的,机器人巡线恰好能把机器人教育与程序设计结合起来,借助机器人巡线能给程序设计找到落脚点。在情境导入阶段,从学生的兴奋劲儿就可以看出学生对机器人巡线很感兴趣,有了兴趣就有了学习的动力。
探究性学习方法与程序设计课程的要求不谋而合 通过机器人巡线任务的引领,首先使学生了解到算法是程序的灵魂,没有算法编程就无从下手,复习了用流程图描述算法,通过绘制流程图进一步理清了巡线的算法;接着请学生尝试在Scratch 2.0中进行巡线编程,教师主要演示Scratch 2.0中如何读取光感值的程序块和马达设置模块,并没有直接演示条件语句及循环语句如何使用,而是先请学生尝试编程,目的是使学生进一步理解和掌握条件语句及循环语句,在图形化编程中实现巡线;最后经过程序调
试,在实际场地中让机器人巡线成功是整堂课的高潮。
具体问题的解决及任务的完成,促使学生对知识的理解更加深入 在整个教学过程中,可以看出教师并没有因为学生接触机器人的机会少而大包大揽,从设计巡线算法到编程,教师一直在引导学生思考,引导学生不断地探究,通过设置一系列的问题与实践任务请学生完成。
“大家先来想想机器人在巡线的过程中会有几种情况发生?”教师抛出问题,看到学生思考有困难时,在黑板上画出机器人小车巡线的模拟图,帮助学生分析问题,接着不断启发:“车子碰到黑线分几种情况?”在探究了算法之后,请学生尝试画流程图,然后请学生自主编程,一系列的探究任务之后慢慢地实现巡线。
合作学习帮助学生突破学习难点 采用小组合作学习的方式,是创客教育理念下一种基本的教学方法,目的在于解决学习个体差异的困难,提高学习效率,提高教学目标达成度。毕竟,教师只有一名,学生间有效的互助与讨论是一种可预见的、十分有效的教学方式。
画巡线流程图和编程两个实践任务较难,学生一时觉得无从下手,这时先请学生以小组为单位讨论,请学生说说他们谈论之后的结果;在问题进一步探究深入之后,再请学生讨论,直到解决问题。在实践学习和拓展任务部分,提倡小组内合作和鼓励最先完成任务的学生做“小老师”,这样,学生间的互助和交流提高了课堂的教学效率。
6 结语
总之,本案例针对初中程序设计课程中的问题,尝试将机器人教育与程序设计进行融合,通过机器人巡线这一活动展开,提高了学生学习程序设计的兴趣,也为程序设计教学找到落脚点。本案例借助机器人巡线任务,通过设计巡线算法、画巡线流程图以及编写程序等一系列探究活动,引导学生不断思考和整合知识,并采用合作学习的方式突破实践任务中的难点,最后,机器人巡线的成功进行使学生真切体会到程序设计的乐趣與价值。