Visual Basic被公认为效率最高的编程方法。虽然信息技术教师大多了解程序设计的理念,但在初中阶段把这种理念及实现方法教授给学生还有一定的难度。我在尝试VB选修教材的实践中采取了一些措施,这些实践让我对VB的教学方法也有了自己的思考。
● 走近程序——激发兴趣
兴趣是学习的动力,我们要引入一些有趣的实例,让学生体会编程的乐趣。所谓“良好的开端是成功的一半”,所以VB的起始课必须激发出学生的求知欲。那节课,我避开传统的教学方法,没有从软件功能和界面的介绍入手,而是采用多种教学方法,以实例让学生感受程序的神奇。
我将教材中最有趣、最生动的实例进行整理补充,分四种类型推荐给学生:学科型(数学的解一元二次方程)、生活应用型(校园十佳歌手大赛评分器)、智力游戏型(猜数游戏、算21点)和观赏型(播放视频和动画、电子相册)。为了调动学生的积极性,我还组织学生分组竞赛和合作讨论,让更多的学生参与进来。在一元二次方程程序的使用环节,我提供给学生三组有效数据,让他们两人一组,一个笔算,一个用程序算,看谁算得又快又准,并让组长谈一下使用感受。在校园十佳歌手大赛评分器的使用中,我选两名学生各唱一小段歌曲,选10人做评委现场打分,决出胜负。
这节课似乎没讲到多少VB的专业知识,但相比专业知识,学生收获更多。通过实践尝试,他们感受到程序设计带给学习、工作和生活的方便,从而对程序设计产生浓厚的兴趣。教师应尽可能为学生提供可听、可看、可触摸、可经历、可操作的机会,使他们在亲身体验的过程中掌握知识、开拓思维,从而使学习过程变得愉快。
● 概念导入——抛砖引玉
著名特级教师于漪曾说过:“课的第一锤要敲在学生的心灵上,激发起他们思维的火花,或像磁石一样把学生牢牢地吸引住。”对于大部分初二的学生来说,程序设计是从未接触过的新领域,如能做到概念讲解引人入胜,就可以激发学生的求知欲望,起到“抛砖引玉”的作用。
例如,在讲解对象的属性、方法、事件概念时,我将手机作为“砖”,通过对这块“砖”的分析引出概念。上课那天,我带着两部手机走进课堂。我先让学生找出手机的外部特征,等他们分析完,我才引出正题,揭示手机好比VB中的各种控件对象,这些控件对象都有各自的属性,属性又决定了对象的具体特征,可以区分不同的对象。接着我让学生说说手机的功能,我将其比喻成对象的方法,因为方法就是内部封装了的现成、可直接调用的程序,就像手机功能一样方便、灵活和快捷。最难的是对事件的理解,我采用设置情境法,邀请两位学生配合我表演,让其中一位按我的指令拨号,在接通另一学生手机的一瞬间,我告诉学生这就是事件被激发了。也就是手机在来电这件事情的刺激下,做出了响铃的反应。把对象受到的外部刺激称之为对象的事件(事件──刺激),学生顿时恍然大悟。
正确地理解概念是掌握程序设计的前提,要使学生积极主动地学习,教师必须在创新教学上下狠功夫,让学生在实验、观察、猜想、归纳中探讨新知识。在课堂教学中,如果导入得法,学生很容易进入“角色”。概念导入既是一种教育机智的运用,也是教师教学能力的综合体现。我们应不断对导入形式进行深入探讨,让学生学得快乐,让我们教得轻松。
● 语法分析——欲擒故纵
教学中,为了引导学生自然地步入认知区域,不妨人为地设置一些“陷阱”,让学生经历暴露思维缺陷和产生矛盾冲突的过程,再引导学生分析产生问题的原因,并给予矫正。
例如,在编写顺序结构中一元二次方程的程序时,教材中有可参考的现成代码,我先将该程序设计的算法分析一遍,然后放手让学生模仿编写。在模仿过程中,我一直在教室内走动巡视,每看到一种错误,我就及时记录。等学生编写结束,我的错误范例也基本完稿。调试程序是最困难的环节,也是考验学生是否真正理解程序的最好方式,学生会在这个环节异常活跃,待进入高潮时,我便将酝酿已久的问题程序公布出来,让学生仔细盘点这个程序的问题所在。真可谓当局者迷旁观者清,在几十双眼睛的细心观察中,问题慢慢浮出水面。例如,赋值语句中,因遵循格式let变量=表达式,很多学生会将let和变量连写;属性赋值语句中let对象.属性名=表达式,“.”会不翼而飞;注释语句Rem[注释内容],学生书写后,发现语句为绿色,不知何物,误认为错误盲目修改。对于对象的激发事件,学生经常将事件的标志性语句割裂,如Public sub和end sub不成套。在将错误盘点后,学生更清楚地认识到程序编写必须遵循语法,利用一些颜色提示(如保留字一般为蓝色)和列表提示(对象的属性赋值可利用提示列表选择)可以减少差错,提高编程效率。
所谓“欲擒故纵”,就是让学生错下去,任其发展,关键时刻来个“悬崖勒马”,让学生就错悟理,达到“吃一堑,长一智”的效果。
● 案例设计——螺旋式训练
案例教学法打破了传统的教学模式,它从简单案例入手,让学生观看、模仿,在实际操作中探究和领悟这些知识点。案例训练可采用螺旋式的方法,所谓螺旋式训练就是在案例编写时让知识点和概念反复出现并逐步加深,这样才能既保证学习新知识点,又巩固旧知识点。
在初识VB编程功能时,教材选用了学生容易理解的求圆面积的程序设计,其中有三句最核心的语句:
let r=text1.text
let s=3.1416*r*r
text2.text=s
在后面的学习中,我经常将这三句经典语句作为范例语句使用,缩小了学生对新知识的陌生感,较好地实现了知识的连贯性。例如,3.1416为常量,在程序运行过程中是保持不变的量;r和s为变量,在程序运行过程中,值是可以发生变化的量;3.1416*r*r是表达式,用运算符将常量、变量、函数连接起来,并形成能使计算机接受的式子。另外,利用这些语句进行加深和拓展,还可以生成更多的例子。例如,我设计了求梯形面积和求一元二次方程的改版案例(如下图所示),这些例子很大程度上考验了学生的灵活运用能力,满足了学生的探究心理。
学习VB程序设计语言的过程要遵循由简到难的螺旋式原则。教师要根据学生的学习情况,在策略和进度等方面做适当调整,适当取舍教材内容,尽可能设计和利用好经典案例。
● 多维评价——鼓励创新
程序设计的过程包括界面设计、算法设计、编写代码和调试程序四个环节。这四个环节中算法设计、编写代码和调试程序区别很大。在提交作品的过程中,我们经常收取可执行程序,通过结果运行正确与否判断学生的成败,这种绝对的评价不仅会产生两级分化,也会使一些学生为保全正确的结果,而不再深入研究其他途径。
在程序设计教学评价时,我根据程序难易程度,采用不同评价方式,从多角度进行评价。
1.界面评价
鼓励学生设计个性化界面,如窗体背景颜色、控件颜色、控件位置摆布以及图片选择,要求设计的界面美观大方、使用方便。
2.算法评价
鼓励学生设计算法时一题多解,设计出最优算法。
3.编码评价
要求书写规范,条理清晰,可适当添加注释语句,以方便阅读和检查。
4.调试评价
鼓励优秀生辅导后进生。通过辅导,优秀生增加了实战经验,后进生也及时得到了指导。
在进行程序设计的多维评价时,教师要及时捕捉学生的亮点,增强学生的自信心,不管学生的程序有多粗糙,只要界面设计出来,就要给予鼓励,对后进生降低要求,对优秀生提高要求。在修改的基础上进行二次、三次评价,让学生编写程序的能力在评改中得到提升,让学生的创新意识在评改中得到培养。