“Visual Basic程序设计”课堂教学模式改革

时间:2022-09-05 10:55:23

“Visual Basic程序设计”课堂教学模式改革

摘要:本文分析了“Visual Basic程序设计课程”的教学模式改革实践,探讨了直观教学法、推理教学法、演示教学法、案例教学法在教学中的应用。实践证明,这些方法对于提高教学质量起到了积极的作用。

关键词:Visual Basic程序设计;教学方法;教学改革

中图分类号:G642 文献标识码:A

文章编号:1672-5913(2007)18-0104-03

1引言

Visual Basic程序设计课程教学模式改革试点,经过一学期的具体实践,取得了阶段性的成果。教学模式改革从课程的总体规划、教学内容、教学重点、成绩评定到一系列课程规范的制定,都进行了积极的改革尝试。

传统的教学方法是按照给出语法、解释语法规则、举例说明的三步曲。这样的学习步骤很难让学生对VB产生兴趣。通过教学模式改革开始了新的教学方法的探索。在课堂讲解中尝试运用直观教学法,推理教学法,演示教学法,案例教学法等各种教学方法。

2直观教学法

在VB语言程序设计中,有些内容比较抽象,学生不容易接受。作为教师不仅要把深奥的理论讲得通俗易懂,还要巧用生活中的例子,运用形象直观的比喻使学生容易理解。比如,原来讲for循环语句的顺序是:先给出for 语句的语法格式,讲解其含义及注意点,进而举例说明。这样的教学方法对初学者来说是很难理解的。本学期尝试用以下的方法讲这个知识点:先请学生做个游戏,从第1级石阶开始向着第100级石阶往上爬,石阶一级级地爬,在第1级石阶时捡1个鸡蛋,在第2级石阶时捡2个鸡蛋,……请问到第100级石阶时篮子里的鸡蛋有几个?怎么求?分析这个问题可以知道,在这个事件中重复做一件事情,即捡鸡蛋共100次,这就是个循环问题。循环的初值是1,终值是100,步长为1 (对应的程序是for k=1 to 100 step 1) ;每一级石阶上做同一件事,即捡k个鸡蛋到篮子里 (对应的程序是:s=s+k) ,这就是循环体;捡了鸡蛋后再上一个台阶,即k递增1(对应的程序是:nextk)。很形象地写出了如下的程序:

for k=1 to 100 step 1

s=s+k

next k

针对这个问题可以不断展开,捡完鸡蛋后人站在哪个石阶上?这就是循环结束后循环变量k的值是多少?捡鸡蛋还可以有多种形式,从100级石阶开始向着第1级石阶往下爬捡鸡蛋,程序该怎么写?捡鸡蛋时两级石阶并作一步跨又怎么样?若篮子只能装500个鸡蛋,问篮子满时人站在了哪个石阶上?这些问题既直观易懂又很好地把for循环语句的几个要点讲明白。所以讲课从学生的角度看问题,拿日常生活中的例子打比方,使得学生积极地参与到课堂讨论中来,课堂气氛非常活跃,能够吸引学生的注意力。在VB程序中有很多类似的例子,如选择结构、数组、过程等,凡是学生比较难懂的内容,都可以找到这样熟悉的例子。

3推理教学法

排序是计算机程序设计中最经典的算法,当讲完一维数组的概念并对一维数组有了经验性认识之后,讲排序算法就水到渠成了。但在讲课时不直接讲排序而是从已学的内容出发,引导学生层层深入,最终引出排序的问题,这样既复习了旧课,又降低了新课内容的难度。

比如,我们可以从找最小数入手:产生10个二位随机数,找出最小数。这个问题学生比较容易解决,很快就能写出源代码。

下一步引伸这个问题,我们不仅要知道最小数是多少,还要知道最小数是第几个数,也就是它的下标是多少?

学生自然会想到用一个变量pos记录最小值的位置,程序如下:

Private Sub Form_click()

……

min = a(1) : pos=1

For j = 2 To 10

If min > a(j) Then min = a(j) : pos=j

Next j

Print min , pos

End Sub

这时启发学生思考,既然知道了最小数的位置是pos,要知道最小数是多少,还不是很容易的事,就是a(pos) ,所以去掉变量min。程序改为:

Private Sub Form_click()

……

pos=1

For j = 2 To 10

If a(pos) > a(j) Thenpos=j

Next j

Print a(pos ) , pos

End Sub

继续深入,我们把找到的最小数与第一个数相交换,也就是把最小数放在第一个位置上。

Private Sub Form_click()

……

pos = 1

For j = 2 To 10

If a(pos) > a(j) Then pos = j

Next j

t = a(1): a(1) = a(pos): a(pos) = t

End Sub

继续引伸,在留下的9个数(即从第2个到第10个数)中再次找最小数,把找到的最小数与第二个数相交换。也就是第二遍找最小数,在仿照第一遍找最小数的基础上很容易写出来:

依次类推,第3遍,第4遍,……,直到第9遍,即在留下的最后两个数中找最小数放在第9个位置上,留下最大的数在最后位置上。

可以看到,第i次查找最小数并把他交换到第i个位置的源代码可以写成:

pos = i

For j = i+1 To 10

If a(pos) > a(j) Then pos = j

Next j

t = a(i): a(i) = a(pos): a(pos) = t

那么,10个数共计需查找9遍,所以外加一层循环:

Private Sub Form_click()

……

for i=1 to 9

pos = i

For j = i+1 To 10

If a(pos) > a(j) Then pos = j

Next j

t = a(i): a(i) = a(pos): a(pos) = t

next i

End Sub

这就是我们的结论:选择分类法。继而引出选择分类法的基本思想:每次选出未排序数中的最小者,把它放在未排序数的最前面。对n个数据,需经过n-1次选择。引导学生进一步思考,教材中选择分类法的源程序是这样写的:

For i = 1 To n-1

pos = i

For j = i + 1 To n

If a(pos) > a(j) Then pos = j

Next j

ifposithent = a(pos): a(i) = a(pos): a(pos) = t

Next i

问为何要用ifposithent = a(pos): a(i) = a(pos): a(pos) = t ,这其中的变量pos具体有什么含义。若去掉变量pos,把算法改为:

假如在第i遍找最小数的过程中,设 a(i)为最小数,将 a(i) 与 它后面的所有数a(i+1), a(i+2), …, a(n) 逐个比较,若 a(i)>a(j) ( j=i+1, i+2, …, n ),则交换a(i) 与a(j) ,这就是直接选择排序。给出源代码并要求比较优化选择排序法和直接选择排序法的优缺点。

4演示教学法

在教学过程中,为了提高学生的学习兴趣和讲清楚教学内容,利用一些与教学有关的软件和素材可以取得比较好的效果,如flas。也可以运用单步跟踪、插入断点、监视等程序调试方法使得程序的执行流程一目了然。由于程序调试有一定难度,可以尝试在讲课时把内容分解为几次来讲,且一开始讲程序就伴随着讲程序调试。如第一次接触VB编程,就提示认识上机过程中的错误,这是最初的经验积累;到讲选择结构时,补充单步跟踪调试的方法;到循环时就讲监视窗口的使用,断点的设置等,把难点拆散,逐个掌握。

5案例教学法

精选与实际生活关系密切的问题作为案例, 通过对案例的运行,有效地激发学生的好奇心和求知欲;然后分析案例的设计思路和实现方法, 进而引出该案例中用到的知识点;再举一反三,启发学生对案例进一步讨论、归纳,对案例完善和扩展;最后达到知识的快速掌握和能力的快速培养[1]。

函数和过程这一章是学生最为难懂的内容,概念多且相互交叉。通过案例教学法,先引入一个大家都会做的题目,如求表达式sin(2)+sin(5)+sin(6) 的值,学生一下子就说出来了:

private sub form_click()

print sin(2)+sin(5) +sin(6)

End sub

然后做一题很相似的题目2!+5!+6!,而且提示有一个叫阶乘的函数fact可以用。学生只要在上一题中把函数名改一下就行了:

private sub form_click()

print fact(2)+fact(5) +fact(6)

End sub

一运行,发现有错误,系统提示fact函数未定义。大家查附录果然没有这个函数,这怎么办?这时教师引导,解释这个fact函数,写出function 函数过程,问题一下子解决了。

private function fact(n as integer)

s=1

for I=1 to n

s=s*I

next I

fact=s

End function

然后引入相应的知识点,即function函数的语法,再对自定义的fact函数进一步扩展和运用。如从键盘输入变量m和n的值,求表达式m!/(n!+m!)的值。最后总结引入函数的作用和意义。

6结论

结合学生特点,从认知的角度出发,如何在有限的课时中讲好这门课,引导学生进入VB编程的有趣世界,这是我们教学模式改革的出发点。通过改革试点,学生对VB的学习由开始时的害怕、排斥到觉得VB有意思,乐于去学。课堂上教与学良好的互动,使课堂气氛非常活跃,提高了教学效果。

参考文献

[1] 龚沛曾,杨志强. “Visual Basic 程序设计”国家精品课程建设[J]. 中国大学教育,2004 ,(9).

作者简介:谢红霞,女,浙江大学城市学院计算机与计算科学学院讲师,电子邮件:

上一篇:数据库教学浅析 下一篇:互动式教学模式在三维数字艺术教学中的运用