基于“以赛代练”的机器人程序设计教学实践
2016-05-14刘俊
刘俊
机器人程序设计课程作为一门新兴的学科,有其自身发展的特点,常规的教学模式已经无法满足机器人课程发展的需要。自2005年我校开展机器人教学活动以来,笔者经过十多年的潜心实践摸索,总结出了一套“以赛代练”的学习模式。“以赛代练”是实施探究式学习模式的方法,对学生来说“以赛代练”是一种学习形式,适用于学习技能类的知识,尤其适用于学生自主解决问题的能力以及操作等方面的技能。
● “以赛代练”学习模式概述
“以赛代练”的模式包括选定项目、参考规则、程序设计、成果交流、活动反思等过程,是以分组竞技的形式完成学习任务。“赛”顾名思义就是机器人竞赛,把机器人竞赛作为学生的学习目的,把比赛规则作为学生的学习目标,学生根据自身的学习能力来细化规则,制定教学的重难点,循序渐进地完成任务。例如,光感传感器对机器人循迹来说是核心的元件,所以在教学光感元件时,针对基础知识比较薄弱的学生制定的初始目标为运用一个光感走黑线,针对基础相对较好的学生制定的目标为运用两个、三个、四个、五个光感来循迹,并对比、总结不同光感数量对循线技能的影响。“练”是指练习、操作,学生按照既定的学习目标设计算法编译程序,整个过程中学生不断地发现问题、解决问题,反复操作。例如,在机器人足球比赛中,机器人是通过光感传感器来判断进攻与防守区的,由于传感器在机器人底部离地面有一定的距离,空隙的大小直接影响了测量回值,针对这一问题,学生们经过反复地实验操作,设计出用“裙子”进行遮光,降低了不同环境下光的强度对光感的影响。“以赛代练”即赛中做,赛中学。学生在解决问题时能够学会整体构思、设计开发,并能够针对项目主题主动研究、动手实践,享受主动学习的乐趣,同时学会合作,共同体会成功与失败,进而成长为一个能适应社会需要的人才。
● “以赛代练”学习模式建构
1.选定项目,分组竞技
首先组成学习小组(两人为一组),学生们要相互了解,为合作学习创设一个良好的氛围,分组采用异质分组的原则。例如,机器人循迹比赛主要考查机器人循迹线路以及走完全程需要的时间,兼顾稳定的外观与性能。分组时教师可以将建模能力强的学生与编程能力强的学生进行搭配,优势互补。
2.解读规则,制定目标
同一项目不同组别的学生进行规则解读时,各组根据自身原有的知识基础以及学习能力的不同制定不同的学习目标。机器人学习目标的确定不外乎两个方向:一是机器人硬件的使用,包括马达控制模块、超声波传感器、光电传感器以及声控等;二是程序语句的运用,如循环语句、条件判断语句等。在此过程中,教师扮演“旁观者”的角色,充分体现学生的主体地位,但针对学生的共性问题要及时作出提示与引导。例如,当学生开始使用RoboEXP机器人快车软件设置马达“前进”与“后退”的时候,特别容易混淆马达模块的“正转”与“反转”的概念,机器人的结构是任意搭建的,相同设置的马达模块安装在机器人左侧或右侧会产生不同的效果。学生经过多次尝试,教师进行适当提示,学生形成一个默认的习惯,就是用马达模块图标来确定“马达模块转动的方向”与“机器人的方向”之间的关系,马达模块“正转”能使机器人“前进”;马达模块“反转”能使机器人“后退”。
3.设计算法,编译程序
确定学习目标后,小组成员将分头查找资料,击破各难点。学生自主学习尝试机器人控制程序的算法设计与编译,遇到问题时小组内部交流,教师也可以帮助学生解决在机器人编程中遇到的难题。教师由知识传授者转变为学习的引导者,学生的角色由被动的接受者变为主动的探究者。
在足球项目中,学生们发现了一个技术难题。在赛场上,用绿色和浅绿色区分场地左右两边,但是两种绿色非常接近,使用灰度传感器检测的时候,检测值只有2到3的差距,这意味着在激烈的比赛中,机器人很容易出现误判,学生很难写出有针对性的策略。场地检测问题成为比赛的一个瓶颈,那么如何解决这个问题呢?一开始,学生总在程序方面去想办法,迟迟不能突破,后来,有的组想到了用统计的方法来解决问题,既然两种颜色的差值不够明显,那么我们可以增加样本的数量,14或者24个样本一起检测,这样区分度就明显了。问题终于得到了解决,但仍旧不够理想,当机器人从一个色块运动到另一个色块的时候,明明是在不同区域,但平均值却是两种颜色的中间值,仍会有误差、误判等情况发生,最终我们升级了这一段程序的设计,仍采用统计学的方法,但改为在程序中统计出现不同颜色的频率,每采样十次,做一次判断。后来,学生在程序中使用统计学的次数越来越多,也越来越娴熟,他们开始有目的地统计攻门次数、控球时间、射门概率等,一些概率学和统计学的知识教师都不知道,但学生们却能通过查找资料自主学习,笔者感受到了他们无穷的潜力。
2对2机器人足球比赛,机器人的排兵布阵尤为重要,或一攻一防或同时进攻,根据不同的策略编译不同的程序。在实践过程中学生发现了很多问题,尤其是两种策略的对决,一攻一防队在进攻方面明显比较薄弱;两攻队的进攻能力很强,但球在自己区域的时候防守缺陷却很严重。有没有一种策略能够解决这些问题呢?学生们经过多次尝试后,最终将两种策略优化整合,即先将场地分成一定的区域,每个机器人各自负责一片区域,只要球位于自己的区域内,就享有踢球的优先权,反之则协助进攻或者防守。这种方法并没有明确的分工,也互不侵犯,大大提高了机器人活动的效率。
4.以赛代练,成果交流
学生通过组与组之间的比赛,发现对手的优点,反思自己作品存在的问题。以赛代练强调的不仅是学生以比赛的形式完成任务,更是要让他们通过比赛更清楚地认识到自己的不足。比赛只是查漏补缺的过程,整个过程中学生必须认识到自己是任务的主体,从而调动学习积极性。
5.学生反思,教师总结
每个活动结束后,学生们都要进行学习反思,学习过程中学到了什么,项目有什么需要改进的地方,有什么技术或者算法值得借鉴等。教师针对学生学习过程中易错问题、共性问题等进行强调总结,强化他们经常忽视的重难点,使其真正学到知识,学会学习。
“以赛代练”理念的最终目的是使学生学会学习,培养他们解决问题的能力。在机器人的活动过程中,学生自己设计活动方案,并通过组与组之间的较量,发现自身的不足,汲取其他组的优点,不断发现问题、解决问题,潜移默化中建构了知识体系,获取了新的知识。同时,组内的合作学习以及组与组之间的经验交流都使学生体验到合作学习的重要性,学会了沟通与表达。学习机器人程序设计是一个循序渐进的过程,教师应注重培养学生的知识运用能力,以真正达到“以赛代练”的目的。