vb程序范文

时间:2023-04-06 05:57:53

导语:如何才能写好一篇vb程序,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

vb程序

篇1

【关键词】界面设计 代码设计 算法

1 引言

程序设计不仅是一门科学而且是一门艺术,它有较强的创造性和灵活性,也是学生较难掌握的技能。一方面程序设计本身枯燥、严谨,难以理解,另一方面更主要的是教师在组织程序设计教学中缺乏针对性,没充分考虑学生的知识水平、认知规律、学习特点和接受能力。

Visual Basic,是一种面向对象的程序设计语言,编写应用程序快捷高效,是职中计算机专业的必修科目。在这门课的教学实践中,我紧紧抓住界面设计和程序代码设计两大环节,打破教材原有以知识的逻辑结构体系为顺序组织课堂教学的方式,以教授程序设计的基本方法为主线,从具体问题入手,由浅入深,由简及繁,循序渐进,介绍解决问题的方法,最后引出概念和结论,取得良好教学效果。

2 界面设计

在面向对象程序设计语言教学中,界面设计是一项很重要的工作,程序是否简便易用,与界面的质量有很大关系,而界面中的对象属性会影响对象的外观及功能,因此,对象的属性设置在界面设计教学中要重点加以训练。我设计了如下的界面,让学生和我一起完成。

题目要求任意输入两数,求这两数的和(或差、或积、或商),实际是完成一个简单的计算器。

2.1 建立应用程序界面

(1)启动 vb

(2)加入两个文本框。

(3)加入四个运算按钮。

(4)加入两个标签框。

在界面设计教学中,学生通过自己的实际操作,很容易就掌握了如何在界面内添加对象,如何改变对象位置,以及如何设置对象的属性。通过几次针对性的练习,学生对属性的设置不会有太大问题。

2.2 设置各控件的属性

如表1。

2.3 编写代码

程序运行后整个系统处于相对“静止”,等待输入,当输入数据后,单击四个按钮中的任一个时,则引发Label2的Caption属性变化,由原来的内容改为两文本框中内容的和(或差、或积、或商),因此,必须在四个按钮中的Click(单击)事件中加入适当的代码,使Label2的Caption发生变化。

编写“+”代码的操作方法:

(1)双击“+”按钮。

(2)在Command1_Click()过程中加入以下一行代码。

Private Sub Command1_Click()

Label2.Caption = Val(Text1.Text) + Val(Text2.Text)

End Sub

通过此例,很容易便可掌握属性值在代码中的设置。其它按钮控件仿照以上方法,让学生自行完成。

3 程序代码设计

程序设计主要学习的是编程本身的思想,学习的效果不能马上看到,但是可以学到扎实的基本功,如强化逻辑分析和建立数学模型的能力;数据结构和算法知识;丰富的实践经验。针对客观实际,我在VB教学中采取了以下几个措施。

3.1 密切联系实际,激发学生学习兴趣

职中学生相当一部分文化基础差,对概念理解力差,发现问题与解决问题的能力较低,对学习兴趣不高,课堂注意力容易分散,知识掌握不牢固。因此在程序设计教学中我放低教学起点,降低教学难度,培养他们的学习兴趣,让他们学得轻松,学有所获,感受成功。

3.2 编程教学中淡化语句教学,注重算法教学,贯彻结构化程序设计思想

程序的长短、变量的多少不是判断一个程序好环的标准,算法的清晰易懂才是最主要的。同时要强调VB面向对象的结构化程序设计思想,如下例,“给100个整数,打印输出其中的素数”结合算法将一个大任务分解成若干“功能模块”。

3.3 从不同角度看同一问题,把握问题实质

程序设计可以通过不同的算法、语句设计出不同的程序而解决同一个问题。一个程序的好坏关键在于这个程序是否简洁明确、结构清晰和高效率。可把解决同一问题的A程序、B程序或C程序的不同地方加以分析和归类,向学生展示讲解,从而加深学生印象。如在讲授循环结构时,同一例题就可用DO、While…Wend、Do…While、Do…Until、For…Next五种语句来实现。可以适当的加以提示,鼓励学生用不同的语句来设计程序解决问题。最后给予总结和提炼,明确哪种方法简洁、易读,哪种方法运行速度快,哪种方法灵活。

总之,教学有法,教无定法,只要教学得法。如何培养学生学习兴趣,改进教学方法,使学生得到发展是我们长期而艰巨的任务,围绕着这个任务,在保护学生学习积极性的前提下,按照学生的认知规律组织教学,一切可行的教学方法都可在我们的教学过程中加以运用。

参考文献

[1]朱海红.程序设计的教学要讲究方法[J].新课程导学,2011.

[2]申然.我在进行VB程序设计教学过程中的几点尝试[J].文教资料,2006.

作者简介

谢翠芬(1976-),女,广东省佛山市人。现为佛山市华材职业技术学校计算机中学一级教师,主要从事计算机科学教育改革研究。

篇2

关键词:VB程序设计;现代教育;实践与改革

Visual Basic程序设计作为一门程序设计语言,在教学过程中,应用和研发的特征比较明显,而初学者总是感觉程序设计比较枯燥无味、难于理解、入门困难,甚至对其产生畏难厌学情绪。教学中笔者利用现代教育技术手段,对传统的教学方法进行改革,实践探索出了一套行之有效的教学策略,取得了良好的教学效果。

一、着力培养学生学习兴趣,上好VB入门课

1.课前强调程序设计的重要性,充分调动学生的求知欲

在讲授该课程之前,结合学生实际所学专业,事先准备几个VB开发的应用程序或是信息管理系统,第一节课上课时通过多媒体演示,让学生明白程序设计的重要性和实用性,树立明确的学习目标:学习VB不只是达到计算机应用能力的考核要求,更是今后工作、生活中不可或缺的一项基本技能。学生了解了学习目标之后,就会迫切地想自己去尝试程序设计,这样学生学习程序设计的积极性就被调动起来了。

2.揭开程序设计的神秘面纱,开始学习之旅

初学者在学完计算机应用基础后,对计算机的运行原理还是似懂非懂,在这样的前提下,开设VB程序设计课,学生想到要自己编写程序代码来控制计算机完成一项任务更是一头雾水。通过长期的教学实践笔者得出的结论是,要解决这一问题,主要是要在学习者脑海中树立“万丈高楼平地起”的思想:即无论多复杂的程序都是由基本语句积累起来的,而基本语句是很容易掌握的。例如,借助Windows画图程序讲解一个简易调色板程序,改变文本框背景颜色只需要一行语句:Text1.backcolor=VBred即可实现。教师在给出VB颜色描述的关键字后,进一步要求学生实现其他颜色的编程。同时,在教学之初,教师还可以通过一些简单有趣的实例讲解来帮助学生正确认识VB程序设计的基本步骤和方法。

3.鼓励学生克服程序设计的畏难情绪,激发其学习兴趣

学生通过两周的学习,对VB程序设计会有初步的了解,如VB基础开发环境、对象、方法、事件等概念,但教学之初所形成的学习欲望会逐渐冷却,再加之VB的每一个对象都有许多个属性,而且全是英文,晦涩而抽象的概念和英文描述很容易使学生产生畏难情绪,甚至厌学。此时特别需要教师对学生进行鼓励、指导,引导学生明白虽然每个对象具有自己的属性,但各对象之间有大部分属性是相同的,并且这些属性中常用的只有一小部分,很容易就能掌握;另外程序代码的书写虽然看似神秘,但掌握了语法格式后很容易编写。

二、改革教学方法和教学手段,提高教学质量

1.从生活实际入手,将抽象的理论形象化

人类社会的理论知识都是日常生活中发现总结出来的,而VB程序设计作为一门课程也是前人在不断的实践中完善和发展起来的,必然和日常生活有着密切的联系。如果能将VB程序设计的教学过程同生活实际联系起来,原本枯燥抽象的理论就会变得形象生动、通俗易懂,易于学生接受。例如在讲解VB变量的命名时可以联系实际生活中起名的习惯来类比展开,“变量命名必须以字母打头”这一原则如同我们的名字必须以姓氏打头;变量起名时不能用关键字如if,for等,如同我们起名时不会用灯管、茶几等名词;变量在其有效范围内必须唯一,如同我们一个家庭的弟兄俩不应重名。只要将理论与生活有机地结合,找出理论在生活中的原型,教师讲课也感到轻松,学生听起来也容易理解,实践证明这可以取得事半功倍的效果。

2.利用现代教育手段,提高课堂教学质量

VB程序设计学习的特点是实践性强,所有的理论最终都要以写好的程序为结果。而传统的黑板+粉笔的教学手段使教师将程序代码写在黑板上讲解无异于画饼充饥,无法向学生展示程序运行的结果,特别是容易出错的地方不能验证,因此充分利用多媒体投影等现代教育技术手段是非常实用且必要的。一是利用多媒体授课,恰当的课件不仅可以提高学生的学习兴趣,还能把程序结果实时地展示给学生,增大了课堂教学的信息量,使讲授内容形象、直观,这样的教学过程学生听得清、看得切、记得牢、印象深,原本在课堂上听起来非常枯燥乏味的内容就会变得充满乐趣。二是采用实践型授课,在计算机实验室利用电子教室进行教学,即采用边讲边练的授课形式,学生对学习的程序进行现场操作,将理论讲授和上机实践融为一体,使讲解更直观、更清晰、更具吸引力,同时教师还可以随时发现学生实际操作中的问题,给予及时的指导,从而有效提高教学质量。

三、创新评价方式,巩固教学成果

课程的教学质量是平时教与学质量的总体体现,课程考核是对学习者知识、技能和能力的综合评价。VB程序设计由于其特有的实践性强而有别于其他课程,采用单纯笔试的评价方法不能全面、准确地衡量教学质量。通过实践发现,VB课程考核方法的改革思路是在现有的考核基础上,注重对学生过程性评价和实践操作能力的评价,即采用“理论(40%)+上机(40%)+过程性考核(20%)”的综合性考核模式。

四、结束语

总之,教学工作是一项艰巨的任务,还需要在长期的教学实践中不断改革旧的教学模式,并结合学生实际情况,去探索研究,寻找新的、行之有效的教学方法和手段,综合评价学生,努力培养学生自主学习的兴趣,只有这样才能提高学生实际应用的能力,VB课程的教学质量才能得到不断的提高。

参考文献:

篇3

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

中图分类号:G642.0 文献标识码:B 文章编号:1009-9166(2010)029(C)-0123-01

引言:Visual Basic(下面简称VB)程序设计是我校计算机相关专业学生的必修课,然而VB语言枯燥、难以理解,学生缺乏相应的知识背景,导致学生对这门课有恐惧心理,缺乏兴趣。这就要求我们教师在教学中分析、摸索出一些较为行之有效的教学方法,才有可能培养学生程序设计能力,掌握一门技能,激发学生对程序设计的兴趣。笔者在近几年的教学实践中进行了如下改革探索,取得了良好的教学效果。

一、教学改革与实施

(一)采用实例教学法,激发学生的学习兴趣

VB程序设计语言所涉及的内容多,控件的属性、事件、方法也很多。要让学生对这些概念有一定深度的理解和掌握是比较困难的。时间一长,就会影响学生学习的积极性与主动性。因此在教学中,我从实例入手,采用实例作为知识的载体,选择学生感兴趣的问题作为实例,通过让学生亲眼观看、亲手模仿,在实际操作中亲自去体会和领悟这些概念。

(二)采用循序渐进方法,培养学生创新思维

知识的学习是一个循序渐进的过程。在教学过程中,我们可以先从简单的实例出发,再增加或者改变实例的条件,逐渐加深难度,以此培养学生的创新思维,提高学生对程序的分析与编写能力。这里仍以10!这个实例来看,这是我们讲授For…Next循环时的一个典型实例,这段程序在学生弄懂For…Next循环语句之后,理解起来并不困难。但为加深学生对语句的理解程度,提高学生举一反三的能力,要求学生对原程序条件做如下几种变化:

(1)求1到10之间所有数的和

(2)求1到100之间所有数的和

(3)求1到100之间所有奇数的和,步长为2

(4)求1到100之间所有奇数的和,步长为1

这里第(1)小题和实例中原程序相比难度不大,学生已学会根据数据范围定义数据类型,很快写出如下代码:

Dim S As Integer

Dim I As Integer

S=0

For I=1 To 10

S=S+I

Next I

Print"S=";S

第(2)小题将(1)题程序中I的终值改为100即可,学生理解终值在这一循环语句中的作用。第(3)小题增加了难度,需要动脑筋思考,将(2)题程序中For I=1 to 100语句改为For I=1 to 100 step2,才能得到奇数的相加,而且步长为2,掌握步长step在循环语句中的用法与作用。第(4)小题难度更大,要求奇数和,步长为1,做两点变化:一要写出For I=0 To 49,二要修改循环体,将循环体语句变为S=S+(2×I+1)。要做到这些变化,需要学生对For…Next循环语句有比较深刻的理解并能创造性地、灵活地予以运用。通过这种循序渐进的方式,激发了学生主动思考与解决问题的积极性,巩固了教学效果,提高了学生的综合编程能力。

(三)注重实践教学,培养学生实践能力

VB是一门实践性很强的课程,如果只纸上谈兵,不上机练习,是不可能真正掌握VB程序开发的。实践教学主要注意抓住以下几点:

(1)模仿阶段,对课堂核心实例系统的调试、改进。核心实例的每次增强版是全面反映教学内容的,学生通过模仿、知识再现达到在实践中领悟知识,开拓编程思路。(2)分层次阶段,在教学过程实施的开始,和核心实例同步,我就给出了几个类似核心实例的课程设计内容,供学生选择。对核心实例的调试比较成功的,可以同步实施自己所学的课程设计内容,达到培养学生分析问题和解决问题的能力。对掌握核心实例有困难的学生,针对教学内容重新布置实验,强化知识巩固。课程设计内容课后上机完成。

要掌握上面两个阶段的具体情况,教师应亲自指导,与学生一起上机实验,随时监控学生实验过程。对学生提出的问题及时予以指导,而发现学生常犯的共性错误,可在理论课上进行点评。

(四)改革考核形式,体现学生综合运用能力

考试作为教学效果的一种客观测试手段,是教学中的一个重要环节。我们根据VB的课程特点,在传统的期末闭卷笔试考核之外,增加了平时考核、实验考核和课程设计考核的内容。平时成绩占10%,期末闭卷考核成绩占40%,实验成绩占20%,课程设计成绩占30%。对于课程设计,在课程即将结束的前两周,将所有的学生分成若干小组,让各小组分别选择不同的课题来设计,例如开发一个档案管理系统、图书管理系统。实践证明,这种综合考核方法不仅检验了学生把所学知识、技能进行条理化、系统化以及综合运用的能力,而且对调动学生的学习积极性,提高学习兴趣,客观、公正地评价该门课程的教学质量和效果都起到了很好的促进作用。

二、结束语

篇4

关键词:VB程序设计;实例教学;任务驱动

中图分类号:TP312.1-4 文献标识码:A文章编号:1007-9599 (2011) 09-0000-01

How to Teach the VB Programming

Tao Lei

(Anshun Vocational Technology College,Anshun561000,China)

Abstract:The VB programming is the computer application research group's high-quality goods curriculum,the author studies the very good this class here the teaching method.Through with prominent teacher's exchange and the self-study,the author discovered that the VB example teaching,is actuates the student to learn this class the key.

Keywords:VB programming;Cases teaching;Task-driven

VB程序设计是一门非常容易上手的程序设计语言课程,只要潜心学习,不难提高编程能力,属于我系计算机专业学生必修课。但是在教学入门阶段,VB程序设计难免会像所有程序设计语言课程一样枯燥、难懂,不容易提起学生兴趣,这样也就无法带领学生继续走下去。本文就实例演示结合任务驱动的方法,使学生在教学过程中能积极主动的探索和学习。

一、教学以实例为主导

大家都知道计算机专业中的课程大都是操作性强的课程,比如电脑的安装与维护,一个理论知识掌握良好的学生可能还不如一个电脑城打工一两天的学徒。老师如果只是照本宣科,不提供电脑进行实地拆卸和安装练习,那学生是永远学不好这门课程的。在学习VB的过程中也一样,我们以必须结合大量的实例演示,让同学们真正体会到VB的可视化设计和它的实用性。作为程序语言设计课程,VB这门课程的教材还是以理论知识为主,特别是在VB课程的入门阶段,在理论课程的授课中,教师首先是给学生详细的介绍各个控件,只有知道每个控件各自的作用以及使用方法以后我们才可以在VB中创造我们自己的程序。然而在控件介绍的过程中如果只是理论知识不断堆砌的话,活泼好动的学生们势必厌烦,甚至厌学。虽然教科书在这个部分的实例不多,但老师必须要突破这个框框,设计出和每一个控件有关的有趣实例来开展教学,这样会达到事半功倍的效果。用实例作为上课开场导入就是不错的方法,比如学习TEXT的时候,就用一个时隐时现的古诗句做开场,问学生这是怎么做的;学习TIMER的时候,演示一个显示当前时间的条幅,学生一定好奇这是怎么来的。这时候只要稍做讲解他们一定会跃跃欲试,实例激发了同学们学习程序设计的兴趣,从而有了创作出自己的程序的需求。而当创作过程遇到的还没学到的指令代码后,他们也会主动问老师和自己查询,这也为我的后期教学打下好的基础。

二、练习以实例为中心

学车的人不上车就学不会驾驶,游泳的人不下水也学不会游泳。我们的学生如果不用实际操作例子让他们练习,那么VB的知识只能停留在书本上。VB程序设计的教学安排为每周四到六学时,其中一半是理论讲解课,一半是上机实践操作课。笔者认为上机操作如果不采用贴合实际的例子来训练而只是遵照书本的话,学生学无可用,并且也打击了他们的学习主动性。所以在生活中去寻找例子,在课余时间提炼编程心得是笔者备课的主要内容。比如书本上有一个股票分析系统的训练,因为学生对这方面很生疏,不太了解,笔者就改成班费管理系统,学生们对这块是再熟悉不过的,而且编好系统马上就可以投入使用,所以大家的积极性、主动性都很高,做完训练非常有成就感,进而很喜欢这门课程。

三、任务驱动法完善教学

当然由于我们学院学生的思想还不够成熟,自我控制能力相对来说还是比较差,因此自觉性还不够好,为了监督他们很好的学习、认真的实践,笔者采用了任务驱动法开展教学,每次课都留两个任务,第一个任务是完全模仿笔者的课堂实例上机操作,以加强对本节课课程内容的理解并熟练这些操作技巧,这项作业因而也比较容易完成,完成后给基本成绩。第二个任务就是做过变化了的生活实例,同学们在做的时候需要举一反三,还要会预习后面的知识,完成后给附加成绩,不同程度的同学就可以根据自己的条件去安排任务。笔者认为虽然学生不可能每个人都对这门课程有浓厚的兴趣,不可能以后都去从事专业的程序设计工作,但是通过这样的任务安排至少大家都会努力去完成任务,不会厌学,弃学,而且一个学期过后作为计算机专业的学生,他们的基础知识和技能是掌握的,并且还有一部分同学通过任务驱动真正踏上了程序设计之路。

以上的几方面是笔者认为的主要教学方法。程序设计教学的主要目标是为了使同学们了解编程的基本思想,培养分析问题、解决问题的基本能力。围绕着这个目标,在保证同学们学习积极性的前提下,按照他们的认知规律组织教学,一切有效的教学方法都可以在我们的教学过程中加以运用,进而使综合素质得到整体提高,这是VB程序设计课程教学的最终目标。

采用实例教学实际上就是为了使课堂生动,提高学生的积极性、主动性,这种方法不仅在VB程序设计课程中可用,在我们的其他教学中,实例的运用依然是提高教学效果的保障。作为一名年轻的教育工作者,在兢兢业业提高自身知识水平的同时能够摸索到适宜学生接受的教学方法,不会出现肚子里有水倒不出的尴尬,这也是笔者工作的重心和快乐所在。

参考文献:

[1]倪飞舟.Visual Basic程序设计教程[M].2010,2(1):1

篇5

关键词:VB;程序设计;改革;实践

Abstract: Visual Basic programming as a public non-professional computer-based lessons, theory and practice strong, and teaching difficult. The article on how to improve the quality of teaching and training students in an integrated application development capabilities and explore reforms were made.

Key words: VB; programming; reform; practice

1 引言

Visual Basic(下面简称VB) 程序设计是我校非计算机专业学生的必修课,然而VB语言枯燥、难以理解,学生缺乏相应的知识背景,导致学生对这门课有恐惧心理,缺乏兴趣。这就要求我们教师在教学中分析、摸索出一些较为行之有效的教学方法,才有可能培养学生程序设计能力,掌握一门技能,激发学生对程序设计的兴趣。笔者在近几年的教学实践中进行了如下改革探索,取得了良好的教学效果。

2 教学改革与实施

2.1 对课本原有知识进行整合,激发学生的学习兴趣

大部分的教材总是先讲VB语言的基本语法,然后再讲VB中对象的使用。但在讲授时不宜将两者分开,要把VB面向对象的程序设计方法,事件驱动的编程机制贯穿于整个教学过程中。VB中的对象主要用于构建界面,而具体程序功能的实现则要编写代码行,因此任何一个完整的应用程序都不可能只用对象或只用语法。这两块内容可进行穿插讲解。这样就避免了让学生在毫无知识背景的情况下去理解抽象难懂的概念,挫伤他们编程的积极性。在教学过程中,我始终坚持以学生已有的知识程度为基础,打破原有的以课本知识的逻辑结构为顺序组织课堂教学的模式,先不讲基本概念,改用从简单的实例人手,通过让学生观看、模仿,在实际操作中去探究和领悟这些概念,并适时地加以归纳总结,让学生在轻松愉快的气氛中接受新知识。比如,在讲到循环结构中DO——LOOP语句和FOR——NEXT语句的用法时,我用DO——LOOP语句的4种形式和FOR——NEXT语句实现求解N!的过程,让学生去观察、领悟它们的异同。

2.2 教学方法多样化

笔者在教学实践中,除了采用传统的教学方法如:提问法、小组讨论法外,主要采用以下教学方法:

1)错例分析法

学生对变量、类型、运算符、表达式这些基本概念和语言规则的掌握需要一个过程,对算法和数据结构的知识需要不断积累。学习过程中,能听懂老师授课的内容,但自己编制的程序往往错误百出。课堂上,我经常将容易出错的概念以反例形式展示给学生,让他们找错误,通过运行。比如错误使用逻辑运算符。

假设a、b和c是三个变量。如果已知a

不能写成:a < b < c 。

很多学生会错误延用数学上的概念,写成后一种形式。

例 Option Explicit

Private Sub Command1_Click()

Dim a As Integer,b As Integer,c As Integer

a = -3: b = -2: c = -1

Print a < b And b < c

’显示True

Print a < b < c

’显示False

End Sub

为什么 a < b < c会得False?因为,VB在计算这个表达式时,先计算“a < b”部分,得True;再计算“True

通过诸如此类的反例教学,使学生豁然开朗,印象深刻。

2)零散实例和核心实例结合

零散实例教学法,对每个知识点的运用和理解是非常行之有效的,但对前后知识的贯穿缺乏说服力。笔者在教学改革实践中体会到,除经典的零散实例外,将一个规模较大的、典型的、有实用价值的、学生感兴趣的核心实例贯穿于教学全过程,对提高学生的编程能力非常帮助。所谓核心实例是指,实例从小到大、随章节的展开而逐步成长,呈现为逐步进化的多个版本。比如引入一个贯串全书的问题:设计一个“图书管理系统”。首先,用最基本的概念和最简单的结构,给出该系统的第一个(也是最简单的)版本,以后的每一次课,都对该系统提出新的功能和结构上的要求,并用本次课介绍的新概念和新方法对它进行功能上的扩充和结构上的改进。每次得到该系统的一个增强的新版本。为达到设计目标,学生随着教学的进程,可以积极投入到对实例系统的调试、改进的实践中,逐渐掌握了所学的基本知识,同时也提高了编程能力。

2.3 重视实践教学,培养学生综合应用程序开发能力

VB 是一门实践性很强的课程,如果只纸上谈兵,不上机练习,是不可能真正掌握VB 程序开发的。实践教学主要注意抓住以下几点:

(1)模仿阶段,对课堂核心实例系统的调试、改进。核心实例的每次增强版是全面反映教学内容的,学生通过模仿、知识再现达到在实践中领悟知识,开拓编程思路。

(2)分层次阶段,在教学过程实施的开始,和核心实例同步,我就给出了几个类似核心实例的课程设计内容,供学生选择。对核心实例的调试比较成功的,可以同步实施自己所学的课程设计内容,达到培养学生分析问题和解决问题的能力。对掌握核心实例有困难的学生,针对教学内容重新布置实验,强化知识巩固。课程设计内容课后上机完成。

要掌握上面两个阶段的具体情况,教师应亲自指导,与学生一起上机实验,随时监控学生实验过程。对学生提出的问题及时予以指导,而发现学生常犯的共性错误,可在理论课上进行点评。

2.4 培养学生使用标准编码,养成良好编程习惯

在程序设计过程中,使用标准编码可以避免一些不必要的错误。笔者在授课过程当中使用标准编码的实例,在讲解实例过程中对学生进行适当地引导,让学生养成一个良好的编程习惯。

程序书写规范是非常重要问题,不仅书写格式应该结构层次分明,而且程序里面应添加起码的注释。不按照标准书写程序会增加别人查看程序的难度,同时也不利于自己以后上机调试修改。强调学生避免使用Visual Basic 中的隐式操作,养成显式编码的习惯。比如永远使用Option Explicit,严格执行变量先定义后使用的原则。避免使用缺省属性,明确指出是在引用对象还是在引用对象属性。

3 结束语

一门课程的教学是一个复杂的系统工程,笔者将以上一些改革和探索用在课堂教学和实践教学中,取得了一些效果,但教学有法,教无定法,只要教学得法。在教学实践中,合理运用多种教学方法,灵活地、创造性地掌握教学过程,激发学生的兴趣,培养学生的创造性思维和综合应用程序开发能力。

参考文献

[1] 王栋.Visual Basic程序设计实用教程(第3版).北京:清华大学出版社 2007

篇6

[关键词]教学方法 程序设计 对象 能力

Visual Basic 是一门面向对象的可视化编程语言,它的应用非常广泛,可以开发科学计算、数据库管理、客户/服务器模式、Internet/Intranet等多个领域的应用程序,它简单易学、功能强大、应用广泛,是一门实用性很强的课程。

程序设计课程的设置,是培养中职生职业技能的一个重要手段之一。但是对于学生们来说,程序设计的思维方式和概念都是全新的,学生接受起来比较困难,在教学中如何紧紧围绕Visual Basic应用程序开发的界面设计、属性设置和代码编写三个环节,由简及繁、由浅入深、循序渐进地开展教学,每个教师都在摸索着以寻求一个最佳方案。通过几年来的VB教学实践,我谈一谈自己在教学中使用的方法。

(一)努力培养学生兴趣

俗话说:兴趣是最好的老师。在程序设计教学中要利用学生对事物的好奇心,选择一些有趣的、有实际意义的程序,激发学生的学习兴趣。为了激发学生的兴趣,在VB程序设计中的第1堂课,先不讲理论知识,而是演示一些有趣的实例如动画效果蝴蝶飞舞、移动字幕等、计算器,记事本等小实用程序,给学生一个视觉冲击,吸引他们,并告诉他们学习了VB程序设计后,大家都能够编出这些小程序,来充分调动学生的学习积极性,迎合了学生渴望成功的心理特点。

(二)立足具体实例,渗透基本概念

刚接触程序设计的中职学生,对程序设计充满了好奇,如果教材把对象、事件、控件等一大堆的概念放在前面讲,一下子引入大量抽象的名词、概念,就会打击学生的学习兴趣。因此要想让学生领会这些抽象的概念,教学中应以一个个鲜活的具体实例为切入点,在每个例子中适时、适量渗透一些相关的概念和知识,让学生在做中学,在学中做,使学生在完成任务的过程中,逐渐地、很自然地去体会控件、对象、事件的概念。为了让学生灵活掌握每个控件的用法,教学中要安排足够的课时把这些控件的用法渗透到一个个程序实例中,由浅入深逐渐介绍,让学生在编写程序的过程中总结控件的用法。

(三)分解难点,逐个掌握

在VB程序设计的三大环节中,重点难点是编写代码。代码不要一次性给出,而是通过逐步实现各个功能,再组合程序(若程序较复杂,还应给出流程图),实现加强功能,这样学生才能真正理解结构化程序设计的特点,并且把难点进行了分解。最好在编写程序代码的过程中设想好一些以往学生常见的、典型的错误,以便通过调试工具进行找错并修改,可以让学生加深对知识点的掌握,以后也不会再犯同样的错误。

(四)注意因材施教,发挥学生特长

由于中职学生基础和能力的差异,在进行教学时,应根据学生的具体情况制定不同的目标,提出不同的要求,充分调动每个学生的学习积极性,这样才能达到应有的效果。一学到程序设计,学生的两极分化就会特别严重。有些学生对程序设计特别感兴趣,喜欢编程,有时会编出让教师都惊讶的程序,而有些学生则是根本不愿意学习,这时就要在整体教学中注意兼顾个别学生。例如教材中的习题可以分为必做题和选做题,可以发挥优秀学生的内在潜力,同时也可以调动中等学生的学习积极性。在教学的过程中,学生个体的差异性不可避免,如果每个学生的问题都要教师来解决的话,不仅课堂时间不允许,而且顾此失彼,还会影响课堂秩序。教师可以让成绩好的学生去辅导后进生,不仅可以减轻教师负担,同时也加强了学生之间的编程思想的交流。这既遵循了信息技术学科强调的团结合作的精神,又解决了现实问题。

(五)养成动态思维习惯

为了培养学生的逻辑思维能力和抽象思维能力,在程序设计教学中可以有意识的在以下几个方面给予关注:①对于一些比较简单的程序要求同学们直接写出结果;②对于有循环或判断结构的程序,要求学生根据条件一步步向前走,把循环过程写下来;③故意给出一些错误的程序,给学生设计一些陷阱,让学生自己去发现;④让学生把书本中程序编写错了的地方改正过来。

(六)通过课程设计,培养学生的程序开发能力

通过学习,学生大致掌握了VB的一些基本知识,但对知识的理解只停留在表面上,缺乏系统的运用,对小型应用程序系统的开发步骤和调试都还不熟悉。因此,如果我们能开设12周的课程设计让学生在教师的指导下根据自己的实际能力选择一个课题进行设计,这样对学生的知识运用能力的培养大有裨益的。例如可以要求学生模仿设计windows附件中的计算器或写字板;对于部分数据库基础掌握得较好的同学,要求他们编写网上学生成绩查询系统或图书馆管理系统,这些课题都比较贴近学生的实际,学生也很有兴趣,因此他们在设计时较为投入,也能认真地查阅资料,分析步骤,进行控件的选取、属性的设置和事件的编写、调试。这样可以大大提高学生的程序开发能力。

VB语言所涉及的内容多,知识面宽,在短短的课堂教学中,要让学生完全掌握是不可能的,所以学生课外自学也是一个重要的环节。另外,教师还应重视自己创新能力和将专业知识应用到社会实践中的能力的培养,利用VB结合实际开发一些小型的应用程序系统,使自己更好地掌握它,只有这样,教师在教学中才能更好地进行目标任务的选编、设计和组织,探索出更适应学生的教学方法,取得更好的教学效果。

参考文献

[1]全国中等专业学校计算机应用基础课程组.Visual Basic 程序设计[M].北京:高等教育出版社,1999.

篇7

一、以兴趣为师

兴趣是学生最好的老师。如何提高学生对学科教学的兴趣是每一位教师孜孜探求的首要课题。学生爱上信息技术课,而这种爱好往往表现在爱玩游戏,或者上网聊天、浏览感兴趣的网站等方面。但是对一些基本的知识、技能不愿认真地学习。因此,在教学过程中教师要精心设计,诱发学生学习动机,激发学生学习兴趣,从而达到提高效率的目的。

既然学生爱玩游戏,就可把学习寓于游戏之中,激发学生学习的兴趣。例如学生在学习多分支if...then...else if语句和多分支选择select case语句时,在教学中就采用先不讲这些理论,再让学生玩用VB制作的小游戏,如《对奖器》《石头剪刀布》等,老师再介绍if...then...else if语句和多分支选择select case语句的结构,了解VB程序设计的相关知识点时,学生学得就很认真,也能在老师的指导下编写出《对奖器》《石头剪刀布》这样的小程序。

这样,学生就有了成就感,既保持了学生学习计算机的热情,又促使学生自觉学习计算机知识。

二、以应用程序为助手

如果学到某个知识点时,根据知识点纯粹给学生一个任务,并讲解这个功能是如何实现的,那么学生很可能对此不感兴趣,即使完成了操作任务,也是生搬硬套,达不到程序设计所要求的提高探究能力。平时学生会使用一些小型的应用程序,对它们的功能也比较了解,但对如何设计这些程序却茫然不知,于是,笔者把这个作为上课的切入点,把平时常见的应用程序与所讲的知识相结合,让学生先分析其功能,再引导他们运用所学知识实现其功能。最后让学生设计类似功能的程序。如在讲解加载多窗体时,以学生常用的QQ应用程序为例,学生分析其功能是输入QQ号与密码,如果两者与所设置的QQ号、密码是一致的,那么就会进入QQ程序面板,否则无法进入程序面板并给予提示,学生由此得到启示:要实现其功能,至少需要两个窗体,接下来的新课内容学生就会主动学习。学完新课知识以后,再让他们设计类似功能的程序就比较容易了。

此例教学过程启示学生:生活是我们创作的源泉,所以从生活入手,以常见的应用程序作为教师教学的助手,让学生感知了VB程序设计源于生活,服务于生活。

三、以热点为学习点

VB程序设计,传统的教学方式是“讲授法+学生上机”。一般是教师介绍性地把软件的功能、软件的操作界面灌输给学生,相当于教师把软件的使用说明告诉学生。其结果是教师讲得满头大汗,学生听得糊里糊涂,对编程环境仍无法驾驭;对编程思想的教学,往往停留在理论阶段,与实际问题相差甚远。

受政治学科“热点解读”的启发,笔者将生活中学生较关注的热点带入课堂,作为VB程序设计的学习点。在讲到DateDiff函数时,当时正值世博会即将开幕,高考、会考即将举行之时,笔者尝试着让学生制作世博会开幕、高考、会考倒计时的小程序。学生反应很热烈,根据所学的知识很快就设计好了。因为他们要参加会考,通过自己设计的程序,大部分同学了解到了时间的紧迫感。

把热点融入进程序设计教学中,既不脱离社会生活,又能使学生受到教育,一举两得。实践证明,以社会热点作为学习点是一种颇为成功的程序教学法,体现了理论与实际相结合的教学原则。

四、以演示为辅,以实践为主

在信息技术课教学中,演示—实践法是指学生在教师的演示示范操作指导下,借助计算机等多媒体对某一方法、步骤反复实践,从而形成技能、技巧或习惯的教学方法。这种方法既是学生的自我检测和对教师教学效果的及时反馈,又是学生掌握计算机技能的主要途径。在网络教室可以利用多媒体教学软件的“广播教学”功能进行示范性演示。教师在演示或者展示过程中,尽量做到姿势正确,动作规范合理,同时还要给学生讲清楚为什么要这样做,各语句的功能与作用。演示—实践法其目的是让学生既能够掌握知识,又能掌握操作计算机的正确方法步骤,养成良好的习惯。适时地进行演示可以让学生更快地掌握操作技能,记忆也更加深刻。以兴趣为师、以应用程序为助手、以热点为学习点均是在以网络教室为主的机房中上课,演示后,让学生马上实践操作。同时我既可以通过软件的“监控功能”观测学生实践操作情况,又可亲自巡视学生练习过程,及时发现学生实践过程存在的问题,进而及时地手把手地给出纠错处理。当然,笔者认为这种方法特别要注意的是:(1)要给学生更多的利用计算机进行操作练习的时间,老师不能讲得太多,学生练习得太少,即练多讲少。(2)在学生练习过程中,教师必须勤于辅导,即辅与导相结合。(3)选择运用现代教学手段过程中的适当时机,可结合传统方法在黑板上强调某个操作要点,引起学生高度关注,即现代法与传统法相结合。

当然还可以运用多媒体教学软件“学生演示”功能演示某个学生对某一问题的处理操作过程,进而让全体同学都能观察其操作是否规范合理,是否存在过错等,这样让全班同学都能借鉴学习,做到共性与个性相结合。

篇8

关键词:Visual Basic;程序设计;教学与实践

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

文章编号:1672-5913(2007)10-0003-03

掌握计算机应用基本技能成为新世纪人才不可缺少的基本素质之一。由于高级语言程序设计课程不仅使学生更深入地理解计算机的工作过程,而且在培养学生严密地逻辑思维、培养非计算机专业学生利用计算机解决本专业问题的能力方面有着非常重要的作用,因此各个高校普遍开设了程序设计课程。而Visual Basic作为面向对象的程序设计语言,其易学易用,图形用户界面的特点成为非计算机专业类学生首选的教学语言。几年来,我们以提高学生计算机素质,培养创新意识和创新能力为目标,对全校的计算机公共课系列课程进行了一系列的教学改革,尤其对程序设计语言课程的教学改革更是向纵深发展,朝建设精品课程的目标努力。

1Visual Basic在计算机基础教学中的地位和作用

浙江大学城市学院的计算机基础教学在课程体系上分为两部分,第一部分是计算机文化基础,在第一学期的9~16周开课,主要任务是使学生掌握计算机基本知识与基本操作技能,培养学生的计算机文化意识。第二部分是计算机程序设计,在第二学期开设,理工科学生选择C语言,文科类学生选择Visual Basic作为学习编程的平台。城市学院中文科类学生的比例占了近半数,因此Visual Basic成为了名副其实的大课,每年有1500多人学习,作为计算机基础教育的重点课程,对学生乃至学校都有重要影响。

2存在的问题

尽管这几年城市学院的计算机基础教学成绩取得了很大的进步,但应该看到还存在不少问题,这些问题解决得好坏直接影响计算机基础教学的进一步发展。

首先,学生的学习动机不明确,“VB程序设计”的授课对象是广大非计算机专业的学生,尤其是以文科类学生为主,有不少学生认为学习程序设计对他们来说没有用,仅把它当做一门不得不学的课程,只是单纯的应付考试,还没有意识到在信息时代的今天计算机已经成为了人们所必须掌握的一种基本技能。

其次,文科类学生在数学、物理及电子技术方面的基础比较薄弱,自身的认知结构、学习倾向等多方面的差异,致使他们在学习过程中积极性不高,学习兴趣不浓,学生普遍感到“VB程序设计”枯燥、难学。

第三,我们的教学方法、教学手段往往过分强调教师的“教”在教学活动中的作用,而不是从学生的角度出发,从学生如何学好一门课的角度出发。其实教学过程不单单是学生在老师指导下的一种特殊的认识过程,它更是学生个性全面发展的过程,是师生之间相互作用的一种双向活动,因而要探求新的教、学并重的教学理念、教学思路。

第四,“VB程序设计”是一门理论与实践并重的课程,传统的程序设计语言教学按照给出语法、解释语法规则、举例说明的三步曲,教学上习惯于满堂讲,填鸭式教学,总感觉内容多,课时不够,结果导致教师讲得累,学生听得累,经常有学生说上课听懂了,但一碰到自己做,感觉无从下手。

3我们的经验

3.1端正学习态度

在教学过程中,要帮助学生端正学习态度,提高计算机语言课程对其全面发展必要性的认识。程序设计语言是大学中一门很重要的公共课程,是衡量大学生计算机素质的重要标志。程序设计课程的教学不仅要让学生学习程序设计的基本概念和方法、掌握编程的技术,更重要的是培养学生逻辑思维和逻辑推理的能力、动手能力、创新意识和创新能力。多注重学生兴趣的培养,通过一些生动形象的实例引导学生主动提出问题、分析问题、解决问题。

3.2教学方法的改进

基于VB语言的特点,在VB的教学中重点处理好以下两方面的内容:① 算法与结构化编程;② 面向对象技术[1]。

算法与结构化编程是程序设计的核心。在教学中重点注意算法的概念、结构化程序的概念与组成、算法的描述。如典型的排序算法,检索算法等,要把这些作为经典熟记。

面向对象技术涉及到相关概念的教学和面向对象技术应用的教学。VB是基于对象的编程语言,类、对象、属性、事件、方法构成了VB的灵魂,对象及其属性、方法和事件是VB程序的主干,因为这三者决定了对象的外观与行为模式。事实上,应用程序整个界面的运作,都是通过控制对象的属性、方法与事件来完成的。将结构化程序设计和面向对象程序设计融合在一起,面向对象的程序代码主要体现在各个事件过程中,而在事件过程中贯穿了传统的程序设计思路和算法的应用。

由于在VB课程中既要介绍传统的程序设计方法,又要介绍面向对象的程序设计概念和可视化界面设计所涉及的控件、应用程序开发等,内容多,学时少,要讲好这门课,需要充分运用各种教学方法。

(1) 直观教学法

在VB语言程序设计中,有些内容比较抽象,不容易被学生接受和理解。作为教师不仅要把深奥的理论讲得通俗易懂,还要巧用日常生活中的例子,形象的比喻方法最容易为学生所接受。比如循环嵌套是学生不太容易搞清楚的地方,我们可以提出一个很现实的问题,如时针走过两个格子的话,秒针走过多少格子?形象地把秒针、分针和时针的运动打比方,最里层的秒针运动最快,秒针走过一圈,分针前进一格,分针走过一圈,时针前进一格,这就是三重循环嵌套,然后写出程序代码,这样就把抽象的问题形象化,便于学生理解和掌握。

(2) 演示教学法

在教学过程中,为了提高学生的学习兴趣,教师可以利用一些与教学有关的软件和索材,如使用简单的Flas来反映循环结构程序执行流程、排序算法等。让学生有兴趣学习,就能取得很好的教学效果。

(3) 案例教学法

案例教学从学习者的认知规律出发,精选与实际生活中关系密切的问题作为案例,通过案例的运行分析设计思路和实现方法,进而引出该案例中用到的知识点,再举一反三,启发学生对案例进一步讨论、归纳,对案例完善和扩展,最后达到知识的快速掌握和能力的快速培养。由于所有案例都是直接面对应用的,具有实际的应用价值,所以很好地培养了学生的应用能力[2]。“案例教学法”贯穿教学的始终。

3.3学以致用

通过以上一系列教学方法及手段的运用,教师把各个知识点像珍珠一样一个个串起来。但是计算机应用知识不可能只靠听课就能掌握,为了进一步把教师讲的内容消化为学生自己的知识,逐步提高个人的编程能力,必须大力加强动手实践环节,包括作业、编程、上机、上网、做项目,引导学生通过实践拓展知识。必须提升实践环节在教学过程中的地位和作用,引导学生通过实践来提高能力,只有多动手实践,才能破除学生对计算机的神秘感,才能激发学生对掌握计算机编程产生兴趣。我们提出围绕上机实践,抓到课率和课后作业,形成了一套行之有效的方法。

(1) 讲练结合

当学生掌握了某个基本编程结构或学习了某个控件后,应及时训练编程,培养编程的思维方法。我们设计了随堂练习让学生当堂练习,练习题目在范例的基础上做一些细微的改动,目的是及时掌握所学内容。人的认知规律也提示人在学习新的知识时模仿是第一步的,在模仿的基础上进行改进,进而实现设计。而我们的随堂练习更是设计成活页,给学生5~10分钟的时间完成,写上姓名、学号后上交,这样不仅省去了课堂点名,又达到了教与学的良性互动。

(2) 上机实践教学

上机实践课作为与课堂理论教学的配套,是一个重要的教学环节,它不仅检验所学内容,更对提升学习兴趣、引导学生进一步探索有着直接的影响。这一部分的教学我们设计为完成以下三个方面的作业。

1) 上机前练习。为了避免学生上机毫无准备,浪费时间,上机实践前学生必须完成上机前练习,每次上机课开始教师都要认真检查,作为平时成绩的考核依据。精心设计每道练习,由浅入深,让学生在读程序,改程序和程序设计中充分理解和掌握该章节所要求的内容。我们将每一章分为三种练习,根据Benjamin Bloom的研究成果,他提出了认识领域达到的六级分类[3]。在设计上机前练习时,我们将Bloom的六类合并成三类。这些分类根据学习一个算法或语法结构的具体例子定义如下:

认知:读一个简单程序,写程序运行结果或画流程图。

改进:根据前一个作业,生成一个非常相似的算法,如读一个简单程序,修改程序错误或程序填空,实现指定的功能,这是一种较浅近变换。

设计:学生可修改算法,将算法用于不同的环境,可合并相关算法,还可以比较算法,进行程序设计,这是一种较深远变换。

2) 上机实践。通过每周一次的上机实践把本周教学中涉及到的基本概念、重点、难点及常见错误在实验课上再一次认真梳理。要求学生在VB环境下设计界面、属性、事件,如利用窗体单击事件实现前述三类上机前练习,并且运用单步执行、设置断点等方法跟踪算法的执行,对给定的数据确定其输出。

要求学生按照所写内容及步骤进行操作,提醒学生对每一操作的结果仔细观察和详细记录,用实践来验证自己的认识是否正确。学生在操作中将遇到各种问题,教师应启发学生独立思考,勇于实践,引导学生去发现问题的原因,分析问题和解决问题,培养学生的动手能力。

3) 实验报告。上机结束后,要求学生将上机操作内容和步骤、出现问题及解决方法写成上机实习报告,以督促学生及时总结实践经验,进一步深化对课堂教学内容的理解和掌握,同时把程序源代码上传至服务器。教师认真批改作业并作详细记录,根据每一次上机的整体情况,对学生中出现的共性问题分析原因,在课堂上进行有针对性的讲评和总结,使教学和实习有机结合。要让学生充分理解上机实践的重要性,在期末我们组织专门的上机考试,充分全面地考查了学生掌握程序设计的能力。

3.4构建课程支持系统

积极地利用校园网构建网络教学平台,弥补传统教学的有限性,为学生提供更广阔的学习环境。学院新购的Blackborad教学支持系统为我们拓展教学手段提供了很好的平台。他通过“我的课程”模块中的链接直接进入课程,在课程内容区教师可以公布通告、课程资料、任务、教学资源链接;通过互联网上载课程文件,并可以方便地管理课程内容;为用户提供虚拟教室、讨论板交流工具,通过讨论板、实时的虚拟教室互动和小组交流,实现协作学习的效果;还可通过数字收发箱提交并管理作业内容;在线考核功能可以将原始试题资料录入,可以生成试题库;从题库中可随机生成试卷,进行考试并有成绩统计分析来强化学生的学习效果、衡量学生的学习过程。

4总结

抓住VB及面向对象程序设计的本质特征,采取适当的教学措施,使学生尽快掌握这一编程理念和编程方法。近几年在全体教研组教师的共同努力下,城市学院在浙江省计算机等级考试中成绩稳居省内各高校的前列。我们将在已有的成绩和基础上积极向第三阶段计算机教学过渡,把计算机应用渗透到各专业课程中,开设VB的后续课程并和各专业紧密结合,使学生有机会通过多种途径进行结合本专业的计算机应用实践,使我校的计算机基础教育真正全面、深入和持久地进行下去,把中央的高等学校本科教学质量与教学改革工程真正地落到实处。

参考文献

[1] 贾长云. VB教学之我见[J]. 中国职业技术教育,2004,(2).

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

[3] Nell Dale Michael McMillan,史宗海译. Visual 上机实践指导教程[M]. 电子工业出版社,2003.

收稿时间:2006-12-27

篇9

一、递归算法的概念

计算机要完成人们预先定义的工作,首先应该设计完成这个工作的步骤和方法,即算法 。然后再根据算法编写程序。算法是问题的求解过程的精确描述,求解一个问题往往有多种 算法可供选择,选择标准首先是算法的正确性、可靠性、可读性等,其次是算法所需存储空 间和时间的消耗。算法设计是一件非常复杂的事情,在处理实际问题时,为了更好地将复杂 的问题变得简单,在设计算法时常常采用递归的方法。

所谓递归,就是指用自身的结构来描述自身,以实现层次数据结构的查询和访问。用递 归概念来描述的算法就称为递归算法。递归算法常用于递归调用方面,即子过程或函数自己 调用自己。VB允许一个自定义子过程或函数过程在过程体(又称子程序体)的内部调用自己, 这样的子过程或函数就叫递归子过程或递归函数。

递归调用必须是有限的,有限才有意义。所以在进行算法描述时必须设置相关的控制条 件,使其成为有限。这可以通过条件语句(If语句)来实现,即只有在设定的条件成立时递归 才继续,否则终止递归。可见,构成递归必须满足以下条件:1)有明确的结束递归的边界 条件(又称终止条件)以及结束时的边界值;2)过程的描述中包含其本身,即能用递归形式 表示,且递归向终止条件发展。

二、递归算法的设计方法

递归算法既是一种有效的算法设计方法,也是一种有效的分析问题的方法。递归算法求 解问题的基本思想是:对于较为复杂的问题,把原问题分解成若干个相对简单且类同的子问 题,这样原问题就可递推得到求解。

当一个问题存在上述构成递归的条件时,该问题便可以利用递归算法进行处理。具体的 设计方法是:当所求解问题难于直接求解时,首先,把问题分解成若干个难度较小、较容易 求解的子问题,子问题与原问题具有类同的结构。如果子问题能够直接求解,则解之;如果 子问题仍不能直接求解,将每个子问题再分解成若干个更简单的子问题,直到分解出的子问 题能够很容易地求解或解为已知,这是实现递归的模板。然后,设计递归出口(即结束递归 的边界条件),在满足出口条件时,递归函数不能再调用自己,必须返回一个确定的值。将 这两个方面的问题分析好之后,就可以在子程序体中定义递归调用了。

在通常情况下,递归调用都是要受到条件控制的,而且在被调用的过程中,会对调用条 件进行有规律的修改,直到满足边界条件,返回边界值,结束递归;然后按照原来的路径逐 层返回,求出原问题的解。由此可知,递归算法设计的关键在于递归描述和递归终止条件。

三、递归算法的实现过程

递归算法的执行过程是不断地自调用,直到到达递归出口才结束。然后,递归算法开始 按最后调用的过程最先返回的次序逐层返回,返回到最外层的调用语句时递归算法执行过程 结束。可见,递归的实现过程包含了“调用”和“返回”两个阶段。

许多问题都是可以利用递归算法进行求解的。VB中一个最常用例子就是计算阶乘。例如 ,用递归函数实现计算N!的求解。代码如下:

Private Sub FormClick()

Dim N As Integer,F As Long

N=InputBox(“输入一个正整数:”)

F=Fact(N) ’函数调用

Print N;“!=”;F

End Sub

Private Function Fact(ByVal N As Integer)As Long

If N=0 Or N=1 Then

Fact=1

Else

Fact=N*Fact Fact(N-1) ’函数递归调用

End If

End Function

运行程序,单击窗体执行Form Click()事件过程,键盘输入3赋给变量N,即求3!的值。 程序以Fact(N)形式调用函数Fact。当函数Fact开始运行时,首先检测传递过来的参数 N值 是否为1,若为1,则函数返回值为1;若不为1,函数执行赋值语句Fact=N*Fact(N-1)。函数 调用传递的参数N是3,函数计算表达式3*Fact(3-1)值,由于表达式中还有函数调用,于是V B第二次调用Fact函数,但传递的参数是2,函数计算表达式2*Fact(2-1)值。当再一次调用 此函数时,参数值为1,因此函数返回值1到本次调用点,此调用函数又返回2的值到调用这 个调用函数的函数;最后,最初被调用的函数返回6到调用它的过程,得到运行结果。递归 函数Fact的调用和返回过程如图1所示。

图1 递归函数Fact的调用从图1可以看出,一个递归问题可以分为“调用”和“返回”两个阶段。当进入调用阶 段后,便逐层向下调用,因此Fact函数被调用3次,即Fact(3)、Fact(2)、Fact(1),直到 遇到终止条件(即当N=1时Fact=1)。然后带着终止条件所给的函数值进入返回阶段。按照原 来的路径逐层返回,由Fact(1)推出Fact(2),由Fact(2)推出Fact(3)为止。

一般来讲,从算法描述的角度看,递归算法通常有两种实现方法。一种是在递归函数中用递 归公式实现。上述的计算阶乘就是一个使用递归公式的常用例子,其中Fact=N*Fact(N-1) 就是递归公式。再如,求Fibonacci数列的问题,也是通过递归公式来实现递归调用的。其 递归函数代码段如下:

图2 汉诺塔(hanoi)问题Private Function Fab(ByVal N As Integer)As Long

If N=1 Or N=2 Then

Fab=1 '递归出口

Else

Fab=Fab(N-2)+Fab(N-1)

'递归公式

End If

End Function

有些问题无法直接使用递归公式,而要通过一个递归过程来描述。例如,大家所熟知的 汉诺塔问题:有A、B、C三个塔座,A塔上有直径从小到大的N个盘子(如图2所示),要求借助 塔B将N个盘子由A移到C,且保证:每次只移动一个盘子,任何时刻不能把大盘子置于小盘子 之上。

此问题可以用一个递归过程描述:(1)借助C,将(N-1)个盘子从A座移动到B座:(2)将 最后一个盘子(最下端的)从A座移动到C座:(3)滞助A,将(N-1)个盘子从B座移动到 C座。

依据以上分析,(1)和(3)步属于同类问题,只是参数值不同而已。由此可写出递归算法 ,并用VB程序描述的递归过程代码段如下:

Private Sub MoveDisk(N As Integer,A As String,B As String,C As String)

If N=1 Then

Print “将第1个圆盘从第”&A&“座移到第”&C&“座”

Else

Call MoveDisk(N-1,A,C,B) '过程递归调用

Print“将第”&N&“个圆盘从第”&A&“座移到第”n&C&“座”

Call MoveDisk(N-1,B,A,C) '过程递归调用

End If

End Sub

此程序根据对问题的递归描述写出,结构清楚,易理解。因涉及递归,所以其调用的执行过 程可能很复杂。但如果不用递归方法,问题又可能很难处理。因此,在算法描述过程中,只 需把以上算法的三步过程设计好,再考虑一个盘子时的情况(递归出口)怎样处理就可以了。

从上述分析中,可以认为,看问题能否用递归算法,先不要考虑具体的执行过程,只要满足 上述 构成递归的条件即可。在VB程序设计中使用递归时还应注意,在定义递归函数 或递归过程时,一般先使用If语句进行递归测试,找到递归结束的条件,然后再进行递归调 用。

以上示例是递归应用的典型。很多人认为递归不易理解,这是把递归狭隘化了,但是对 递归的理解不能因此受到限制,递归程序的复杂程度比一般程序要高很多。递归算法使程序 清晰直观,是程序设计中很重要的方面,但递归在计算机中的执行过程却很复杂,需要占用 较大的内存空间和较多的系统时间来进行频繁进出和转移操作,执行效率很低。所以,在VB 程序设计过程中,并不一味追求递归。如果一个问题的求解过程明显是递推规律或通过循 环处理方法即可方便解决的,则不必要使用递归。反之,在对问题进行分解、求解的过程中 得到的是和原问题性质相同的子问题,由此自然得到一个递归算法,且它比实现非递归算法 更符合人们的思维逻辑,则应该使用递归。因此,使用递归应扬长避短,只有真正掌握递归 这个有效的编程方法,才能提高编程能力和编程效率。

参考文献

[1]牛又奇,孙建国.VisualBASIC程序设计教程[M].苏州:苏州大学出版社, 2007.

[2]霍红卫.算法设计与分析[M].西安:西安电子科技大学出版社,2005.

篇10

关键词:程序设计;课程考核;考核模式

引言

《程序设计》课程是一门基于.net技术平台下用VB语言设计应用程序的计算机程序设计课程,实践性要求很强。通过学习,不但要求学生掌握扎实的理论知识,同时还要求学生具备熟练的操作技能,注重平时学习能力的培养,让学生形成系统化的课程知识体系,最终达到开发小型管理系统的能力。采用科学的符合教学特点的课程考核方式是十分有必要的。

课程考核不但是对学生知识能力的验证,也是考核教学质量的方式之一。以现有的考核体系“平时成绩(30%)+期末成绩(70%)”模式进行课程考核,平时成绩由出勤率和平时提问决定,期末成绩以理论成绩为主,这种终结性的考核方式往往出现大面积不及格的现象,严重挫伤教者和学者的自信心,已不能适应新形势下高职教育所倡导的注重学生过程能力和综合能力的培养,因此改革课程考核模式至关重要。

课程考核改革思路

从思想上更新观念,改变终结性的考核观,向考核学生知识点、应用能力、分析与解决问题能力的过程性考核方向转变。本着树立以人为本、以就业为导向的人才培养观,不但要以“能力测试”,还应以有利于促进学生的自主学习,促进对技能的掌握,有利于推动学生的就业和创业为考核的最终目的,在实践中探索具有创新性的、系统而科学的、可操作性强的课程考核模式。

1.引入过程性考核

过程性考核是将学生在教学全过程中对知识点掌握、应用能力及分析和解决问题能力作为教学评价,包括考勤、理论作业及单元测试等过程性材料考核。其中引入单元测试,主要是对学生阶段性知识进行测评,可及时了解学生知识掌握情况,及时调整教学策略,解决存在的疑难。这样的考核模式,不但体现考核所起的督导激励、导学促教的功能,也真正考核出学生动手能力、创新能力的水平。

2.引入综合项目实践考核

通过引入某个综合项目系统,课程围绕系统的开发过程进行讲授。依次根据开发系统的过程组织课程教学的进度,将综合项目划为与教学进度一致的若干个小模块,即对应课程的每一个实验任务。由教师指导学生完成每个实验的设计,并要求每次上交完成实验结果及实验报告,根据完成情况给出评分,形成过程性上机成绩。课程结束时学生应完成整个系统的开发,形成期末实践考核成绩。这样不仅有助于培养学生动手编程和创新能力,还培养学生形成课程系统化知识体系。

3.引入综合评价

引入综合评价是为了在课堂中营造一种积极的学习氛围,让学生积极投入到学习过程中。在综合评价成绩给定时要从以下几个方面考虑。

(1)上课表现

课堂是学生学习知识的场所,上课表现主要是指学生的学习态度、投入状况与学习的主动性、创新性等方面。

(2)学习小组评价

要从学生团队合作意识、参与情况及完成质量等方面评价。

(3)教师评价

根据学生平时学习的自觉性、积极性等状况给出一个综合评价分。

探索、改革新的考核模式

1.确定学生考核成绩评定指标体系

通过学生出勤率、单元测试、上交理论作业、上交上机报告、期末理论考核及期末实践考核等六项指标,形成课程考核评定成绩指标体系,评定学生课程考核成绩。根据课程成绩考核要求依次确定各项考核指标在总成绩中所占比例(如图)。

考核成绩指标均按百分制。这样当课程学习结束,期末考试之后,每位学生都会有根据课程考核评定指标得到的一组成绩数据,构成考核评定成绩的原始数据样本X= [x1, x2,…, xi],其中i为课程考核评定指标体系中的指标数。

2.确定课程考核指标的权重系数和评价系数

(1)根据学校课程成绩考核要求确定每一考核指标在总成绩中所占比例权重系数W=[w1,w2, …, wi],其中 i为课程考核评定指标体系中的指标数。由权重系数确定考核指标的基本分(如下表所示)。

(2)为鼓励学生注重学习的过程,对学生有一个全面性的考评。由教师和学生对每一位学生课堂学习表现印象的综合评价给出综合评价分,其中教师评价分和学生评价比值为3∶2,最终确定每一位学生的综合评价分C。根据评价分的不同确定评价考核系数C=[c1,c2, …, cj],其中j为评价系数。

评价分C值在:

85分以上的(含85分),评价考核系数C1=1.5;

70分以上的(含70分),评价考核系数C2=1.2;

60分以上的(含60分),评价考核系数C3=1.1;

60分以下的,评价考核系数C4=1。

3.课程考核成绩评定方法

根据考核指标成绩、考核指标权重系数及评价系数得到每位学生的课程考核成绩,即每一位学生课程考核成绩S=(x1×w1+x2×w2+…+xi×wi)×Cj(其中:i为各考核指标数,j为评价数)。