交互中设计 实践中升华

2009-06-20 05:26杜治汉肖长玲
职教论坛 2009年2期
关键词:教师引导学习能力

杜治汉 肖长玲

摘要:中职学校现在普遍开设VB程序设计课程,但其教学内容却因学校不同差别很大,原因就在于教师认为中职生的接受能力有限,希望设计的学习内容尽可能地为学生所理解、所喜欢。以一次偶然的VB教学实验为背景,给出了该次教学较为详细的过程,说明中职生的学生能力其实超乎教师想象,只要教师组织得当,操作得法,中职生一样可以学好VB程序设计。

关键词:VB教学;项目实践;教师引导;学习能力

作者简介:杜治汉(),男,江汉大学教育学院教育技术系讲师,硕士,研究方向为教育技术的教学与研究。肖长玲,女,湖北省广播电视学校教师,主要从事计算机科学的教学与科研。

中图分类号:G712文献标识码:A文章编号:1001-7518(2009)02-0040-02

中等职业学校是否应开设VB程序设计课程,一直以来广受争议。支持者认为,VB程序设计是一门基础语言课程。学习VB,不仅具有实用价值,而且对于锻炼学生的思维能力也大有裨益。反对者的主要理由是,对于中职学生而言,其思维能力、智能水平远未达到学习该课程的要求,强行开设VB课程,会挫伤学生的学习积极性。

笔者以前对中职学校开设VB课程也持反对意见,因此,在中职学校初次讲授本课程时显得非常小心:讲授部分尽量简化,不敢涉及稍复杂的知识和程序实例,实验部分尽量给出详细的设计步骤和源程序,学生只需按照实验指导书操作即可。

但一次偶然的教学实践完全改变了笔者的看法。

那本是一次实验课,但实验室临时改作他用,没有其他选择,只能在教室上课。在教室上VB课?怎么上?同学们一脸的茫然与不满,笔者心里也没底。但笔者心想,不管怎么说,程序设计最为关键的还是思维能力,上机只是提供了一个验证设计意图的手段。何不利用这次课做一个试验,考察一下学生的思维能力,并借以改变教学模式呢?

于是,在课堂上笔者说明了这节课的上课目的和方式,以求得学生的配合。然后,给出了一个项目:

同学们有过到大型超市购物的经历吗?我们购物时是怎么结帐的?收银员将我们所购物品逐一在电脑上登记,然后打印出一张购物小票,小票上有我们所购商品的品名、价格以及总金额等。今天,我们的任务就是要用VB设计一个程序,模拟这一结帐过程。首先请大家思考一下,我们这个程序要完成什么功能?

同学们经过讨论后认为,程序应具有:第一,输入功能。收银员能够将顾客所购商品的价格、数量等信息输入进来。第二,输出功能。程序自动将顾客所购商品的信息输出。

教师及时给予提示:输出时,并不使用打印机,只是将信息输出在窗体上。

接着教师引导学生进行具体的设计。

1.界面设计

在进行界面设计时,教师并不需要包办代替,只是以提问的方式引导学生。如:我们怎样给收银员提供一个输入信息的方式呢?收银员怎样才能结帐呢?同学们马上就会翻书、查笔记,联想到以前的知识,通过比较,得出结论:输入信息应该用文本框,结帐应该用按钮,代码应该写在“结帐”按钮的点击事件中。

教师将同学们讨论的结果在黑板上画出来,大家又进行了一些补充,如增加一些用于提示信息的标签等。

2.代码设计

过去学生一看到代码就头疼,这次让学生自己设计代码,难度当然不小。为此,教师采用小步走的教学方式,一步一步引导学生。

{1}输入数据的获得。教师提问:要计算最后的总金额,就必须获得输入的数据。收银员是在文本框中输入数据的,那么怎样才能把这些数据取出来呢?学生讨论后仍然没有正确的结果,这时教师提示:假如有一文本框,名称为“text1”,那么我们写一条语句“p1=text1.text”是什么意思呢?有的同学记起来了,就是要取得文本框里面的字符串。教师肯定其回答,接着又提示:如果写一条语句“p1=val(text1.text)”,那又是什么意思呢?同学们似曾相识,教师告诉学生查一下笔记,结果学生发现,这样就表示要取得文本框里面的数字。学生如法炮制,设计类似的代码将其他几个输入文本框中的数据提取出来。这个问题解决了。

{2}汇总金额。该问题相对较简单,但学生一开始也不知道如何处理,无法将实际生活中的问题与计算机语言联系起来。教师提示:撇开具体数据,我们要计算两种商品的总金额,应该怎么做?同学们马上回答:分别将两种商品的金额求出来,然后相加。教师再提示:我们已经能够取出每种商品的单价和数量,那么用程序怎么表示呢?同学们赶紧讨论,最后认为,应该设计4个单精度变量,分别存放4个输入文本框中的数据,然后再设计一个单精度变量,用来存放总金额。

至此,课堂讨论基本结束,教师指导学生将上述讨论结果(界面设计和代码设计)写在笔记本上,作为上机的依据。

上机时,同学们兴趣高涨,都想尽快看看自己设计出来的结果,教师不断巡回检查。很快,有的同学开始了调试,并找老师询问调试中出现的问题。如很多同学发现调试的结果是输出清单覆盖了最初的输入文本框和标签,很不美观。

显然,这并不是我们想要的结果。那么问题出在哪里了呢?教师问学生:你希望得到一种什么样的结果?学生回答:应该只有购物清单出现,屏幕上的文本和标签都应该消失。教师肯定其思路,接着问:所谓消失就是使其不可见,你认为如何才能使其不可见呢?学生摇头。教师打开其程序的属性窗口,告诉他visible属性就是使对象可见或不可见的,但如何使用该属性,请学生自己看书看笔记。不一会,学生就有了结果,第一项功能实现了。

待到多数同学都实现了第一项功能时,教师进一步提问:正常情况下,收银员给第一位客户结帐完毕后,应该接着给下一位客户结帐,那么怎么实现这一功能呢?结束程序,重新开始运行程序吗?

反应较灵敏的学生马上想到,就是让刚才不可见的对象变为可见。教师很高兴地给予肯定,并提问:收银员怎么才能进入到给下一位客户结帐的程序中呢?大多数同学想到要在界面上设计一个“重新开始”的按钮。于是,学生又开始“重新开始”按钮的代码设计。

不一会问题又出现了,学生发现,第一次“结帐”完毕,点击“重新开始”按钮后,第一次结帐的清单还留在屏幕上,根本没法为第二次结帐输入数据。

如何解决这一问题?有些学生想到了上面解决类似问题的办法,试图控制对象的visible属性。但购物清单没有该属性,因为它不是一个对象,怎么办?教师引导学生看教材上的一个绘图程序实例,要求学生搞清楚窗体上的图形、文字是如何清除的。学生很高兴地发现,只用一个“cls”命令就可以了。

到此为止,程序的主要功能已经实现。教师引导学生:大家再把自己的程序运行一遍,看看有什么不太满意的地方吗?学生一时似乎发现不了什么问题。教师再提示:大家认为我们输出的清单美观吗?是不是太靠近窗体左边了?而且字体也没有用好,能否把这部分再做得更好一些呢?教师提示相关的语法要点,学生看笔记。很快,有的学生程序修改好了,教师提倡同学们采取不同的办法试一试,看看能否达到相同的效果。果然,有的同学采用的是定位符,有的采用的是输出空格的办法。

最后,在本次课结束前,教师抛给学生一个问题:假如汇总金额不止两位小数,而我们只需要保留两位小数,那么应怎样修改程序呢?

应该说,这次课给笔者的印象是非常深刻的。作为教师,笔者明白了“授人以鱼,不如授人以渔”的道理,学生的潜能其实是巨大的,关键是看教师采取什么样的教学方法。如果教师一味地迁就学生,先入为主地认为学生难以学好VB程序设计,只让学生简单地模仿,那么学生就有可能真的对于该课程产生畏难情绪;但如果教师敢于让学生攻坚,充分调动学生的积极性,那么看起来很难学的程序设计也变得简单了。

这次教学改革实验的效果在以后的教学中也充分体现出来。大部分学生不愿再回到以前照抄照搬教师所给程序的老路上去,要求上机前,老师给出一个比较合适的题目,通过教师与学生、学生与学生之间的相互探讨理清思路,然后在计算机上调试。通过调试,不断地修改、完善并最终解决问题,这样学起来感到有趣、有收获。而且以后上课的课堂纪律比以前好多了,学生的注意力也明显增强。实践表明,在中职学校的VB教学中,采用合适项目的任务驱动教学法的确大有用武之地。

参考文献:

[1]刘圣才等编.VB程序设计导学[M].北京:清华大学出版社.

[2]赵晨阳等编.Visual Basic语言程序设计基础[M].北京:电子工业出版社.

猜你喜欢
教师引导学习能力
高中数学学习方法的探讨
幼儿园区域活动中教师的引导策略
谈如何培养小学生的数学学习能力
小学数学教学浅析(二)
中学数学教学方法初探
学业导师制对本科生学习能力和素质教育造成的影响
小学数学教学中如何引导学生自主学习
浅谈科学教学中引导学生用多种方法自主探究