论文部分内容阅读
高职程序设计课程课程枯燥无味,学生积极性不高,并且,对于课本上的例题容易理解,但当编程时往往感到无从下手,更谈不上举一反三。对此,笔者在VB程序设计的教学过程中,把多种教学方法合理地结合起来,按照学生的认知规律组织教学,并根据教学过程的实际情况,灵活地调整,获得了满意的教学效果。笔者主要从以下几个方面进行了探索。
一、采用实例教学法,增进教学的直观性和调动学生的学习积极性
多数VB程序设计教材都是先介绍对象、对象的属性、方法和事件的概念及VB语言基础等比较抽象难懂的概念,然后才介绍程序的建立和调试运行。从学生的认知规律角度考虑,学生在毫无知识背景的前提下,要完全理解这些概念比较困难,同时也容易挫伤学生学习编程的积极性。因此,笔者打破教材原有的以知识的逻辑结构体系为顺序组织课堂教学的方式,改用以经典实例讲解为教学主线。通过让学生观看、模仿教师所演示的教学实例这一教学形式,让学生在轻松愉快的气氛中接受新知识,在实际操作中,笔者设计了一个“任意输入长方形的长和宽求其面积”的直观程序实例,利用计算机房中的多媒体教师机和投影仪,一边讲解一边演示并同时让学生一起做。
第一,在当前窗体内分别添加三个标签、三个文本框和三个命令按钮控件。第二,设置各控件属性分别为:三个标签的标题依次为“长、宽、面积”;三个文本框的本文属性分别设置为空白;三个命令按钮标题属性分别设置为“计算、清除、退出”。第三,分别在三个命令按钮的单击事件过程中,输入相应的程序代码并讲解相应功能(代码略)。第四,按F5键运行程序。
在上述的操作过程中,让学生思考并找出本例中各个对象的名称、不同的属性、方法和事件过程,再适当加以归纳并理解“对象、属性、方法、事件”的概念。在此基础上,引导学生总结出创建VB应用程序的4个步骤为:设计界面、设置属性、编写代码、调试运行。至此,几个难以理解的抽象概念问题便迎刃而解。
实例教学法打破了以概念知识为中心的传统教学模式,而是以精选出的程序实例为中心,把学习的重点放在具体实例的讲述上,把要学习的程序设计语法知识和概念融入到具体实例中来讲解。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅能调动学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。
二、采用问题驱动法,激发学生的学习主动性和加深对一些概念的理解
在VB程序设计教学过程中,有些编程知识如果只通过教师讲述,学生虽然可以接受,但在理解深度上往往难以达到令人满意的效果,如果能设计出一系列问题,让学生在实践和解决问题的过程中自己去探究和体验,情况将完全是另一个样子。例如,VB中“不同的数据类型对数据取值范围的影响”,这是一个比较抽象令学生难懂的问题,为了让学生切身感受整型变量、单精度型变量、双精度型变量所能保存数据范围的不同,笔者设计了如下的实验过程:
首先,让学生在窗体的单击事件过程中编写一段程序求5的阶乘。学生很快编写好如下程序:Dim I As Integer,n As Integer:Dim X As Integer: X=1:n=5:for I=1 to n:X=X*I:Next I:Print “X=”;X,按F5键调试运行,得出的阶乘的正确结果。其次,让学生把程序稍微修改一下,求10的阶乘,这时很多学生迅速把程序中的语句n=5改为n=10,按F5键运行之后,发现屏幕上并没有输出预期的正确结果,而是显示一个“数据溢出”的错误提示对话框,这时学生纷纷提问。笔者适时地进行点拨,提示学生将变量X的数据类型由整型修改为单精度实型。程序修改后运行,计算机则给出了正确结果。此时,学生已基本体验到了不同数据类型对数据取值范围的影响。
在本例中,程序整体变化不大,但通过如此一个操作过程,学生对整型、单精度型和双精度型数据之间的区别一目了然。另外,由于整个过程都要求学生自己动手动脑设计,他们在操作过程中探究和解决问题的积极性和主动性得到了充分调动。
三、采用条件迁移法,拓展学生的编程思路及提高学生综合编程能力
条件迁移法是指在教学过程中,注意通过在书本原有程序的基础上逐渐改变和增加条件的方法来提高学生对程序的分析理解和举一反三的综合能力。
例如,学生在学习For……Next循环语句时,书本内给出了一段求1到100之间所有整数和的程序。代码如下:Dim S as Integer: Dim I as Integer:S=0: For I=1 to 100 Step 1: S=S+I:Next I:Print “S=”;S ,这段程序在学生弄懂FOR……NEXT循环语句之后,理解起来并不困难。为了提高学生的综合编程能力,笔者给出以下几个问题,要求学生编程:求1到100之间所有偶数的和,要求步长为2;求1到100之间所有整数的倒数和;求1到100之间所有奇数的倒数和;求1到100之间所有奇数的倒数和。其中,奇数项为正值、偶数项为负值。
这里第⑴小题和原程序相比难度不大,只要将循环控制变量I的初始值由1改为2,步长为Step 2即可,学生通过模仿就可以完成。第⑵小题增加了难度,在编程过程中,需要做两点变化:一要将变量S定义为双精度类型,即Dim S As Double,二要修改循环体,将循环体语句变为S=S+1/I。第⑶小题在第⑵小题的基础上只需将步长改为Step 2即可。第⑷小题在第⑶小题的基础上,需再引入一个新的整型变量T,用以表示正负号的变化,并在循环体中变号T=-T,第⑷小题代码如下:Dim S as Double: Dim I as Integer,T as Integer:S=0:T=-1: For I=1 to 100 Step 2:T=-T: S=S+T/I:Next I:Print “S=”;S ,编程时的这些变化,加深了学生对循环语句的深刻理解并能创造性地予以拓展运用,通过练习,学生充分体会到程序设计是有规律的、讲究算法的,一种编程算法往往可以解决一系列类似的编程问题。因此,可以得出结论:凡是编程求若干项的和,都可以归纳为使用循环语句结合求和通式S=S+T来实现。至此,通过强化训练,学生的编程思维得到拓展,综合编程能力得到明显提高。
四、采用师生换位的教学方法,加深学习印象,提高学习的兴奋性
师生换位法是指在教学过程中,请部分学生来担任教师角色讲解某些编程问题。这样,既可以锻炼学生的编程思维及表达能力,又可以加深学生的学习印象。
例如,在定时器控件内容的教学过程中,有一个“用定时器控件制作滚动字幕”编程实例,其中的“字幕”可以有多种滚动方向:通过编程可以使其沿直线水平向左、向右、垂直向上、向下等多个方向的滚动。教师先讲解水平从右向左滚动的编程及操作,然后请学生按几个组次分别担当教师的角色,讲解并演示使字幕从左向右方向滚动、从上向下、从下向上滚动的编程及上机实现过程,遇到问题时,同一组学生共同商量解决,若本组学生不能解决则换成另外一组继续完成。这样,学生们都在积极地思考并高度关注同学们的讲课内容,调动了学生学习的兴奋性,使课堂气氛既活跃又有序。对于学生们来说这是一个很好的锻炼机会,他们将终生难忘。
(作者单位:廊坊职业技术学院计算机科学与工程系)
一、采用实例教学法,增进教学的直观性和调动学生的学习积极性
多数VB程序设计教材都是先介绍对象、对象的属性、方法和事件的概念及VB语言基础等比较抽象难懂的概念,然后才介绍程序的建立和调试运行。从学生的认知规律角度考虑,学生在毫无知识背景的前提下,要完全理解这些概念比较困难,同时也容易挫伤学生学习编程的积极性。因此,笔者打破教材原有的以知识的逻辑结构体系为顺序组织课堂教学的方式,改用以经典实例讲解为教学主线。通过让学生观看、模仿教师所演示的教学实例这一教学形式,让学生在轻松愉快的气氛中接受新知识,在实际操作中,笔者设计了一个“任意输入长方形的长和宽求其面积”的直观程序实例,利用计算机房中的多媒体教师机和投影仪,一边讲解一边演示并同时让学生一起做。
第一,在当前窗体内分别添加三个标签、三个文本框和三个命令按钮控件。第二,设置各控件属性分别为:三个标签的标题依次为“长、宽、面积”;三个文本框的本文属性分别设置为空白;三个命令按钮标题属性分别设置为“计算、清除、退出”。第三,分别在三个命令按钮的单击事件过程中,输入相应的程序代码并讲解相应功能(代码略)。第四,按F5键运行程序。
在上述的操作过程中,让学生思考并找出本例中各个对象的名称、不同的属性、方法和事件过程,再适当加以归纳并理解“对象、属性、方法、事件”的概念。在此基础上,引导学生总结出创建VB应用程序的4个步骤为:设计界面、设置属性、编写代码、调试运行。至此,几个难以理解的抽象概念问题便迎刃而解。
实例教学法打破了以概念知识为中心的传统教学模式,而是以精选出的程序实例为中心,把学习的重点放在具体实例的讲述上,把要学习的程序设计语法知识和概念融入到具体实例中来讲解。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅能调动学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。
二、采用问题驱动法,激发学生的学习主动性和加深对一些概念的理解
在VB程序设计教学过程中,有些编程知识如果只通过教师讲述,学生虽然可以接受,但在理解深度上往往难以达到令人满意的效果,如果能设计出一系列问题,让学生在实践和解决问题的过程中自己去探究和体验,情况将完全是另一个样子。例如,VB中“不同的数据类型对数据取值范围的影响”,这是一个比较抽象令学生难懂的问题,为了让学生切身感受整型变量、单精度型变量、双精度型变量所能保存数据范围的不同,笔者设计了如下的实验过程:
首先,让学生在窗体的单击事件过程中编写一段程序求5的阶乘。学生很快编写好如下程序:Dim I As Integer,n As Integer:Dim X As Integer: X=1:n=5:for I=1 to n:X=X*I:Next I:Print “X=”;X,按F5键调试运行,得出的阶乘的正确结果。其次,让学生把程序稍微修改一下,求10的阶乘,这时很多学生迅速把程序中的语句n=5改为n=10,按F5键运行之后,发现屏幕上并没有输出预期的正确结果,而是显示一个“数据溢出”的错误提示对话框,这时学生纷纷提问。笔者适时地进行点拨,提示学生将变量X的数据类型由整型修改为单精度实型。程序修改后运行,计算机则给出了正确结果。此时,学生已基本体验到了不同数据类型对数据取值范围的影响。
在本例中,程序整体变化不大,但通过如此一个操作过程,学生对整型、单精度型和双精度型数据之间的区别一目了然。另外,由于整个过程都要求学生自己动手动脑设计,他们在操作过程中探究和解决问题的积极性和主动性得到了充分调动。
三、采用条件迁移法,拓展学生的编程思路及提高学生综合编程能力
条件迁移法是指在教学过程中,注意通过在书本原有程序的基础上逐渐改变和增加条件的方法来提高学生对程序的分析理解和举一反三的综合能力。
例如,学生在学习For……Next循环语句时,书本内给出了一段求1到100之间所有整数和的程序。代码如下:Dim S as Integer: Dim I as Integer:S=0: For I=1 to 100 Step 1: S=S+I:Next I:Print “S=”;S ,这段程序在学生弄懂FOR……NEXT循环语句之后,理解起来并不困难。为了提高学生的综合编程能力,笔者给出以下几个问题,要求学生编程:求1到100之间所有偶数的和,要求步长为2;求1到100之间所有整数的倒数和;求1到100之间所有奇数的倒数和;求1到100之间所有奇数的倒数和。其中,奇数项为正值、偶数项为负值。
这里第⑴小题和原程序相比难度不大,只要将循环控制变量I的初始值由1改为2,步长为Step 2即可,学生通过模仿就可以完成。第⑵小题增加了难度,在编程过程中,需要做两点变化:一要将变量S定义为双精度类型,即Dim S As Double,二要修改循环体,将循环体语句变为S=S+1/I。第⑶小题在第⑵小题的基础上只需将步长改为Step 2即可。第⑷小题在第⑶小题的基础上,需再引入一个新的整型变量T,用以表示正负号的变化,并在循环体中变号T=-T,第⑷小题代码如下:Dim S as Double: Dim I as Integer,T as Integer:S=0:T=-1: For I=1 to 100 Step 2:T=-T: S=S+T/I:Next I:Print “S=”;S ,编程时的这些变化,加深了学生对循环语句的深刻理解并能创造性地予以拓展运用,通过练习,学生充分体会到程序设计是有规律的、讲究算法的,一种编程算法往往可以解决一系列类似的编程问题。因此,可以得出结论:凡是编程求若干项的和,都可以归纳为使用循环语句结合求和通式S=S+T来实现。至此,通过强化训练,学生的编程思维得到拓展,综合编程能力得到明显提高。
四、采用师生换位的教学方法,加深学习印象,提高学习的兴奋性
师生换位法是指在教学过程中,请部分学生来担任教师角色讲解某些编程问题。这样,既可以锻炼学生的编程思维及表达能力,又可以加深学生的学习印象。
例如,在定时器控件内容的教学过程中,有一个“用定时器控件制作滚动字幕”编程实例,其中的“字幕”可以有多种滚动方向:通过编程可以使其沿直线水平向左、向右、垂直向上、向下等多个方向的滚动。教师先讲解水平从右向左滚动的编程及操作,然后请学生按几个组次分别担当教师的角色,讲解并演示使字幕从左向右方向滚动、从上向下、从下向上滚动的编程及上机实现过程,遇到问题时,同一组学生共同商量解决,若本组学生不能解决则换成另外一组继续完成。这样,学生们都在积极地思考并高度关注同学们的讲课内容,调动了学生学习的兴奋性,使课堂气氛既活跃又有序。对于学生们来说这是一个很好的锻炼机会,他们将终生难忘。
(作者单位:廊坊职业技术学院计算机科学与工程系)