张艳芳
(临汾职业技术学院 计算机系,山西 临汾 041000)
Visual Basic(简称VB)是一种可视化、面向对象、采用事件驱动编程机制的高级程序设计语言,是高职院校计算机专业学生必修的一门专业基础课,也是学生接触到的第一门程序设计类课程。通过本课程的教学,一方面可以培养学生合作完成较小规模软件开发的能力,另一方面也能训练学生的逻辑思维能力,为学习其他程序设计语言课打好基础。
在教学过程中发现,多数高职生都觉得VB深奥、枯燥、难懂,学习起来存在很大的困难。这主要有两个方面的原因:一是高职生自身英语基础差,看见用“英文”字母编写出来的程序代码首先从心理上就产生了畏惧,兴趣几乎全被“吓”跑了。二是教学课时少,内容多,教师往往忙于赶进度,学生学得不扎实,特别是当课程进行到复杂程序设计时,有些学生根本就听不懂了。
笔者自2006年至今一直讲授VB程序设计这门课,通过课堂讲解和上机实践发现,教师在教学过程中要想让学生喜欢并掌握VB程序设计,首先必须做好教学计划,备好课,尤其对于教学中的重点和难点,更要准备一些循序渐进、由浅入深的精彩案例,这样才能使整个教学过程有条不紊的进行。其次,在教学过程中采用循序渐进、由浅入深的教学方法,通过反复的实例练习,可以更好地引导学生逐步掌握知识,不断产生成就感,从而大大提高学习兴趣,最终掌握编程技能。
以VB程序设计中的inputbox()函数为例。
inputbox()函数定义[1]
格式:inputbox[$](<提示信息)[,<标题>][,<默认>][,
功能:该函数的作用是打开一个对话框,等待用户在对话框中输入信息。
在课堂上逐一讲解inputbox()函数的各个参数说明后,通过投影显示输入框1(如图1所示)。
图1 输入框1
同时,向学生讲解源代码应该这样编写:
Private sub form_click()
Dim name as string
Name=inputbox(“请输入您的名字”)
End sub
在学生理解输入框1程序后,接下来又用投影显示输入框2(如图2所示)。
引导学生可以通过修改inputbox()函数的参数来实现:
图2 输入框2
Name=inputbox(“请输入您的名字”,“提示窗口”)
在学生理解输入框2程序后,接下来又用投影显示输入框3(如图3所示)。
图3 输入框3
然后请一位学习比较好的同学回答,要想实现图3所示的效果应该如何修改inputbox()函数的参数。
Name=inputbox(“请输入您的名字”,“提示窗口”,“张明”)
在学生理解输入框3程序后,接下来又用投影显示输入框4(如图4所示)。
图4 输入框4
然后请一位基础不太好的同学回答,要想实现图4所示的效果应该如何修改inputbox()函数的参数。
Name=inputbox(“请输入您的名字”,“张明”)
教师通过输入框4的讲解使学生明白,inputbox()函数格式中所标明的圆括号中的各参数次序必须一一对应,如果省略的参数处在中间位置,所对应的逗号不能省略。[2]
接下来,请学生修改inputbox()函数的参数为:
name=InputBox("请输入您的名字","提示窗口","张明",100,100)
参数修改后请同学们运行程序观察效果与先前有何不同,然后再让学生把参数中的“100,100”改为“500,500”后,再次运行程序,看程序的运行效果又会有何变化。通过自己动手改编并运行程序,学生会发现这对数字参数是控制输入框在窗体上显示位置的。
这样通过逐渐增加或改变函数的参数,使学生理解并掌握inputbox()函数的功能及用法。在学生真正理解该函数各参数的意义后,接下来可以再举几个关于inputbox()函数的实例以加深学生的理解。
在学生通过实例逐渐理解了inputbox()函数的所有参数的功能之后,再举几个综合性的实例,让学生更加深刻地理解这个函数的用法,真正掌握这个函数。
例1:用户使用inputbox函数输入姓名,程序如下:
Private sub form_click()
Dim name as string
Name=inputbox(“请输入您的名字”)
End sub
在程序讲解的过程中,先引导学生思考:在程序运行时,用户若想输入自己的姓名,需要定义一个字符型的变量,然后由inputbox()函数输入姓名并赋值给变量name。
在学生理解了以上程序后,教师以问题来引导学生,如这个程序在运行时只是显示了输入框让用户输入了自己的姓名,用户输入的信息在输入完成后用户能不能看见自己输入的信息?围绕这个问题学生会展开讨论。由此教师接着引导:我们以前学过的什么函数可以在窗体上显示出信息?马上就会有学生回答:“print”。这时教师和学生一起把刚才的程序修改完善,使得程序不仅能输入信息,还能将输入的信息显示出来,具体代码参看例2。
例2:用户使用inputbox函数输入姓名,并在窗体上显示出来。[3]
Private sub form_click()
Dim name as string
Name=inputbox(“请输入您的名字”)
Print name
End sub
在学生理解了姓名的输入与显示之后,教师可以扩展知识。如果除了姓名之外还需要再输入年龄并且将输入的年龄在窗体上显示出来,程序的具体代码参看例3。
例3:用户使用inputbox函数输入姓名和年龄,并在窗体上显示出来。程序如下:
Private sub form_click()
Dim name as string
Dim age as integer
Name=inputbox(“请输入您的名字”)
Age=inputbox(“请输入您的年龄”)
Print name
Print age
End sub
学生很快就能编出程序代码。接下来教师再用问题来引导:这个程序只是输出了一个名字和年龄,怎么样让输出的信息更完善更好懂呢?比如可以这样来输出:张三的年龄是:17。
在学生的好奇心被激起之后,教师讲解在输出时可以将原来的两个print语句改为一个:print name;“的年龄是:”;age,具体代码参看例4。
在讲解这个print语句的时候要提醒学生,在print语句中变量会以具体的值输出,而双引号内的字符串会原样输出。
例4:用户使用inputbox函数输入姓名和年龄,并在窗体上显示出来。程序如下:
Private sub form_click()
Dim name as string
Dim age as integer
Name=inputbox(“请输入您的名字”)
Age=inputbox(“请输入您的年龄”)
Print name;”的年龄是:”;age
End sub
由于多数高职学生自主学习能力相对较差,上机实践课教师如果只是让学生自己参照笔记或教材编写程序,那么10%的掌握得相当好的学生可能会思考着去编程,60%的掌握得比较好的学生肯定会不加思索地照抄照搬源程序,而其他学生则要么玩游戏,要么闲聊。所以作为一名计算机专业的教师要想真正让学生对自己所教的课程感兴趣,上机实践课上课件的制作、对学生实践的不断巡视以及必要时对于相关知识点的讲解是很重要的。
针对不同的学生,上机任务也应有所不同。如果上机课上只做简单的实例会让基础较好的学生感到无所事事。上机课必须兼顾到所有学生的实际情况,既要有简单有趣的实例,又要提供有助于思维拓展的综合性实例,学生可以根据自己的学习状况自行选择。
基于以上原因,考虑到学生的个体差异,上机课中一般包含三种上机任务,即简单任务、基本任务和拓展任务。简单有趣的实例可以激起基础较差学生的学习兴趣,学生在上机实践过程中通过自己动手编写并运行程序,可以使他们产生成就感,并催发出继续学习编程的动力;基本任务是针对大部分学生设计的上机任务,要求学生掌握的一些主要的知识点和技能,通过这部分任务的完成,学生基本上可以理解和掌握所学的编程知识与技能;较复杂的综合性实例为基础好的学生提供了进一步发展的空间,通过这些实例的编写使得他们能够对所学知识有更深的理解,从而更好地掌握相关知识与技能。
针对不同的上机任务,课程设计和教学方法也不尽相同。对于简单任务,除了要给出题目和程序运行的界面之外,还需要给出程序的源代码,对于需要学生理解和掌握的关键知识点,有时教师还需要用文字的形式进行标注,以加深学生的理解,从而引导学生以最快的速度掌握必备的知识;基本任务在教学过程中教师已经讲过,在课件中可以只给出题目和程序运行的界面,在上机过程中教师通过巡视注意观察,如果遇到共性的问题可以通过投影进行讲解;拓展任务主要是针对基础较好的学生设计的,在课件中除了需要给出题目和程序运行的界面之外,有时还需要标注出该程序实现的难点,以引导学生更好、更快地编写出程序。这部分学生比较少,学习积极性又比较高,所以程序编写过程中如果遇到什么问题教师可以进行个别辅导。
“授人以鱼,不如授人以渔”,通过循序渐进的方法,提高学生的思维能力,使学生学会学习,学会思考,这是循序渐进教学方法的核心目的,也是这种教法的优势。
笔者自2010年起,在2010级和2011级计算机专业VB程序设计课程的教学中采用了循序渐进的教学方法,通过同一专业的2009级、2010级、2011级学生各方面情况的对比分析表明,在排除这三个年级学生本身差异因素的情况下,循序渐进的教学方法可以极大地提高学生的学习兴趣,让学生对所学知识的掌握程度有显著的提高。
表1 近三年计算机专业学生VB课程教学效果对比
教学实践证明,循序渐进的教学方法可以激发学生的学习兴趣,有利于提高学生自主探究的学习能力,在一定程度上改善了教学效果。但是,在今后的教学过程中还需要不断的探索,根据不同的情况采用不同的教学方法,因材施教,才能取得更好的教学效果。
[1]沈祥玖,徐红,郑有增.Visual Basic可视化程序设计教程[M].北京:中国水利水电出版社,2003.
[2]吴昌平.Visual Basic6.0程序设计[M].北京:人民邮电出版社,2002.
[3]柴欣,武优西.Visual Basic程序设计基础(第3版)[M].北京:中国铁道出版社,2005.