论文部分内容阅读
新课程改革要求课程教学以学生为主,Visual Basic程序设计语言教学的主要目的是使学生能从简单问题出发,设计解决问题的算法,并使用VB程序设计语言编制程序实现算法解决问题。这种编程解题方式与数学解题方式有相同点,更存在着许多区别。数学解题一般是人利用数学方法直接解决某个具体问题,而编程解题是人要将他(她)的数学解题方法以程序(算法)的方式告诉计算机,然后由计算机执行程序来解决问题。这对初学VB编程语言的学生来说可是不容易的。那么如何做好这门课的教学呢?下面谈谈我的做法。
一、明确本课程的学习用途,消除学生畏难情绪
很多学生认为:软件都是专业人员设计好的,普通人不需要学习编程。于是,我在第一节课就向学生介绍了自己工作中遇到的问题,即如何批量打印毕业证,具体如下:
例1:每学年的六月份是学校教务处最忙的时候,因为学校要为每一位毕业的学生通过电脑打印毕业证。如果利用Word软件为每个学生输入相关信息再打印毕业证。一个年段600多人,每人打印一份毕业证,要3000分钟(50小时),工作量可想而知,且容易出错。如何解决这个问题呢?
接着引导学生分析,既然学生的基本信息都已存,教务处一般都用Excel来处理,那么,我们可以利用现成的学生基本信息,编写一个程序来解决这一问题。最后我演示并简要解析了一下我的程序。
通过以上例子,我让学生知道尽管现在已经有各种各样的软件在帮助我们,使我们的工作效率不断提高,但仍然会遇到一些现成软件无法做到的事情,需要我们在原来软件的基础上进行二次开发。因此编程解题是很有必要的。
为消除学生对学习这门课的畏难情绪,我通过实例,简要介绍程序设计语言的发展,让学生知道了几种常见的程序设计语言(机器语言、汇编语言和高级语言),同时让学生感受到高级语言(如将要学习的VB语言)比起低级语言更容易学习和掌握。
以上内容的安排,不仅让学生进一步复习了编程解题的过程,更重要的是,向学生传递了“编程有用、编程不难”这样的信息,不只是专业人员才能学编程,增强了学生学习本门课程的兴趣与信心。
二、算法设计是程序设计的核心,引导学生从简单问题出发进行算法设计
众所周知,算法设计是程序设计的核心。对于任何一个问题,我们要想编程解决它,首先要将自己如何解决这个问题的方法用一定方式描述出来(这就是算法设计),然后再根据算法编写出程序。学生学习这门课的一个很突出的困难就是设计算法。因此,我着重通过一些简单的例子让学生懂得如何进行三种结构的算法设计。
1.从案例入手,引导学生归纳出自己的算法
例2:时间转换
输入一个以秒为单位的时间t,将其转换成“x小时y分钟z秒”的形式。用自然语言描述算法。
这是一个小学数学问题。首先让学生看清题目,抽象出“已知什么,求什么”这样的模型,即已知t秒,求x、y、z。接着我们让学生思考如何解这个问题。但我们很快会发现,学生仍无从下手。于是我将问题改为“3800秒是几小时几分几秒”,学生很快算出答案“1小时3分20秒”。他们习惯于解决一个具体的数学问题,而不习惯解决一个带变量的问题。这恰恰是数学解题与编程解题的一个区别。然后我引导学生进行归纳,将3800这个数换成t,再让他们尝试求法。经过几次修改,我们最后得到正确的算法。
通过以上例子,让学生明白什么是算法设计,并且要想设计出算法,经常可以从实例入手,逐步地把人的解题方法用尽量精确的方法描述出来,就能形成算法。同时为了能较准确地描述出算法,我们要像数学一样适当使用记号(也就是后面学习中的变量)。
2.从与学生学习与生活紧密相连的问题出发,进行算法设计练习
教学中注意选择学生学习与生活中的实例作为学习活动的例子,有利于学生顺利进入课程的学习。如学生学籍管理、VCD播放器以及各学科的学习问题,这些都与学生的学习与生活紧密相连。
在讲解选择结构问题的算法设计时,我们从学生初中阶段就知道的“求一元二次方程实根”的问题出发,进行算法设计的训练。先让学生自己来描述一下“求实根”问题的算法,由于学生对问题比较熟悉,同时有例2中的顺序结构算法设计的基础和教师点拨,学生很快得出如下的算法描述:
(1)输入a,b,c;
(2)求DLT=b2-4ac;
(3)如果DLT<0,则输出“无实根”,转(5);
(4)否则,求两实根x1,x2,输出x1,x2;
(5)结束
接着我们再分析自然语言描述法的不足,引出流程图描述法,进而用流程图把以上算法描述出来。学生就很容易理解了。
三、对部分章节采取分散难点的方法,用到再学
教材把VB程序的结构以及数据类型、变量、常量、运算符、表达式、函数等概念集中放在一节,枯燥而且抽象。对于本部分的教学,我们采取了分散难点、用到再学的策略。因此,我们就跳过这节课。当学习到下一节程序的顺序结构时,我们通过“圆面积”程序这个学生最容易理解的问题,来讲解程序的结构、变量、常量、赋值语句、输入函数和输出方法等。另外,在讲解变量等概念时,要联系实际,运用类比等手段进行讲解,使学生对知识能进行顺利迁移。例如对于变量的概念,我就告诉学生:“人在计算时要用到草稿纸记录数据,同样程序也需要临时存放输入数据或中间运算结果,它通过变量来实现临时存储。”因此引出变量、赋值语句等内容。
由于教材上有“求圆的面积”的程序,在上机实践中,我就安排学生编制出“求圆的面积”的程序。学生通过输入程序、运行程序,从而对程序的结构、各种语句的功能有所感悟。在第二节课,我安排“求一个矩形面积”的任务,让学生参照上节课的“圆的面积”问题进行算法分析与程序设计,再对顺序结构程序有进一步的理解。
在接下来的两节课中,结合“时间转换”问题,讲解“运算符”(重点讲解“整除”与“求余”两个运算)和文本框对象等知识。这样,学生在任务完成中不知不觉地把该章的概念都学习了。
这种将难点分散到多个任务中的策略,不仅避免了由于难点太多使知识造成混淆的问题,同时又能结合实例,使学生有感性认识,便于难点的理解。
四、理解可视化编程的一般步骤,灵活进行教材的处理
按教材安排,可视化编程在“程序的顺序结构”、“程序的选择结构”与“程序的循环结构”等重要教学内容之后。为了教学方便,我将前者进行内容简化与提前处理。
内容简化为两部分内容。一是“对象”、“属性”、“事件”、“事件过程”、“事件驱动”等概念的理解。二是了解可视化编程的一般步骤。为了让学生理解上述概念,我安排了两节课,通过“登录小程序”的制作演示与实践让学生感受VB可视化编程的一般步骤,理解概念产生的背景。
教学中,我们分段进行讲解。第一段演示可视化编程的第一个步骤“对象的添加”,并结合讲解对象概念;第二阶段演示属性设置,讲解“属性”概念;第三阶段演示“事件”与“事件过程”、“事件驱动”等概念,演示事件代码的编写与程序的运行。每个阶段演示后,都让学生动手操作。
学好VB可视化编程的基本过程是学好本课程的基础。通过一些实例,使学生学会编程的基本过程,理解事件驱动的原理,为后面的学习打下基础。
五、牢记“问题解决”主线,精选“问题”,激发兴趣
编程的目的就是为了解决问题,因此本门课程的教学应牢牢把握“问题解决”的主线。对任何一个问题讲解,教师都要严格按照“分析问题”、“设计算法”、“编写程序”、“调试运行”这几个步骤进行,自始至终、潜移默化地培养学生正确的解题过程。当学生也能按照正确的解题过程进行解题,才算真正学会独立地编程解题。“问题”是学生学习本门课的动力,好的问题一出现在学生面前,他们就会跃跃欲试。我们在备课时要精选“问题”,以此激发学生的学习兴趣。
精选问题要注意以下几个方面:现实性,即选择的问题具有一定的现实意义,让学生觉得有用。趣味性,选择的问题比较符合学生的兴趣。挑战性,选择的问题在智力上具有一定的挑战性,不好实现,但又非不可实现。代表性,选择的问题符合当前的主题。娱乐性,选择的问题是一个简单而又有趣的游戏。例如:“角谷猜想”问题符合DO…Loop循环这个主题,具有一定的代表性。“阶乘尾数零的个数”问题需用数学方法解决,具有一定的挑战性。“星座计算”问题则符合趣味性原则。
有了能激发兴趣的问题,学生就能专心听讲,积极地进行思考与实践,肯定能收到很好的教学效果。
(作者单位:福建建瓯职业中专学校)
一、明确本课程的学习用途,消除学生畏难情绪
很多学生认为:软件都是专业人员设计好的,普通人不需要学习编程。于是,我在第一节课就向学生介绍了自己工作中遇到的问题,即如何批量打印毕业证,具体如下:
例1:每学年的六月份是学校教务处最忙的时候,因为学校要为每一位毕业的学生通过电脑打印毕业证。如果利用Word软件为每个学生输入相关信息再打印毕业证。一个年段600多人,每人打印一份毕业证,要3000分钟(50小时),工作量可想而知,且容易出错。如何解决这个问题呢?
接着引导学生分析,既然学生的基本信息都已存,教务处一般都用Excel来处理,那么,我们可以利用现成的学生基本信息,编写一个程序来解决这一问题。最后我演示并简要解析了一下我的程序。
通过以上例子,我让学生知道尽管现在已经有各种各样的软件在帮助我们,使我们的工作效率不断提高,但仍然会遇到一些现成软件无法做到的事情,需要我们在原来软件的基础上进行二次开发。因此编程解题是很有必要的。
为消除学生对学习这门课的畏难情绪,我通过实例,简要介绍程序设计语言的发展,让学生知道了几种常见的程序设计语言(机器语言、汇编语言和高级语言),同时让学生感受到高级语言(如将要学习的VB语言)比起低级语言更容易学习和掌握。
以上内容的安排,不仅让学生进一步复习了编程解题的过程,更重要的是,向学生传递了“编程有用、编程不难”这样的信息,不只是专业人员才能学编程,增强了学生学习本门课程的兴趣与信心。
二、算法设计是程序设计的核心,引导学生从简单问题出发进行算法设计
众所周知,算法设计是程序设计的核心。对于任何一个问题,我们要想编程解决它,首先要将自己如何解决这个问题的方法用一定方式描述出来(这就是算法设计),然后再根据算法编写出程序。学生学习这门课的一个很突出的困难就是设计算法。因此,我着重通过一些简单的例子让学生懂得如何进行三种结构的算法设计。
1.从案例入手,引导学生归纳出自己的算法
例2:时间转换
输入一个以秒为单位的时间t,将其转换成“x小时y分钟z秒”的形式。用自然语言描述算法。
这是一个小学数学问题。首先让学生看清题目,抽象出“已知什么,求什么”这样的模型,即已知t秒,求x、y、z。接着我们让学生思考如何解这个问题。但我们很快会发现,学生仍无从下手。于是我将问题改为“3800秒是几小时几分几秒”,学生很快算出答案“1小时3分20秒”。他们习惯于解决一个具体的数学问题,而不习惯解决一个带变量的问题。这恰恰是数学解题与编程解题的一个区别。然后我引导学生进行归纳,将3800这个数换成t,再让他们尝试求法。经过几次修改,我们最后得到正确的算法。
通过以上例子,让学生明白什么是算法设计,并且要想设计出算法,经常可以从实例入手,逐步地把人的解题方法用尽量精确的方法描述出来,就能形成算法。同时为了能较准确地描述出算法,我们要像数学一样适当使用记号(也就是后面学习中的变量)。
2.从与学生学习与生活紧密相连的问题出发,进行算法设计练习
教学中注意选择学生学习与生活中的实例作为学习活动的例子,有利于学生顺利进入课程的学习。如学生学籍管理、VCD播放器以及各学科的学习问题,这些都与学生的学习与生活紧密相连。
在讲解选择结构问题的算法设计时,我们从学生初中阶段就知道的“求一元二次方程实根”的问题出发,进行算法设计的训练。先让学生自己来描述一下“求实根”问题的算法,由于学生对问题比较熟悉,同时有例2中的顺序结构算法设计的基础和教师点拨,学生很快得出如下的算法描述:
(1)输入a,b,c;
(2)求DLT=b2-4ac;
(3)如果DLT<0,则输出“无实根”,转(5);
(4)否则,求两实根x1,x2,输出x1,x2;
(5)结束
接着我们再分析自然语言描述法的不足,引出流程图描述法,进而用流程图把以上算法描述出来。学生就很容易理解了。
三、对部分章节采取分散难点的方法,用到再学
教材把VB程序的结构以及数据类型、变量、常量、运算符、表达式、函数等概念集中放在一节,枯燥而且抽象。对于本部分的教学,我们采取了分散难点、用到再学的策略。因此,我们就跳过这节课。当学习到下一节程序的顺序结构时,我们通过“圆面积”程序这个学生最容易理解的问题,来讲解程序的结构、变量、常量、赋值语句、输入函数和输出方法等。另外,在讲解变量等概念时,要联系实际,运用类比等手段进行讲解,使学生对知识能进行顺利迁移。例如对于变量的概念,我就告诉学生:“人在计算时要用到草稿纸记录数据,同样程序也需要临时存放输入数据或中间运算结果,它通过变量来实现临时存储。”因此引出变量、赋值语句等内容。
由于教材上有“求圆的面积”的程序,在上机实践中,我就安排学生编制出“求圆的面积”的程序。学生通过输入程序、运行程序,从而对程序的结构、各种语句的功能有所感悟。在第二节课,我安排“求一个矩形面积”的任务,让学生参照上节课的“圆的面积”问题进行算法分析与程序设计,再对顺序结构程序有进一步的理解。
在接下来的两节课中,结合“时间转换”问题,讲解“运算符”(重点讲解“整除”与“求余”两个运算)和文本框对象等知识。这样,学生在任务完成中不知不觉地把该章的概念都学习了。
这种将难点分散到多个任务中的策略,不仅避免了由于难点太多使知识造成混淆的问题,同时又能结合实例,使学生有感性认识,便于难点的理解。
四、理解可视化编程的一般步骤,灵活进行教材的处理
按教材安排,可视化编程在“程序的顺序结构”、“程序的选择结构”与“程序的循环结构”等重要教学内容之后。为了教学方便,我将前者进行内容简化与提前处理。
内容简化为两部分内容。一是“对象”、“属性”、“事件”、“事件过程”、“事件驱动”等概念的理解。二是了解可视化编程的一般步骤。为了让学生理解上述概念,我安排了两节课,通过“登录小程序”的制作演示与实践让学生感受VB可视化编程的一般步骤,理解概念产生的背景。
教学中,我们分段进行讲解。第一段演示可视化编程的第一个步骤“对象的添加”,并结合讲解对象概念;第二阶段演示属性设置,讲解“属性”概念;第三阶段演示“事件”与“事件过程”、“事件驱动”等概念,演示事件代码的编写与程序的运行。每个阶段演示后,都让学生动手操作。
学好VB可视化编程的基本过程是学好本课程的基础。通过一些实例,使学生学会编程的基本过程,理解事件驱动的原理,为后面的学习打下基础。
五、牢记“问题解决”主线,精选“问题”,激发兴趣
编程的目的就是为了解决问题,因此本门课程的教学应牢牢把握“问题解决”的主线。对任何一个问题讲解,教师都要严格按照“分析问题”、“设计算法”、“编写程序”、“调试运行”这几个步骤进行,自始至终、潜移默化地培养学生正确的解题过程。当学生也能按照正确的解题过程进行解题,才算真正学会独立地编程解题。“问题”是学生学习本门课的动力,好的问题一出现在学生面前,他们就会跃跃欲试。我们在备课时要精选“问题”,以此激发学生的学习兴趣。
精选问题要注意以下几个方面:现实性,即选择的问题具有一定的现实意义,让学生觉得有用。趣味性,选择的问题比较符合学生的兴趣。挑战性,选择的问题在智力上具有一定的挑战性,不好实现,但又非不可实现。代表性,选择的问题符合当前的主题。娱乐性,选择的问题是一个简单而又有趣的游戏。例如:“角谷猜想”问题符合DO…Loop循环这个主题,具有一定的代表性。“阶乘尾数零的个数”问题需用数学方法解决,具有一定的挑战性。“星座计算”问题则符合趣味性原则。
有了能激发兴趣的问题,学生就能专心听讲,积极地进行思考与实践,肯定能收到很好的教学效果。
(作者单位:福建建瓯职业中专学校)