陈 敏
【摘要】1991年,美国微软公司推出了Visual Basle(简称VB),目前浙江省对口专业高职考、计算机专业必考的程序设计语言就是VB。对于职高学生而言,该课程入门较难,感觉无从下手。笔者从事VB程序设计这门课的教学有十几年了,针对这一问题,结合职高学生实际情况、在VB程序设计教学中,对于怎样让学生轻松入门,提高他们的学习兴趣做了一些有益的探索。本文阐述了在教学中如何让学生克服畏难情绪,为进一步学习程序起良好的铺垫作用。
【关键词】VB程序设计;教学;第一课;实例;兴趣;信心
程序解决问题对职高学生来说是一种既陌生又新鲜的信息处理方法。因此,怎样让学生轻松入门,提高他们的学习兴趣成为本节课要解决的首要问题。
在职高学生初次接触程序设计时,如果墨守成规地在第一节课就向学生介绍类、对象、属性、方法、事件等概念,容易使学生感到枯燥乏味,对程序设计产生畏难和厌弃情绪。因此,只有激发起学生强烈的学习兴趣,才能起到事半功倍的效果,正所谓“磨刀不误砍柴工”。笔者正是通过“兴趣”这个导人点,大胆采用非常规教学方法,才收到了意想不到的效果。
相传汉高祖刘邦问大将军韩信统御士兵多少,韩信答:乒不足一万,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余7人。刘邦茫然而不知其数。这是一个非常有趣的问题,人们又把它称作“中国剩余定理”。学生可以通过各种数学方法计算,大部分学生花费了很长时间才得到答案,而有的学生费尽周折最后却依然无解。这时,便可让学生看多媒体投影。启动教师课前编好的vB工程文件,只需单击按钮一次,程序即可在不到1秒内显示出求得的解,而且正确便捷。(如图所示)
学生看得目瞪口呆,不禁感叹于程序强大的功能以及便捷的运行。
学生本以为这样的程序设计一定很复杂,后台一定很庞大,因此,在知道了程序设计的作用和特点之后,他们意识到“程序”并不难。
那么程序能解决问题的奥妙在哪里呢?带着这样的疑问,教师打开了这样一段程序代码,如图1所示。
面对这样一段代码,学生不免会感到茫然,为了消除这种情绪,教师并不急于解说程序,而是从学生熟悉的数学方法人手。士兵的人数范围可能是24到9999,在此范围内逐个搜索满足条件的人数,就可以得出答案。此范围的搜索就是通过循环语句for实现的,即由for和next组成的配对语句,而if和then之间的就是条件(注意对照程序),rood是取余数的运算符。这样学生可以很容易理解程序的作用,而不会陷入到复杂的结构分析中去。这样就让学生觉得程序并不是表面看起来的那么深奥,还能够保持信心学下去。实际上整个程序代码也仅仅就是这么几条语句,学生可能还不懂什么叫“循环”,但是没关系。先来看懂这条语名:“For s=24 to 9999”,即设定人数为24到9999,这条语句是整个程序循环的开始,与后面的语句“Next s”构成循环,且这两个语句都是循环结构的循环体。循环变量s的初始值为最小的可能值,因为每17人一列余7人,所以设为24,循环体每循环一次其值增加1,直到s的值大于9999则退出循环。把终值设为9999应该不难理解,因为士兵不足一万。
在这个循环里,使用了一个分支结构,即程序在运行过程中根据设定的条件来选择相应的程序语句执行。这里我们使用的是If语句,判断是否满足题目中所要求的“每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人、17人一列余7人”。
(1)执行For语句:直接进入循环,执行循环体。
(2)执行If语句:判断条件:如果条件满足,输出满足条件的人数。程序的流程图如图2所示。
纵观整个流程,对初学者来说,只要搞懂了数学问题就不难理解。至于变量、程序结构、函数、过程等是后面将要学习的内容,可以分别设计不同的实例来分别说明。而对于初识程序的学生而言,正确无误地输入程序代码既是基本功的要求,也是锻炼动手能力的需要。当学生出现运行错误时,教师应给予指导或邀请完成任务的同学给予帮助,及时地解决问题和体验程序的运行对提高学生的学习兴趣是很重要的。教师可以演示建立工程文件的一般方法,建立好窗体和控件后,由学生自己输入程序代码,体验编程过程,运行程序,看看计算机完成了什么工作。
为进一步检测学生掌握情况,引导学生探究,教师可以做一些小小改动,再以小组为单位,抛出问题。如:爱因斯坦曾出过这样一道有趣的数学题,有一个长阶梯,不足200级,每步上2级,最后剩1级;若每步上3级,最后剩2级;若每步上5级,后剩4级;若每步上6级,最后剩5级;只有每步上7级,最后一级也不剩。问至少有多少级阶梯?要求分组讨论,对于已经掌握知识的学生可以很快解决问题,这里主要培养学生团队精神。
作为程序入门的第一节课,主要目的就是让学生真切地感觉计算机程序解决问题的过程,了解用高级语言编程工具解决问题的基本方法,激发学生对程序设计的求知欲,提高学生的兴趣。这里只要求学生体验程序的运行过程和作用,让学生感到用程序解决问题不是那么高深莫测,同时,及时地实践既让他们有继续学习的兴趣和信心,也培养了相应的能力,那么本节课的目的就达到了。
本节课构思侧重于改变以往“教师讲,学生做”的传统教学模式,而是一切以学生为主,通过情景创设和学生的实践反思,引领学生自然进入学习主题。先用学生自认为很熟悉的数学知识暂时难倒他们,再用程序解决问题激发学生的兴趣和解决问题的积极性。整节课采用讨论学习法及任务驱动法,充分调动学生的学习积极性,激发学生的求知欲。引导学生分析问题,从数学分析过渡到程序解决,教给学生解决问题的方法,同时也避免了晦涩难懂的程序解说。此外,对例题的选择也下了一番工夫,一道有趣的数学题不但可以让学生积极思考,而且设计的程序对有一定英语基础的学生来说也很容易理解。通过归纳总结,将能力的培养落到具体的探究解决问题的过程中,使学生真正成为学习的主体,从而使学生在不知不觉中掌握并消化本节课的重点、难点,在实践中体验成功的喜悦和提升。