浅谈高中VB程序设计课堂教学及解题策略
2018-04-09范肖霞
摘 要:本文从自身近几年的信息技术Visual Basic(以下简称为“VB”)程序设计教学的亲身体验和经验出发,分析了VB程序设计课堂教学中所面临的一些难点和尴尬,在遵循信息技术这门特殊课程的课堂教学的基本原则和基本规律下,给出了自己的一些见解和教学策略。
关键词:程序设计;教学;难点;策略
在新课程新高考的背景下,信息技术这门学科被纳入“7选3”科目,且选考技术学科的学生越来越多,我省一年两考的技术选考走过了整整两年,从上机到笔试的考试形式转变,从会考上升到高考的高度,猛地让我们的学科地位窜到高点,但我们信息技术学科老师的地位真正地提高了吗?为了迎接这个契机抓住这个转折点,我们就要用更高的教学能力要求自己,这就要求我们寻求更好的课堂教学设计,研究和总结解题策略,带领越来越多的选考学生在高考这条路上越走越好。以下是我在实际教学中不断摸索,所做的一些尝试。
一、 巧用比喻教学法,化解VB中的抽象概念。
VB中有很多专业性很强的概念,这些概念对于学生而言很难理解,而且非常容易混淆,比如在VB面向对象程序设计第一课时就讲到了窗体、类、对象、属性、方法和事件过程等,在介绍这一堆概念时,我们可以通过比喻的方法来帮助学生很好地理解。比如我们可将“窗体”比作“舞台”,那么“对象”就是在舞台中表演的各种各样的“人物”,同一种族的人为一“类”,如汉族、回族、苗族等,所以我们这有Label标签类、TextBox文本框类、CommandButton类等,每个“人物”会有不同的发型、服饰、语言等,这就是“对象”的属性和属性值。“方法”和“过程”就是舞台中人物表演的动作,“事件”就是指什么情况下人物开始表演。比如:
Private Sub;Command 1 Click()
Label 1. Caption=“Hello,说Boys and girls.”
End Sub
这段简单的程序意思是当我们鼠标去单击Command 1对象时,此鼠标单击事件就会响应程序的执行。
再比如,我们在讲变量和数据类型时,可以将变量比作“调味罐”,那数据类型就是规定往不同调味罐里存放不同的调味料,放盐的就不能放糖,就好比将字符串型的变量不能直接赋值给整数型变量,所以就有了s=val(text1.text)用val(x)标准函数将数字字串转换为数值,再赋值给整数型变量s。
再比如,我们在讲一维数组时,原概念是这样描述的——数组是由一批同类型的变量构成的一个序列,组成数组的每一个变量被称为数组的元素,也称为下标变量,下标是一个整数,用来指出某个元素在数组中的位置,如定义了一个一维数组变量:
Dim a(1 to 100)as integer
我们就可以比喻成我们有一个名叫“a”的火车,该火车车厢的编号从1开始到100,共有100节车厢,即100个元素,分别是a(1)、a(2)……a(100),integer数据类型就理解成该车厢是用来载客的,不是载货的,a(1)=45,就理解成第1节车厢今天的载客量是45。
通过与现实生活中的实例相类比,帮助学生理解和掌握知识点,让课堂不再那么枯燥乏味。
二、 选用综合实例上机实践,解救分层教学难问题
学生算法思维素养参差不齐,对于学生存在的差异性,可以采用分层教学,即符合教学中因材施教的原则。程序设计的理论知识多且零碎,若一开始就以实例编程为主,素质好的学生在上机实践的同时会兼顾理论知识的理解和掌握,而基础不好的学生,势必会手忙脚乱,既顾不好基础知识点的学习,又耽误编程实践,这会挫伤大多数学生的学习积极性,导致差生越来越差,两极分化现象越来越严重,苦的是中间段学生。所以基础知识的理论授课时间和留给学生实例操作时间在1∶1左右比较恰当,但是一旦基础知识大部分学生已掌握时,再继续以讲解为主,就是对基础好的学生的一种教育重复,这必然会使好学生不能有更高的突显。
因此,在后期为了能兼顾所有的学生,在讲解和巩固基础知识的同时,要开始偏向培养学生的操作能力,就从综合实例操作任务设置上进行分层教学,将操作任务分为基础必做题和深度拓展选做题,教师讲课时间和学生实践操作时间以1∶3左右进行,甚至可以整堂课放开让学生做,教师在期间进行点拨辅导。基础差的学生一开始就先试着完成基础必做题,久而久之,也会有提高,进而跟进尝试拓展题;素质好的学生也不会受束缚,不断地去实践拓展题。这种看似简单的分层任务形式教学,实质上对教师在选择程序实例时很有讲究,要把握好度的问题。
三、 先“纸上谈兵”,后“机上论战”
在VB程序设计教学中,很多学生反映上课时能听懂老师的讲解,可一旦自己去实践操作或做题时,就会突然脑袋一片空白,没有思路,甚至面对屏幕却敲不出一个代码。起初阶段我的做法是将关键代码编写好,显示在大屏幕上供学生参考,让学生学会阅读简单程序、学会“依样画葫芦”地照搬照抄,去感受代码。几节课后,我就会在课后安排下节课的程序实例,把流程图给学生,要求学生在练习本上根据流程图进行编程,并提示关键的思路,代码由学生自己编写并上交,而我要赶在下节课前将学生写在纸上的代码批改一遍。
刚开始使用这个策略时,我的批改难度很大,学生会定义五花八门的变量名,代码书写没有层次没有缩进,更别谈注释了,简直一塌糊涂,改得我眼花缭乱,心力交悴。对学生自己而言,上机实践时也是问题百出,我就不停地穿梭在机房里进行解答。因此,后来进行了一些规定,比方对程序中的变量名的命名进行规定,代码的书写进行规范化缩进,以及加上必要的注释。
程序,对于计算机来说就是一串数据,但是对编写的人来说我们要的是程序的可读性,因此在书写时,该缩进的缩进,该对齐的对齐,层次清楚,还要养成注释的习惯,这样调试出错时,檢查起来也方便。一般函数体、过程体、循环体、条件判断体需要向内缩进3格,同层次的代码在同层次的缩进层上。
程序代码的编写是一门艺术,良好的编写习惯可以使你编写的代码更易于理解,让你的代码如行云流水般的舒畅。
在上机实践时,同时将参考代码展示在屏幕上,一来基础好的学生可以参考代码自行调试,二来我就有稍空闲的时间去帮助那些基础薄弱的学生。这样每一节程序设计课结束后,还有一个关键的作业,就是要求学生将完整的可行的代码抄写一遍,没有调试成功的,就抄写教师的代码,这样做的目的就是让学生去感受代码,以建立起对程序设计的整体概念,体会各种语句的功能等。
四、 常以考题为依据,进行专题分析与研究,总结解题策略
(一) 针对VB选择题的解题策略
VB在选考中涉及3道选择题,其中1道是基础题,以流程图的形式出现或是对调试结果进行分析等,这道题绝大部分学生没有问题。
另外2道是选择题第11题和第12题的加试题,大多是冒泡和选择排序、对分和顺序查找的程序实现的“变相”,主要考核学生阅读程序的能力。针对这两题的答题策略培养,在平时教学中一方面要要求学生熟练掌握冒泡和选择排序、对分和顺序查找的算法思想,另一方面要要求学生在平时练习中坚持用手动的方法,结合程序代码对数据进行排序或查找,其次还要要求学生养成画“辅助线”辅助代码执行。
(二) 针对VB填空题的解题策略
VB在选考中涉及3道填空题,分别是第14题,以及第16、17题两道加试题。
(1) 第14题,此题是学考学生要完成的,因此考核的是解析算法或者枚举算法,具体第一空一般是考核对象属性、方法、对象名、事件名等基础概念;第二空是程序代码填空;第三空写出程序运行结果或程序实现的功能等。
此题的答题策略:针对第一空,要求学生熟练正确区分对象、属性名及属性值的概念,同时掌握标签、文本框、命令按钮、图像框、列表框、定时器控件对象的常用属性及其关键属性值的设置方法。针对第二空程序代码填空,要明确题中的算法思想和解题思路,熟练掌握常用函数,赋值、条件、循环三种基本语句的格式、功能和应用,平时要练习编写一些简单的VB应用程序。针对第三空写出程序运行结果或程序实现的功能,要求学生根据题目描述的已知条件去推断各种变量的含义,特别注意在文本框、标签框或列表框中显示的变量(或表达式),在程序运行过程中的变化。
边读题边做笔记,将试题中的关键字词做好记号,并在配套的图片窗体中标注各个对象名称,可以辅助读懂程序功能。题目一遍读不明白再读,结合图片反复读,从字面上读懂程序实现的是什么功能的前提下,再来看代码。
除此之外,还可以从表达式、if语句中的条件、循环初值、循环终值、计数语句、输出语句等分析出错的原因,寻求错误语句的解决方法。
(2) 第17题,此题是大综合,是数据库及算法的综合应用,考核的内容为程序、变量分析,主要是以程序填空出现,难度大,但此题的第一小题往往又是不难的,只要学生能静下心来将题目描述的程序功能或算法思想从字面上读明白,基本能答出来,但往往是因为学生基础不扎实,解题不熟练,在前面的答题中花费了大量时间,导致连看这题的时间都没有。
答题策略一:从表达式,if语句中的条件,for循环语句中的初值、终值,计数语句,输出语句等分析推断填空处的语句。
答题策略二:近来,出现自定义函数题频率趋高。函数是编程的核心基础之一,各种语言都有函数的概念,函数是组织好的用来实现特定逻辑功能的代码段,函数在程序中是可以重复调用的,这就提高了应用的模块性和代码的重复利用率。比如VB中有很多标准函数是事先定义好的,我们只需拿来使用就好了,比方Abs(x)函数,它能够实现的特定的逻辑功能就是求它里面的参数x的绝对值;但许多应用程序常常需要自己来定义函数,以实现某种特定的计算,因此就有了自定义函数。
考查自定义函数就两个点,一是在End Function之前的语句中,至少有一个形如“函数名=表达式”的语句,这样,表达式的计算结果才能作为函数的返回值,被VB送到函数的调用点上。二是自定义函数的调用,函数调用与内部标准函数没什么区别,只不过内部函数由VB提供,而自定义函数由用户自己定义,调用的格式“自定义函数名(参数表)”要牢记。
答题策略三:对于数据库,只要读懂数据库连接,ADO对象、读取数据库中的数据等相关知识,对语句不作要求。
洋洋洒洒谈了自身在VB教学实践中的一些心得和体会。教学方法对教学效果来说至关重要,但不是绝对的,有了好的教学策略,还要有一个合理的实施过程,在这个过程中,师生情感的交流对教学效果的影响也是不可忽视的。作为一线的信息技术教师,我们要用更丰富的教学实践、更丰富的教学理论和更丰富的教学睿智,来研透考题走向,让我们的学生在提高信息素养的同时,更能在高考中考出理想的成绩,拥有更多选择继续学业的权力。
参考文献:
[1] 张宏.高中《算法与程序设计》教学策略[J].教育教学论坛,2013(5).
[2] 党丽琼,刘文辉.基于多因素语义相似度的主观题自动评阅方法研究[J].计算机时代,2012(5).
[3] 李超燕,周建良.中小学信息技术上机考试系统的设计与实现[J].计算机应用与软件,2012(5).
[4] 袁利永,刘日仙.Script Control在自动阅卷系统中的应用研究[J].计算机工程与设计,2010(19).
[5] 刘日仙,袁利永.Script Control在VB自动阅卷系统中的应用[J].计算机时代,2010(9).
[6] 刘培奇,李增智.基于模糊含权概念图的主观题自动阅卷方法研究[J].计算机应用研究.2009(12).
[7] 郭新顺,郑戟明.具有多个备选答案的客观题自动阅卷系统设计[J].電脑编程技巧与维护.2009(14).
作者简介:范肖霞,浙江省台州市,天台平桥二中。