体验式教学四步法在编程教学中的应用
2017-06-02张凯茨
张凯茨
● 教材分析
本课是苏科版初中八年级信息技术教材第四章“程序设计”第一节第二课时的内容。本课主要围绕VB中的对象、属性、事件等知识点展开,是本单元重要的知识基础。在信息技术教学中培养学生的计算思维,就是要让学生学会如何运用计算机基础概念求解学习中遇到的问题。而“对象”“属性”“事件”正是计算机学科的基础概念,所以学习好本节知识内容至关重要。
● 学情分析
本课的授课对象是八年级的学生。学生在第一课时的学习中,对VB的界面、程序调试和代码编写的过程都有了初步的了解,体验了一些利用VB编写的有趣的小程序,并对程序设计充满了好奇与兴趣,但对VB中的对象、属性、事件却缺少系统的认识。
● 教学目标
知识与技能目标:了解建立程序界面、设置对象属性的一般过程;理解“对象”“属性”和“事件”的含义。
过程与方法目标:通过修改程序,掌握程序界面建立的方法;通过编写程序,体会程序设计的过程,发展计算思维。
情感态度与价值观目标:通过程序的编写,提高学习程序设计的兴趣。
行为与创新目标:在程序编写中,加入自己的想法,创新改良程序。
● 教学重点、难点
重点:理解“对象”“属性”和“事件”的含义。
难点:规范完整地书写代码。
● 教学过程
1.试玩程序,初步体验
师:在上课之前,老师先给大家演示一款手机软件,并且我会问它几个问题,看它能不能回答。(教师在课堂上用手机演示Siri软件)
师:今天天气如何?
Siri:下面是今天的天气情况(并推送到手机上)。
师:什么是程序设计?
Siri:好的,请过目(将百度百科上关于程序设计的内容推送到手机上)。
师:刚刚和老师对话的软件叫什么?
生:Siri。
师:用Siri来解决问题分为哪几个步骤?
生(思考后回答):使用者先提出问题,然后Siri将问题输入、处理,最后通过语音或者文字的形式反馈出来。
师:老师今天也给大家准备了一个简易版的Siri软件(如图1),请大家玩一玩并思考,你进行了怎样的操作,就会出来不同的结果呢?
生(试玩后回答):单击不同的按钮,会显示不同的答案。
师:在没有学习VB之前,这样说没有任何问题。但以后我们要说得更专业一点,叫“触发不同的对 象”。
教师打开“我的Siri”源文件,边演示边解释:VB是一款面向对象的程序设计软件。上节课中,同学们说像“画图”中工具栏的东西,叫控件箱。每一种控件都有其自身的功能,将它们拖到窗体上,就生成了具有这个控件所有功能的具体对 象。
设计意图:以学生的兴趣为突破点,用Siri实物演示激发学生兴趣。演示过后,通过问题激发学生思考Siri大致的工作流程:输入—处理—反馈。通过试玩简易版Siri使学生初步建立起“对象”的概念。
2.修改程序,内化概念
教师演示选中不同的对象,让学生观察属性窗口的变化。学生会发现每个对象都可以被选中,并会在“属性”窗口显示其相关属性。
为了测试学生对“对象”概念的理解,教师提出:“这个程序中共有几个对象?”在学生犹豫不定时,给出提示:在单击界面各部分时,请观察属性窗口的变化。通过实验,大部分学生形成了清晰肯定的答案,在数“对象”时,便不會漏掉窗体对象。
此时,教师打开“半成品Siri”(三个按钮中代码均已写好,但“今天周几”按钮的事件使用“mouse move”,其余按钮事件使用“click”),让学生试着运行程序,对比“完成版Siri”第一行三个按钮的功能,并讨论这个程序需要完善的问题(如图2)。
讨论得到任务一:①修改“今天几号”按钮的属性;②新建“回答”label标签;③测试程序。
师:在刚才的测试中,你们有没有遇到什么问题?
生:在“今天星期几”这个问题上,还没有单击鼠标,结果就已经出来了。
师:在窗体上能够找到问题所在吗?你们觉得问题出在哪里呢?
生:窗体上看不出任何不同,问题应该出在代码上。
师:那我们一起来探索一下,看看代码,查找原因并修改。
教师操作演示如何打开代码,让学生观察三个按钮对应的三段代码,哪段与其他两段不一样。学生通过对比代码中的“click”与“mouse move”引出事件的概念,并举例说明“click”鼠标单击与“mouse move”鼠标移动是两个不同的事件。教师在桌面上分别“单击”“双击”“右击”文件夹,让学生明白不同的事件触发同一个对象会形成不同的结果。
教师根据学生找到的“mouse move”问题,布置任务二,要求修改成单击事件。
设计意图:此环节是本课的重点内容。教师首先通过演示选中不同对象,引导学生观察不同类型的对象有不同的属性;然后让学生数一数程序中的“对象”的个数,目的是考查学生是否已真正理解了“对象”的概念,也是换种方式再次强调对象和属性的概念以及它们之间的联系。学生只有充分理解“对象”“属性”以及它们之间的联系才能在后续的学习中更好地理解“事件”这个概念。学生在完成任务一时测试程序会发现教师预先设下的小“陷阱”,从而引出对“事件”概念的讲解。而“事件”的概念不仅仅存在于VB程序设计中,还普遍存在于信息技术课程之中,于是笔者举了一个“单击、双击、右击文件夹”的例子,让学生更直观地理解用不同事件去触发同一个对象会有不同的结 果。
3.学写代码,掌握精髓
师:对比成品Siri,半成品Siri还少了什么按钮?
生:“显示时间”“退出”按钮。
师:请大家新建这两个按钮,尝试运行,看看是否有问题?想想为什 么?
生:新建的“现在几点”“退出”两个按钮没有用。因为我们没有写代码。
教师操作并解释:“双击”按钮,会发现代码部分是空白,按钮只是提供了触发进入哪段程序的入口,而具体解决问题的是程序内部编写的代码。
教师带领学生观察可以运行的按钮的代码,并分析它运行的过程;逐一解释VB代码书写的规范,注意语法格式,并给每个对象命名,以便在代码模式下进行区分;带领学生分析什么对象被什么事件触发,什么代码段执行了什么操 作。
教师布置任务三请学生完善“时间”“退出”按钮。
设计意图:通过让学生发现“新建”按钮无响应,启发学生自己找到问题所在—— 需要通过代码控制响应内容,从而让学生更直观地了解程序设计中代码的重要性。由于规范完整地书写代码是本节课的难点,所以笔者带着学生一句句梳理已经写好的代码,让学生理解每一句代码的含义和书写规则,并在实际操作中(故意写错代码,导致运行出错)强调语法规范的重要 性。
4.实践创新,张扬个性
教师演示修改程序图标,生成EXE文件的过程。布置任务四:给自己的Siri增加个性化的按钮,给EXE文件修改生成图标。教师展示两个做得完整、带有个性问题按钮的学生作品,并点评,围绕“对象”“属性”“事件”的概念总结编写“我的Siri”的过程。
师:现在你们能回答这个问题了吗?我们做的Siri对按钮上的问题进行解答的这个处理过程是怎样的?当我们用按钮单击现“现在几点了”,为什么就会在文本框中输出时 间?
生:使用代码调用电脑系统中的时间,让它显示在文本框中。
师:我们编写的计算机Siri与实际的Siri区别在哪里?你希望今后再做哪些提升?
生1:功能少了些。
生2:没有语音输入功能。
……
教师解释手机Siri的工作原理:通过语音识别技术将语言转换成手机系统可识别的信息,然后在它巨大的数据库中进行比对,如果系统数据库中有这个问题,它就执行相应的指令。
师:我们今天所做的Siri就是它的一个简化版,但原理是相通的。在今后的学习中,相信大家可以做出更智能、更人性化的程序来!希望大家存好工程文件和窗体文件,这样便于以后在此基础上进行改进。下面,给大家演示一个老师所做的Siri2.0版本(增加一个按钮“放首音乐吧”,在音乐声中结束课 程)。
设计意图:学生已经在“玩”“改”“学”三个任务中掌握了本节课的重难点内容,了解了简易版的Siri的工作原理和代码书写规则,并在此过程中有了很多的灵感和小创意。任务四的设置主要是为了增加课堂的趣味性,让学有余力的学生获得更多的成就感。同时,也给后进生更多的时间去完成之前的三个基础任务。通过演示部分学生作品,提升学生的学习兴趣,展现学生风采;总结Siri的原理,给学生鼓励,消除学生对程序设计的神秘感,提升其学习兴趣,便于后续学习;最后通过一个Siri2.0版本的演示告知学生保存工程文件和窗体文件的意义——可以对自己的作品进行反复的修改和优化。
● 教学反思
本课遵循体验式教学四步法——玩、改、学、做,设计了三个基本任务和一个拓展任务,三个任务的衔接都是以上一个任务遗留下来的小问题为突破口,让学生自己发现从而自然过渡。例如,第一个任务——搭建程序界面,遗留一个按钮的事件为mouse move,其余为click事件。学生在完成第一个任务的同时,会发现问题,从而过渡到任务二,引入事件。完成任务二的学生会发现部分按钮无响应的情况,继而引出任务三——VB代码的书写。学生在操作中,主动发现问题,积极思考,想办法解决问题,这改变了传统程序设计课程中,学生被动学习,一味模仿的现状,从计算思维层面提升了他们的操作技能。
在教学中让学生领会“对象、属性、事件”这一计算机科学的基础概念是本堂课的重中之重,让学生“知其然也知其所以然”,让学生对学科的内容组织不只停留在技术活动层面,还要在计算思维的引领下推进到技术思想层面,这样的教学活动才有意义。计算思维的培养不是在某一节具体的课中就能实现的,而是需要教师在平时教学中进行点点滴滴的渗透。本节课中,笔者将“事件”概念与文件夹的操作这一知识点结合起来,让学生发现关联点,从而理解“事件”概念的内涵,这就是计算思维在课堂中渗透的具体体现。这样的例子在教学中还有很多,有待于教师在平时教学中发掘与提炼。教师要从教学中遇到的问题出发,引导学生找到解决问题的方法和思路,使之看到问题之外的问题、方法之外的方法。
点 评
本节课主要围绕体验式教学四步法在程序设计课程中的应用而展开。一方面,通过体验式教学四步法,将本课的对象、属性、事件等概念设计成活动,以深化学生的理解;另一方面,通过对这些概念之间关系的搭建,促成学生对计算机工作方式的理解,也就是我们所说的计算思维的形成。
教学设计分为“玩”“改”“学”“做”四大模块,先让学生玩一玩成品的简易Siri程序,其目的是激发学生学习兴趣,让学生在玩中初步接触和体验本课的重点概念——对象。在以往的教学中,教师通常是通过打比方的方法来解释“对象”概念,这不如让他们通过VB作品感受来得直接,玩过后再通过简单易理解的数“对象”个数,以强化学生对对象的理解。“改一改”环节设计了待修改的属性,让学生亲历各对象属性修改前后的变化,使其更直接而有效地理解了属性。在以往的教學中,教师常常将一个物体类比成对象,将物体的颜色、大小、位置等类比成属性,来给学生解释对象和属性,而学生听完多半还是一头雾水,而本课直接用“玩一玩”和“改一改”的方法进行,成效明显。“学一学”环节是先给学生设置困难,如设计了初学者经常会犯的错:只搭界面、不写代码。而学生能够很快发现问题的原因,是因为在上一个环节中,虽然没有写过代码,但是在修改时已经看到过代码段,关键知识点的难度又一次因为体验过而被降低。这些环环相扣的设计,让整个课程内容的推进由易至难,流畅有序。最后在“做一做”环节,学生通过设计创新,进一步巩固了课堂学习的内容。
在将计算思维融入教学方面,张老师也有以下实践。第一,引导学生观察和分析软件工作的方式:输入—处理—反馈。这是计算机工作的基本方式,看似简单带过的内容,实则体现了教师“以计算机科学家的方式思考问题”的计算思维教学思路。第二,强调窗体对象,这也是在平常的教学中不常见的,但是只有通过教师对类似问题的不断梳理,学生才会建立所谓“面向对象”编程的思想,理解计算机处理问题时对象化的思路。第三,教师和学生不仅在本节课对“我的Siri程序”进行了版本的多次更新,最后还通过总结,畅想了它有可能的发展,这种简单程序的不断修改完善,其实也体现了计算机工作中迭代的思想。
体验式教学四步法的设计,让教学内容更贴近了学生,也更贴近了知识技能本身,因而使课堂效率得到了很大提升。计算思维的融入,让计算机的基本工作原理在每一课中渐渐深入学生的内心,为他们今后通过计算机解决问题提供了思路。二者的结合让这节课上得非常精彩,值得我们品味和思索。