时间:2023-03-06 16:04:24
引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇程序设计论文范例。如需获取更多原创内容,可随时联系我们的客服老师。
【行为导向教学法;程序设计;教学案例
随着计算机应用的普及,计算机应用专业也成了热门专业,而高级程序设计语言是计算机专业的一门必修课。在高级程序设计语言中,VisualBasic语言以其易学易用和功能强大,而且能够方便快捷地开发Windows应用程序等特征,而深受使用者欢迎。因此,其也作为中等职业学校的高级程序设计课的首选。VB是一门集知识和技能于一体、实践性很强的课程,要求学生既要学好理论知识,又要把握实际操作技能,同时,在进行软件开发时,要对用户需求及市场情况进行调研,再加上计算机软、硬件快速更新换代的特征,要求学生还要具有很强的自学能力和终身学习的思想。对于这些要求来说,传统的教学方法难以做到。而使用强调以职业活动为导向,以人的发展为本位的“行为导向教学法”将会较好的实现这些教学要求。本文拟就在中等职业教育的计算机程序设计(VisualBasic)教学中,如何运用“行为导向教学法”进行初步探索。
一、行为导向教学法的基本理论
“行为导向教学法”是在近几年从德国引进的现代的职业教育新模式,其目标层次是培养人的行为能力,方法层次是人的行为活动。即摘要:这种教育以行为为目标,教学以行为为导向,教学是学生积极参和的全面的教学,学习过程是学生同时用脑、心、手来进行学习的过程。
行为导向教学法具有很强的针对性,即是以职业活动为导向,以教会学生“学会学习、学会工作”为目标而开展教学活动,因此,对学习者来说,学习目的是十分明确,即现在的学习是为今后的职业服务。教学活动的开展,通常是围绕某一课题、新问题或项目开展,是以“学习任务”为载体,引导学生自主学习和探索的过程。整个教学过程为一个包括获取信息、制订计划、做出决定、实施工作计划、控制质量、评定工作成绩等环节在内的完整的行为模式。使用“行为导向教学法”,将能更好的培养学生的关键能力(专业能力、方法能力、社会能力、个性能力),以达到职业教育的“职业教育就是就业教育”的教学目标。
二、行为导向教学法在VisualBasic教学中的必要性和可行性
(一)必要性
现行的计算机专业类教材大多和其它学科式的教材一样,重视知识结构的系统性,教学内容大多以线性方式展开,适用于“循序渐进”的传统教学模式,以《VisualBasic程序设计》的教材为例,从语言基础、流程控制、过程和数组、窗体和控件、对话框设计、菜单、工具栏和状态栏设计等等,分章编排,在每一章的内容里,也同样按线性方式展开。假如,在教学中仍按传统的教学方法按章节讲授,势必降低的课程的综合性、实用性,也缺乏趣味性,这不但难以培养学生学习喜好,使得教学双方都陷入困境,而且,学生不知道如何在真实的情境中灵活地使用知识和运用技巧。这样的学习,是很难面对今后职业的。要改变这一现象的方法,比较成功的是运用以课题或项目来开展教学活动的行为导向教学法进行教学,在教学中,淡化知识的系统性和连贯性,更多关注的是知识之间的联系,在联系中学习知识、在综合运用中学习知识,使学生不仅学会了程序设计知识本身,又培养了学生运用程序设计的知识去解决实际新问题的能力,达到“学以致用”的教学目的。
(二)可行性
《VisualBasic程序设计》是一门实践性和操作性很强的课程,知识涉及许多抽象的术语,如摘要:类、对象、过程、语句、控件等等,还有大量的开发工具的使用。仅就VB的开发环境为例,其中就包含了摘要:窗体设计器、代码编辑器、对象浏览器、属性窗口、工程管理器、工具箱、菜单、工具栏等等。把握和熟悉它们的最好方法,就是在不断的结合实际的“案例”(案例教学法)或“课题”(项目教学法)的操作实践中去把握。在教学中,教师可以把课程内容包含在两到三个综合贴近实际的项目,给出案例,再把这个项目分成若干个小项目(或模块)。例如摘要:以开发一个“学生信息管理系统”为一个综合项目(教师首先给出案例演示,以引起同学们的关注),再分别以“登录窗口”、“查询窗口”等为小项目进行设计开发,学习相关的基础知识(如摘要:在设计“登录窗口”的项目中,学生可以把握“文本框、标签、命令按钮、属性设置、变量命名规则、变量定义、变量数据类型、变量的声明语句、赋值语句”等相关知识群)。学生在具有目标明确的项目驱动下,以“做中学”的方法进行学习,这样,不仅可以提高他们学习的主动性和学习乐趣,同时也培养了他们的关键能力。
二、“行为导向教学法”案例
行为导向教学法中的“项目教学法”是指师生以团队的形式共同实施一个完整“项目”的工作而进行的教学活动。通过在开展项目过程中有针对性的工作来培养学生的关键能力,非凡是独立工作能力、想象力、创新能力。项目教学法包括了计划、实施和检查及成果展示的全过程。它是由学生自己来完成整个过程的教学方法。以下是一个项目教学法的简案。
项目摘要:学生信息管理系统
(一)教学目标
1.培养学生运用VisualBasic知识解决实际新问题的能力;
2.培养学生独立学习和工作的能力;
3.培养学生和人合作的能力。
(二)项目的实施过程
三、需要重点注重的两个新问题
(一)教师角色的转换
在行为导向教学中,对教师提出了更高的要求。教师应是“双师型”的教师,老师的角色由传统的教学主导者转变为教学活动的引导者或主持人,在教学过程中,教师以咨询员、伙伴、朋友等角色出现在学生中,教学方法由注重“教法”转变为注重“学法”,为此,要完成教学任务,教师要付出更多的心血。
(二)项目设计的合理性
项目设计的最重要的原则就是可实践性,以保证学生可操作,并有收获。因此,项目的设计应采用结构化的方法,自上而下,逐步细化的原则;项目的实施,则采用自下而上,由易到难,逐步完善的原则进行。
阴阳理论强调万物皆含有“阴阳”,“阴”与“阳”之间的互动,构成了稳定、平衡的局面。在面向对象程序设计里,继承性体现了阴阳理论的这种“构成论”。派生类通过继承得到了父类的一切—父类中的数据(阴)和函数(阳)。如果在祖先类定义好数据(阴)和函数(阳),那么从这个祖先类派生出去的所有子类都将含有数据(阴)和函数(阳)。CPerson类中,含有阴(Name和Age属性)和阳(GetName()、GetAge()、SetName()、SetAge()四个函数)两大部分,通过派生得到CChina、CUsa和CJapan三个子类,在这所有的派生类中,都继承了CPerson的阴、阳两部分的内容,即使这三个派生类再派生其它子类,依然会继承CPerson的阴、阳两部分的内容,正所谓“万物负阴而抱阳,冲气以为和”,面向对象编程中这种阴、阳互动的内部工作方式构成了它强大的生命力。
2多态性抽象类与阴阳理论
面向对象程序设计的多态性中出现的抽象类,因其定义的某些函数(阳)是纯虚函数,没有具体的代码,实现不了常规的操作(缺失“阳”的功能),这种抽象类(含有“阴”却无功能性的“阳”)不能够生成对象,正符合“孤阴不生”之道。在抽象类中,接口类是一种典型的没有数据(阴)的抽象类,它只含有纯虚函数(无功能性的“阳”),从上面分析可知,该类型也是不能够实例化对象的,正所谓“独阳不长”。《易经》中有“天地氤氲,万物化醇,男女构精,万物化生”,在古籍《雪心赋》中更有“孤阴不生,独阳不长”的名句[6]。句中的“天地”、“男女”更抽象一步可理解为“阴阳”,两句都强调“阴阳”在万物的构成中相互依存的对立统一性。
3总结
1.1重点
(1)单选按钮和复选框的Value属性单选按钮和复选框的Value属性值不同,均能实现判断用户的选择。但是单选按钮的Value值有true和false,分别代表选中和不选中;而复选框的Value属性值有三种:0表示Unchecked,即复选框处于未被选中状态,1表示checked即复选框处于被选中状态,2表示Unavailable即复选框处于禁止状态,不可使用,复选框将以灰色显示。此部分在讲解时,准备利用两类控件的Value属性,来完成判断字体、字形、颜色、滚动方向等功能,以强化知识点的理解。(2)多分支语句结构的书写多分控制结构语句书写也是本次课的重点之一,在本项目中主要实现根据用户不同的选择实现字幕的控制。因此在教学过程中,教师应集中讲解该部分知识点,更好促进学生消化知识。
1.2难点
(1)根据用户选择改变字型设置以“发现问题—探究问题—解决问题”为主线,采用讲授法、对比法、演示法等,引导学生使用思考分析,促进知识的消化吸收,提高课堂学习效率。(2)利用Timer控件和多分支结构语句设置显示字幕滚动通过将知识点融入任务中,逐步消化吸收,采用教师讲授和学生自主探究知识相结合的方法,使学生在理解的基础上能够做到举一反三。
2教学方法设计
2.1目标逆向教学法
以实践活动为中心,学生为主体,教师引导学生主动参与教学活动;在活动中发现问题,然后通过理论知识讲解来解决活动中学生提出的问题。
2.2双层情境教学法
教师将教学情境分类为两个阶段,在第一个阶段的重点是让学生了解必需的技术知识、概念和掌握常用的技术操作,并初步获得技术在工作中的感性认识,即技术情景化阶段。在第二阶段,创设应用技术的现实情境,让学生完成真实的任务并创新,即技术应用情景化阶段[3]。
3教学过程设计
3.1创设情境
假设你是某银行的IT技术人员,经理请你设计门头滚动字幕,更好地宣传银行的各种金融业务。此步骤设计的目的是让学生尽快进入角色,体验情境;明确任务。
3.2展示项目“滚动电子屏”设置程序
教师首先展示项目“滚动电子屏”设置程序,如图1所示。学生观看教师演示,对项目有初步的印象。然后回答老师提出的问题:这个程序主要用到了哪些控件?我们学过的有哪些?学生根据已有知识对窗体控件进行梳理;初步认识到单选按钮和复选框的功能和应用场合,巩固已有知识,并培养学生仔细观察能力,并为下面将单选按钮和组合框控件的讲解做铺垫。
3.3任务一为窗体添加控件、设置基本属性
在展示项目后,教师鼓励学生根据项目演示,利用前阶段所学知识,尝试向窗体中添加控件,并设置基本属性。在学生添加控件的过程中,很多同学不使用按钮数组,而直接向窗体逐个增加,这时教师应该及时提出问题:如果按钮单个添加,在编写程序时怎样区分这些按钮、并且能快捷地实现属性的统一设置?学生激起共鸣,然后教师讲解控件数组的优点。
3.4任务二编写字体、大小、字形、背景颜色和字体颜色的设置
在任务一完成后,教师引出任务二的内容。即:为“设置”按钮编写程序,实现字体、大小、字形、背景颜色和字体颜色的调整。由于字形和字体等属性学生已经学过,所以教师采用循序渐进的方法,先鼓励学生完成易实现的部分,即书写字形字体属性,树立他们的信心。对于教学难点多分支控制结构If-Then-Elseif,教师采用集中讲解的方式提高课堂学习效率。
3.5任务三设置字幕滚动方向和滚动速度
任务三主要是通过单选按钮控制字幕滚动方向和速度,为了完成此项功能,涉及到计时器控件Timer。由于Timer控件的属性较为简单,教师鼓励学生先通过自学的方式学习Interval属性;对于Timer事件中控制滚动方向实践代码的编写,教师通过启发引导的方式来鼓励学生完成。
3.6任务四设置滚动字幕颜色、背景颜色为随机色
任务四是编写程序语句,为滚动字幕设置随机字体颜色和背景颜色。此步骤涉及的知识点RGB()颜色函数和随机函数Rnd()较为简单,因此完全以学生自学和组内合作的方式解决问题。
3.7拓展任务
上机实验课是《Java程序设计》课程教学环节中不可或缺的一部分,然而,在实际教学过程中,上机实验课应有的作用并没有被充分发挥出来。一项针对计算机专业学生的调查问卷结果显示,学生即便将理论知识学的扎实透彻,但遇到实际的编程问题时却很被动,不知道从何处下手。导致这种现象发生的原因就是高职院校对实验的重视度和关注度不高,没有给予学生充足的实验机会及指导,这样一来,学生的动手能力就相对较差。传统的教学模式下上机实验课的流程就是学生上机编程来完成教师预先布置的编程任务,教师则会呆在机房内随时解决学生在实际操作过程中提出的问题。这种实验方式没有给学生设定明确的上机目标,致使学生没有完成任务的紧迫感,甚至有的学生在教师看不到的时候肆意玩乐,这样一来,非常不利于培养学生的动手能力及解决问题的能力。由此不难看出,按照传统的教学模式来培养学生,学生不能够很好地具备解决实际问题的能力,因此,传统教学模式下的高职Java程序设计课程教学不能满足社会对高素质、高能力技术型人才的需求。
2高职Java程序设计课程教学的改革
2.1教学内容的改革
高职教育更侧重于将学生培养成能够满足工作岗位或职业需求、掌握相应技能的应用型人才,因此,改革教学内容是非常有必要的。改革教学内容就是改变传统的理论教学,引入适量的案例,将基本理论的讲授穿插于案例教学中。需要特别注意的是,选择恰当合理的案例是非常重要的,它的质量能够直接影响到最终的教学效果。因此,教师要根据学生认知的特点选择具有适用性及代表性的案例,而且这些被选择的案例必须能够包含Java程序设计中的大部分知识,这些案例既区别于课堂上的举例,但又和它们具有一定的联系。为了能够很好地展开案例教学,教师在课前需要对案例教学进行周密详细的安排,主要包括四个方面,它们分别是发放案例素材、组织案例实施、区分案例分析中的理论分析以及操作分析、安排处理案例教学中涉及到的外延知识。案例教学能够在课堂上很好的结合理论与实践,促进学生综合能力的提升。学生带着问题去分析案例,在这个过程中教师对涉及到的相关理论知识进行讲授,这种方式能够帮助学生更好地理解知识。对案例进行分析的过程不仅能够使学生拓宽知识面,掌握分析问题的技巧,还能够帮助学生将理论运用于实践,更好地消化吸收所学知识。因此,相比传统的理论教学,案例教学这种教学方法更够满足当今社会对应用型人才的需求。
2.2教学方法的改革
当今社会团队协作能力是非常重要的,因此,改革教学方法最主要的一个途径就是实行小组教学。所谓小组教学就是很据自愿或者协商的原则,将全班学生平均划分成几个小组,由小组成员共同推选出一个成员作为组长。在课堂上,首先教师需要在对典型案例进行讲解的过程中穿插对Java语言的介绍,帮助学生更好地理解进而接受理论知识,并且深入了解Java语言面向对象的特性。然后教师通过为每个学习小组安排编程的任务来使学生对案例进行分析,并且分析讨论后每个小组都要确定出最终的解决方案,由教师来点评这些方案。为了能够使学生高效率的完成规定任务,教师要在分析讨论过程中对学生提出相应的技术要求及纪律要求,并设定一个恰当的完成期限。这种教学模式充分体现了学生学习的自主性,彰显了学生课堂的主体地位以及突出了教师协助引导的作用。小组教学的教学模式可以使学生进行不同的思想交流,擦出智慧的火花,正如萧伯纳所说“如果我有一个苹果,你有一个苹果,互相交换,还是你有一个苹果,我有一个苹果。但是我有一种想法,你有一种想法,交换一下,双方就都有了两种思想。”这就说明了通过小组交流,学生思维会更加活跃,从而产生更优的思想。通过小组教学,不仅可以提升学生对理论知识的认知度,培养团队合作的能力,还能够提升学生分析、处理、解决问题的能力。此外,在小组教学的过程中,教师能够迅速接收到来源于学生的反馈信息,比如反馈分析案例过程中遇到的问题等信息,通过这些反馈信息,教师能够及时的采取相应措施来解决问题,从而实现教学相长。
2.3考核方式的改革
对教学成果进行考核对无论是教还是学都能做出恰当的评价,目前我国高职院校中通常采取考核这一手段来对教学的效果进行检验。在传统的教学模式下,通常采取卷面考试来进行考核,而且最终结果往往是由一次考试的成绩来评定的,也就是说,无论学生平日里表现多好,但如果在作为最终考核的那次考试中发挥失常,那么就会在一定程度上否认这个学生的学习能力。而且这种考核方式并不能够对学生的能力、知识以及技能做到真实的反映。由此看来,为了能够对学生的学习做出恰当合理的评价,改革考核方式是非常有必要的。这就要求高职院校要制定一个科学的评价标准,重点突出对学生知识应用能力的培养。在对高职Java程序设计课程学习进行考核时,可以通过两个方面来展开考核工作,相应地,学生总成绩也由两部分组成,一部分是综合能力考核成绩,另一部分是平时课堂表现成绩。具体来讲,一方面,通过案例教学,教师要求每个小组在对案例分析完成之后,做出案例的分析报告,在此基础上,综合小组成员的意见和建议,为假定的任意一个应用领域或虚拟企业设计一个信息管理系统,然后模拟其运行环境,最后进行编码或者程序设计。总之,就是给予学生一个展示自我知识、技能、操作等综合能力的机会,这种考核方式能够使学生更加牢固、系统的掌握所学的理论知识,这方面的考核成绩占据较大的比重,在总成绩中通常占据60%的比例。另一方面,也就是占据总成绩40%的平时成绩,具体来讲,就是在平时教学过程中,教师要密切关注课堂小组讨论中每位学生的表现,并且加以记录,给出相应的分数。此外,在本门学科结束学习后,教师需要组织每个小组进行小组内成员间的彼此评价,相互打分。最后,教师通过对这两小部分的成绩进行综合的评定,给出每个学生最终的平时课堂表现成绩。
3总结
本文对温度、湿度两个显著影响温室作物生长的参数进行深入分析研究,构建的温湿度模糊控制系统方案如图2所示。图2中,T和H分别为模糊控制系统输出的温室环境温度和湿度值;T1、H1分别为根据专家经验给出的农作物生长最佳的温度和湿度值;eT1、eH1分别为给定值与温室环境的实际测量值的偏差;ecT1、ecH1分别为温湿度偏差随时间的变化率。
2温湿度模糊控制器设计
2.1输入与输出变量的模糊化
根据温室大棚的实际状况,以温湿度偏差及其偏差变化率为输入变量,各输入变量的模糊化信息如表1所示。结合研究对象实际情况,既考虑控制规则的灵活性又兼顾简单易行。表1中,4个输入变量模糊集均取为A,A为{NB,NS,ZE,PS,PB};模糊论域均取为B,B为{-4,-3,-2,-1,0,1,2,3,4}。模糊控制器的输出控制变量为前窗、天窗、后窗、遮阳帘、通风机、加湿器和加热器。这7个变量均为开关量,只有开和关(0/1)两种状态,分别用符号u1、u2、u3、u4、u5、u6、u7表示这7个变量。
2.2隶属函数的确定
由于三角形隶属度函数在输入值变化时比正态分布或高斯型具有更高的灵活性[6],因此本研究中温湿度偏差与偏差变化率均选取三角形隶属度函数。图4为各输入变量的隶属度函数,选择的模糊集宽度为4。因为宽度过小会造成部分区间空缺,可能找不到相应的控制规则,收敛性不好;宽度过大会造成控制规则的重叠部分过多,相互间影响加大并且响应速度也变慢[7]。根据隶属度函数对输入变量量化为9个等级,其相应的隶属度赋值如表2所示。
2.3模糊控制规则的制定
模糊控制规则的形成实质上是把操作者的经验或专家的知识和经验进行凝练得到的若干条模糊控制规则[8]。经对实际温室控制系统的研究,发现温湿度间存在一定的耦合性,即当通过某一执行机构改变温度(湿度)时湿度(温度)也会发生变化,因此在制定模糊控制规则时就要渗透解耦的思想。基于此,对7种执行机构的开关状态做如下考虑:u1、u2和u3每打开一个设备降温和降湿效果增强一点,但速度较慢;u5开通后其降温和降湿速度明显比u1、u2、u3快;u4降温作用明显,对湿度基本无影响;u6主要起加湿作用,降温为次要作用;u7主要为增温作用,降湿为次要作用。研究中制定了温度与湿度之间、温度变化率与湿度变化率之间的两个模糊控制规则表,在此仅列出温度与湿度之间的模糊控制规则,如表3所示。表3中,U为u1到u7这7个变量的开关状态,开用“1”表示,关用“0”表示。
2.4反模糊化
模糊控制器输出的是模糊语言不同取值的一种组合,由于被控对象只接受一个精确的控制量,因此需要从组合中判决出一个精确的控制量,这也就是反模糊化的过程[9]。常用的判决方法有重心法、最大隶属度法和中位数法等,本研究采用重心法计算模糊控制输出的精确控制量。其具体表达式为u'=∑nj=1ωjμ(ωj)/∑nj=1μ(ωj)(1)其中,n为模糊变量个数,ωj为模糊变量,μ(ωj)是对应模糊变量的隶属度。本系统反模糊化的具体过程:首先温湿度误差或其误差变化率经量化后得到相应的量化等级,根据量化等级查询各个执行机构在控制规则表中对应的控制规则并使其激活。然后,由式(1)计算各个执行机构的输出值,计算结果等于0.5时,执行机构保持原来状态;计算结果大于0.5时,执行机构开;计算结果小于0.5时,执行机构关。基于这种思想,可建立各执行机构的模糊控制查询表,放在内存中,编写相应的PLC程序即可实现模糊控制器对执行机构的实时控制。
3温湿度模糊控制PLC程序设计
温湿度模糊控制PLC程序包括输入量的采样与模糊化程序、量化等级程序、模糊控制查询程序、执行机构控制程序和预警程序等[10],在此仅介绍有关输入采样、误差的计算和模糊控制查询的部分程序。本研究是在STEP7编程环境下完成的模糊控制程序。
3.1输入量采样和ET/EH计算程序
研究中应用的温湿度传感器的变送单元分别取0~50℃、0~100%RH,线性对应电流均为4~20mA,因此在编写PLC程序前需把温湿度的值与PLC中的数字量关系建立起来。具体过程如下:以温度为例,用I表示电流值,T表示温度值,X表示实时温度转换为PLC中的数字量值。由于0~50℃与4~20mA对应,4~20mA又与PLC中的数字量为6400~32000对应,因此可得曲线方程如式(2)与式(3)所示。根据式(4)即可计算0~50℃对应PLC内部的数字量值。如22℃对应数字量值为17664。同理,可求得湿度值与PLC中数字量的对应关系如式(5)所示。其中,H表示湿度。下面以温度为22℃和湿度为70%RH的情况编写相应的PLC程序,70%RH对应的数字量为24320。
3.2模糊控制查询程序
由反模糊化得到的模糊控制查询表实质上是一个9×9的二维数组,存在以VW200开始的81个字单元中。在此把数组的首地址指针设定为VD48,根据(VW20×9+WV18)×2即可计算偏移值,在查询表中定位并把相应值赋予WV28。
4系统实际运行测试
控制系统投入运行后,任选某一天对控制效果进行实际测试。测试时的起始温度和湿度分别为32℃和52%RH,控制设定值分别为22℃和70%RH。对温湿度采样时间间隔均为5min,根据采集数据绘制的曲线如图5所示。由图5可知30min左右时温湿度值均达到设定值,再经10min左右温湿值即达到预设的稳定状态值,达到了较满意的控制效果。控制系统达到稳态的时间可通过增减有关设备进行调节。
5结束语
依据教学大纲中教学目标、知识点、能力培养等,结合课程设置要求、适应社会需要、企业人才需求、科研项目前沿等,构建内容科学、结构合理的案例库。比如,针对不同专业、不同需求、不同层次学生,设计相应章节或知识点的《C语言程序设计》课程的案例库。
二、以案例促实践,培养学生的学习兴趣、自主学习能力、工程实践能力
初步认知案例,调动学生的积极性,激发学生的学习兴趣。课堂上,在讲授知识点之前,先给出一个案例,通过多媒体演示运行的状态,已预习的学生将会对案例有浅显的认识或者通过教材往往可以得到一定的认知。从案例中寻找知识点,对理论知识概括总结,培养自主学习能力。与传统的教学模式相比,通过引入案例交互式的教学方法更能让学生积极主动地参与,真正实现以学生为主体“、做中学”。当然,案例的构建和选择是非常重要的,要有效地激发学生的兴趣,就要求教师精心设计和恰当安排。从初步认识案例,结合学生自主学习教材的知识,他们将会能动地找出相应的知识点,基本领会到这些知识点如何运用。同时,教师可适当地多演示相似的案例,让学生分组讨论,进而总结案例中涉及的基础理论知识、掌握的基本技能等。通过该方式,能使学生深刻地认识到课堂上所学到的基本知识,达到自主学习能力的培养。反思案例,培养学生的工程实践能力。按照传统教学模式,让学生依据案例所涵盖的知识点,能写出同层次水平的新案例,通过分组讨论,选择与实际问题结合紧密、对知识点反馈性强的案例,可以增加到案例库中,更加激发学生的激情,从成就感中获得喜悦,进而培养学生的工程实践能力。
三、以实践促课堂教学,增强教师授课中理论联系实践的意识,培养学生的归纳总结能力,提高学生的基本技能
采取由浅入深、由表及里的实践练习,为运用技术打下坚实的理论基础。打破传统实验课堂的教学模式,通过对案例的认识和对知识点的挖掘,依据培养目标让学生自主设计实验内容,通过实验课堂分组进行实践,选拔科学合理、结构清楚、层次多样的优秀实验方案,鼓励学生多思考、多总结、多实践。收集案例或实践教学中学生易犯的错误或易混淆的知识点,及时反馈、纠正。如前面所说,将实验课堂上得到的比较优秀的案例添加到案例库中,这样不断改进、优化、更新案例,使教师能在授课中自主地将理论与实践紧密联系,从而更好地指导教学内容。挖掘有效的教学手段、教学方法,体现一定的教学艺术,实现“从做中学,从学中做”,培养学生的语言表述能力、综合分析问题能力、逻辑推理能力和知识归纳总结能力。同时,根据实践的效果和教学内容安排,可以适当增加开创性课题,开拓思维,将有限的知识通过前沿课题或项目融入学生的第二课堂,培养他们不断探索和创新思维的能力。四、以理论和实践促科研项目,教学过程中渗透科学研究前沿知识,让学生了解相关学科的前沿研究动态,鼓励和引导学生创新,培养学生具有可持续发展的学习能力、创新能力教学过程中,以学生为主体,教师起主导作用,引导学生积极参与,坚持“以人为本”,注重学生的个性发展,多方位培养学生可持续发展。学习是自身发展的需要,也是社会发展的需要。不断学习才能适应社会发展,才能满足企业的需求。有时,企业将学习能力作为衡量人才的重要标准之一。激发学生的潜力,转变教育观念,采取一定的措施和策略让学生将终身学习养成一种良好的习惯。组建以教师为核心的课题研究组,健全学生的人格和素质发展,以扎实的理论知识、极强的实践动手能力为基础,使教学与科研完美结合。教师将科研项目分解为学生力所能及的小课题,以老师为指导,选择能力较强的学生作为课题负责人,组员充分发挥所学理论和技能,以科学合理的方法手段解决问题,培养学生的工程实践能力,让学生掌握一定的创新方法,进而更加激发学生的学习兴趣,增强学生的学习能力。同时,培养学生查阅资料、文献的能力,注重培养学生的知识积累和灵活运用意识,以学生的实际应用能力为主要目的,加强学生的知识应用、动手操作、团队协作、创新创造等能力的培养,以适应社会需求、企业需要的综合素质强的应用型人才。
四、结语
关键词遗传算法;TSP;交叉算子
1引言
遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。总的说来,遗传算法是按不依赖于问题本身的方式去求解问题。它的目标是搜索这个多维、高度非线性空间以找到具有最优适应值(即最小费用的)的点[1]。
基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择算子、交叉算子和变异算子作用于种群,最终可得到问题的最优解和近似最优解。
2遗传算法程序设计改进比较
2.1基本遗传算法对TSP问题解的影响
本文研究的遗传算法及改进算法的实现是以C++语言为基础,在Windows2000的版本上运行,其实现程序是在MicrosoftVisualStadio6.0上编写及运行调试的。
1)遗传算法的执行代码
m_Tsp.Initpop();//种群的初始化
for(inti=0;i<m_Tsp.ReturnPop();i++)
m_Tsp.calculatefitness(i);//计算各个个体的适应值
m_Tsp.statistics();//统计最优个体
while(entropy>decen||variance>decvar)//m_Tsp.m_gen<100)
{
//将新种群更迭为旧种群,并进行遗传操作
m_Tsp.alternate();//将新种群付给旧种群
m_Tsp.generation();//对旧种群进行遗传操作,产生新种群
m_Tsp.m_gen++;
m_Tsp.statistics();//对新产生的种群进行统计
}
2)简单的遗传算法与分支定界法对TSP问题求解结果的对比
遗传算法在解决NPC问题的领域内具有寻找最优解的能力。但随着城市个数的增加,已没有精确解,无法确定遗传算法求解的精度有多高。一般情况下,当迭代代数增大时,解的精度可能高,但是时间开销也会增大。因此可以通过改进遗传算法来提高搜索能力,提高解的精度。
2.2初始化时的启发信息对TSP问题解的影响
1)初始化启发信息
在上述实验算法的基础上,对每一个初始化的个体的每五个相邻城市用分支界定法寻找最优子路径,然后执行遗传算法。
2)遗传算法与含有启发信息的遗传算法求解结果的对比
当城市数增至20个时,用分支定界法已经不可能在可以接受的时间内得到精确的解了,只能通过近似算法获得其可接受的解。试验设计中算法的截止条件:固定迭代1000代。表2中的平均最优解为经过多次试验(10次以上)得到的最优解的平均值,最优解的出现时间为最优解出现的平均时间,交叉操作次数为最优解出现时交叉次数的平均值。
表220个城市的TSP问题求解结果数据
算法交叉操作
次数最优解
出现时间平均
最优解
简单遗传算法80244.479.4s1641.8
含初始化启发信息的GA79000.237.4s1398.9
从表2中可以看出,当初始种群时引入启发信息将提高遗传算法的寻优能力。同时缩短了遗传算法的寻优时间和问题的求解精度。
2.3交叉算子对TSP问题解的影响
1)循环贪心交叉算子的核心代码
for(i=1;i<m_Chrom;i++)
{
flag=0;
city=m_newpop[first].chrom[i-1];//确定当前城市
j=0;
while(flag==0&&j<4)
{
sign=adjcity[city][j];//adjcity数组的数据为当前城市按顺序排列的邻接城市
flag=judge(first,i,sign);//判断此邻接城市是否已经存在待形成的个体中
j++;
}
if(flag==0)//如果所有邻接城市皆在待扩展的个体中
{
while(flag==0)
{
sign=(int)rand()/(RAND_MAX/(m_Chrom-1));//随机选择一城市
flag=judge(first,i,sign);
}
}
if(flag==1)
m_newpop[first].chrom[i]=sign;
}
2)问题描述与结果比较
下面笔者用经典的测试遗传算法效率的OliverTSP问题来测试循环贪心交叉算子的解的精度和解效率。OliverTSP问题的30个城市位置坐标如表3所示[2]。
从表4、图1中可以看到,贪心交叉算子大大提高了遗传算法的寻优能力,同时也降低了交叉操作次数。在多次试验中,贪心交叉算子找到的最优解与目前记载的最佳数据的误差率为2.7%。而部分匹配交叉算子找到的最优解与目前记载的最佳数据的误差率高达7%。从而可以得到交叉算子对于遗传算法
2.4并行遗传算法消息传递实现的核心代码
1)主程序代码
//接收各个从程序的最优个体
for(i=0;i<slave;i++)
{
MPI_Recv(Rchrom[i],chrom,MPI_UNSIGNED,MPI_ANY_SOURCE,gen,MPI_COMM_WORLD,&status);
}
//计算接收各个从程序的最优个体的回路距离
for(i=0;i<slave;i++)
{
fitness[i]=0.0;
for(intj=0;j<chrom-1;j++)
fitness[i]=fitness[i]+distance[Rchrom[i][j]][Rchrom[i][j+1]];
fitness[i]=fitness[i]+distance[Rchrom[i][0]][Rchrom[i][chrom-1]];
}
//找到最优的个体并把它记录到文件里
for(i=0;i<slave;i++)
{
if(1/fitness[i]>min)
{
sign=i;
min=1/fitness[i];
}
}
fwrite(&gen,sizeof(int),1,out);
for(i=0;i<chrom;i++)
fwrite(&Rchrom[sign][i],sizeof(unsigned),1,out);
fwrite(&fitness[sign],sizeof(double),1,out);
//每九代向从程序发送一个最优个体
if(gen%9==0)
MPI_Bcast(Rchrom[sign],chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);
2)从程序代码
//将上一代的最优个体传回主程序
MPI_Send(Rchrom1,chrom,MPI_UNSIGNED,0,gen,MPI_COMM_WORLD);
//每九代接收一个最优个体并将其加入种群中替换掉最差个体
if(gen%9==0)
{
PI_Bcast(Rchrom2,chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);
Tsp.IndiAlternate(Rchrom2);
}
//进行下一代的计算
Tsp.Aternate();
Tsp.Generation();
Tsp.Statistics();
3)并行遗传算法的性能
笔者在MPI并行环境下,用C++语言实现了一个解决TSP问题的粗粒度模型的并行遗传算法。该程序采用的是主从式的MPI程序设计,通过从硬盘的文件中读取数据来设置染色体长度、种群的规模、交叉概率和变异概率等参数。试验环境为曙光TC1700机,测试的对象是OliverTSP问题的30个城市的TSP问题。
正如在测试串行遗传算法所提到的数据结果,并行遗传算法也没有达到目前所记录的最好解,但是它提高了算法的收敛性,并行遗传算法的收敛趋势如图2所示[4]。
图2遗传算法的收敛过程
3结束语
本文通过对基本遗传算法的不断改进,证明了添加启发信息、改进遗传算子和利用遗传算法固有的并行性都可以提高遗传算法的收敛性,其中对遗传算法交叉算子的改进可以大大提高遗传算法的寻优能力。
参考文献
[1]刘勇、康立山,陈毓屏著.非数值并行算法-遗传算法.北京:科学出版社1995.1
[2]IMOliverDJSmithandJRCHolland,Astudyofpermutationcrossoveroperatorsonthetravelingsalesman[C]//ProblemofthesecondInternationalConferenceonGeneticAlgorithmsandTheirApplication,Erlbaum1897:224-230
程序设计课程具有很强的实践性,在培养学生学会自己分析问题、使用计算机解决问题能力的同时提倡学生创新意识和创新能力的培养,主要采用的教学模式有项目教学法、案例分析法、任务驱动法等。
1.1《VB程序设计》课程中项目的设计
1.1.1章节项目
在整个教学过程当中,采用了“大项目、小案例、任务驱动不断”的教学模式,设计并选取与生活相联系的合理的能够调动学生学习积极性的项目。针对课程教学的最终目的,设计了一个比较完整的图书馆管理系统综合项目,但是这门课程知识点较多,要想完成这个综合项目,学生首先必须熟悉VB开发环境、掌握VB程序设计的基本概念和基础知识、各章节的知识点内容。为了配合整个课程最后综合项目的完成,在具体的教学中按照教学内容由易到难,针对教学中的重点和难点安排了13个章节项目,帮助学生更好地学习教材各章节中的知识点。项目一:由现实生活中的汉诺塔游戏、交换两个杯子中饮料的问题,引入一个利用VB程序解决两幅图片对换位置的具体案例,使学生熟悉VB集成开发环境以及各种窗口的使用、掌握常用控件对象的建立以及布局、利用VB开发简单应用程序的步骤、并初步引入程序设计思想,引导学生思考两数互换的问题,使学生通过观察、思考、总结得出两数互换的问题和两幅图片互换位置是一类问题。项目二:编写一程序,在屏幕上显示“欢迎来到VB世界!”,并输入自己的名字。使学生熟悉VB编程四部曲———界面设计、相关对象的属性设置、相关对象的代码编写、调试运行,尤其注意程序的调试过程。项目三:设计一个华氏温度与摄氏温度之间转换的程序。通过这个项目熟悉VB的数据类型及其运算,掌握VB的常用标准函数、变量以及常量的使用等语法知识点。项目四:利用输入函数输入一元二次方程的系数a、b、c,编写程序计算一元二次方程的两个实根或虚根,用输出语句输出结果。熟悉常用的输入输出控件、掌握Print方法、Inputbox()函数、Msgbox()函数和Msgbox过程的使用方法。项目五:设计一个账号和密码的输入检验程序。规范整理英文文章,即对输入的任意大小写的英文文章进行整理,规则是:所有句子开头应为大写字目(句子是以符号“?”、“.”、“!”作为结束符的),其他都是小写字母。使学生熟练掌握程序三大结构中的选择和循环结构。项目六:对一个班级的学生成绩进行输入统计,找出所有成绩中的最高分和最低分、全班成绩的平均分等。使学生掌握数组的使用。项目七:编写一个函数,在已知的字符串中找出最长的单词。假定已知字符串中只含有字符和空格,空格用来分隔不同的单词。通过该项目的学习使学生掌握过程程序的设计、实参、形参等基本概念。项目八:常用控件的使用。设计一个类似Win-dows记事本的应用程序,并完善其各项功能。通过该项目使学生掌握菜单、对话框和多重窗体程序设计。项目九:导入手机号码文件,编写一个手机选号程序,比如说选出手机尾号后四位相同的手机号码等。要求学生通过学习,掌握文件的相关操作,利用文件能够建立简单的应用程序。项目十:建立本班同学信息库,具体包括:学号、姓名、性别、出生日期、寝室电话、手机号码,并用数据控件及绑定控件实现对同学信息的浏览,并实现按姓名查询相关人员的基本信息。通过该项目掌握VB数据库的相关技术。项目十一:设计多文档应用程序,熟悉VB高级界面的设计。项目十二:用MMControl控件设计一个录音机,用API函数设计一个用户化的CD播放器。通过学习,使学生掌握VB多媒体程序设计。
1.1.2阶段项目
为了使整个学期的教学内容具有连贯性,糅合各章节零散的知识点,使教学实践具有可操作性,将整个学期的教学实践分成了三个阶段,每个阶段选用一个打破章节限制的阶段项目,使学生对所学知识内容有一个阶段性较完整的认识。这三个阶段依次是实践的开始阶段、实践的展开阶段、实践的结束阶段,分别对应阶段项目一、阶段项目二和阶段项目三。每个阶段中抓住关键教学环节,按照“大项目、小案例、任务驱动不断”的具体教学流程组织教学。阶段项目一:选用简单的项目,如蝴蝶飞舞、字幕滚动的项目。由于是初次接触计算机编程语言,所以对于非计算机专业的学生来说,这门课程的入门学习很关键,如果按照常规授课方法,依据书本上的章节内容安排依次讲授VB语言发展史、VB语言特点以及编程环境等内容的话,学生很难接受,往往是听得稀里糊涂,不知道学习VB究竟有什么实际作用,从而会产生畏难情绪,最终导致学生对VB知识学习失去兴趣和信心。为消除初学者的畏难情绪,第一阶段主要以激发学生的学习兴趣为主,让学生对VB有一个直观的认识,同时让学生在轻松的气氛中了解VB的编程环境和编程步骤,以及VB面向对象、事件驱动的编程机制。万事开头难,一旦学生对VB产生了兴趣,就有利于后续知识的学习。阶段项目二:难度稍微加大,选用计算器项目。通过本项目,一方面让学生理解控件数组的含义和设计使用方法,以及简单下拉菜单、常用数学函数的使用、过程函数的编写等,进一步加强学生对概念的理解。另一方面让学生注意可视化界面的设计,因为友好美观的人机交互界面,给人赏心悦目感觉的同时是软件的门面。阶段项目三:选用综合项目———学生信息管理系统。通过这个项目让学生真正了解掌握软件的开发过程。虽然这个项目比较难,但是有了前面知识的铺垫,会变得容易接受理解,也是对前面所学知识点的一次巩固和进一步更深入的理解,更是对前面知识的综合应用,让学生由浅入深、由易到难,逐步领会掌握编程的基本思想、基本方法和开发一个软件的完整步骤。三个阶段通过运用“大项目、小案例”,每个阶段让学生带着具体任务去学习,把枯燥的理论知识与生动形象的教学方式相结合,以清晰简明的表达方式深入浅出地向学生传授VB程序设计语言课程的知识,使学生在完成具体任务的实践过程中不断加深对面向对象程序设计思想和知识的理解。
1.2《VB程序设计》课程中的案例选取
有了已经准备好的各模块的项目,并展示给学生,学生有了兴趣后,就会想这些项目是怎么完成的,任务就落到各个模块项目里面具体的案例上了。由于VB程序设计授课内容多,授课时间紧张,按各知识模块划分选取项目后,在每个项目里面,按项目选取具体案例或是进行设计各项目的各功能模块,各功能模块实际就是一个个案例。在教学过程中应循序渐进,可以在原有案例的基础上逐步改变或增加一些条件,将应用进行引申,启发学生思维,让学生对知识点的理解更透彻,掌握各知识点之间的联系,提高学生发现问题、解决问题的能力,并在教学中兼顾学生生活经验与知识趣味性,达到事半功倍的教学效果。
1.3任务设计
围绕每一知识模块的教学内容、教学知识点,设计相关的项目,并在各个项目中采用了系列案例以及完成各功能模块的案例,为了让学生更加熟练、更好地掌握教学内容,在各知识模块的学习中设置学习情景,给学生留有感兴趣的任务,让学生去完成。同时根据各知识模块提出了单元任务,单元任务设置两个层次———基本任务和提高任务。由于学生自身水平有差异,对于基础好、学有余力的学生,要求他们不但要完成基本任务,还要完成提高任务;对于大多数学生,只要求他们完成基本任务。由于时间的限制,可以让学生在课余时间分析任务,在上机实践课以及课余时间去完成任务,最后做任务的总结。有了兴趣和任务的驱使,学生为了完成任务,就会利用各种方式和手段积极主动地去解决问题,他们会通过查阅相关书本、浏览网络资源、同学之间互相协作等方式解决问题,充分调动了学生的主观能动性,在完成任务的过程中学生分析问题、解决问题、实际开发应用程序的能力得到了锻炼,为学生知识的创新奠定良好的基础,同时知识面也更广、更大了。学生不会再觉得教学只是教师一个人的“独角戏”,而是教师和学生的“二人转”。在相互的配合以及友好和谐的师生关系中,教学顺利完成的同时学生个人的知识库也得到了构建。
2实施方法
关键词:VB实例教学激发性主动性
作为语言程序设计领域的前沿软件,VB的发展历史已经很久,相关的技术也比较成熟,由于其简单易学、功能强大、应用广泛,因此在很多职业院校都开设了这门课程,我校也在计算机信息与管理、计算机网络技术以及电子商务等相关专业开设了这门课程。正是由于社会办学力量的推动和“程序设计”职业的热衷,现在会VB的人越来越多了,但是我们也应该看到,很多人都局限在“会VB”,而不能灵活的运用,不能用VB完成相应的程序设计,更谈不上从事专业编程工作了。在这样的情况下,作为高职教师的我们,在教学中怎样才能够吸引同学们努力主动的学习好VB,这是我们值得探讨的问题。虽然我们学生的起点相对来说较低,但以后所从事的工作大多数也是以程序设计操作员为主的,因此笔者认为我们的主要教学目标,不仅是使学生熟悉VB的基本概念,而且还要能够熟练的掌握一些程序设计的相关技巧和方法,有一定的程序编写思维能力,并且在今后的教学中同学们能够积极主动的探索和学习。为了达到这个目的,笔者认为以下几个方面是我们在教学中值得开展的:
一、注重实例教学
对于一项操作性很强的工作,我们是不可以只讲理论的,正如当我们学习游泳的时候,如果教练只是告诉我们每个动作的名称但不告诉我们这些动作怎么完成,我们是不可能学会游泳的。那么我们在学习VB的过程中也必须结合大量的实例演示,让同学们真正体会到VB的可视化设计和它的实用性。
在最初接触这门课程的时候,我们必须先要详细的介绍各个控件,只有知道每个控件各自的作用以及使用方法以后我们才可以在VB中创造我们自己的程序。在控件介绍和程序设计中我们必须通过实例的演示来让学生在模仿中学会各个控件的使用和程序的编写。特别是在程序的编写方面,我们一定要有相关的实例来让学生在感性上得到认识。比如在介绍IF……ELSE选择控制语句的时候,如果我们只是讲解单纯的语句,学生听起来觉得比较枯燥,但笔者首先给同学们演示一个通过用户名和密码的登录界面,通过选择控制语句来确定我们在文本框中输入的条件是否为真做出判断,如果为真就登录到我们所需要的另一个界面,否则弹出一个提示信息框。在演示的过程中,同学们都表现出强烈的好奇心和学习的欲望,思维表现得非常活跃,因为他们觉得这些知识非常有用。在这个时候我们抓住这一特点,首先,讲解实现这一程序的基本思路,提出实现思路所需要解决的问题。其次,在程序中讲解新语句的使用方法,总结新语句的使用方法和注意事项。这样的教学使学生很快了解了程序设计的整个过程,并有豁然开朗的感觉,从而产生浓厚的学习兴趣。虽然这是一个简单的编程应用,整个创作过程只用到了简单的选择控制语句,但通过此例的学习学生学会了选择控制语句的使用以及如何设置选择控制语句,同时也激发了同学们学习程序设计的兴趣,从而创作出自己的程序。
目前市面上有很多关于VB的实例教材及各种参考书,但是都比较散而且内容也不是很详细,所以在讲解的时候笔者认为必须对实例进行慎重的选取和必要的修改,力求做到以下几点:
1、程序结构严谨化
笔者所收集的程序除了强调程序的可靠性以外,还要特别强调程序的结构性,即使是一个简单的实例,也需要做到程序结构的严谨化,使之符合大众的思维,但也要突出自己的特点。比如在讲FOR……NEXT等循环语句的时候,一般的都是利用从1累加到另一个固定的数值,来完成我们的循环讲解,这样的语句由于方法是完全一样的,所以最后的效果也没有什么吸引力可说。因此,笔者采用了另外一种方式,结合利用文本框输入的方式,即在两个文本框中可以输入任何两个数,使之从小的数值累加到另一个较大的数值,这样程序的效果也就更具结构严谨的魅力,同学们的感受也就会完全不同。
2、步骤详细化
因为同学们对新知识的接受,特别象程序设计这样的知识结构,还是需要一定的过程,因此为了让学生能够顺利的完成实例,从而在实践中提高自己的能力,笔者认为对每一个实例的操作步骤都要详细的板书出来,上机课或是在课余时间学生只要按照程序的操作步骤去做,就可以得到最终的效果,只有这样同学们才能掌握程序设计的基本思想和相关步骤。
3、方法常规化
在讲解的过程中,力求采用最简单、最容易的方法完成每一个实例,尽量采用常规化的语句,避开一些不容易理解的概念、方法。比如,在利用文件操作对数据录入以及把录入的所有数据输出时,我们可以避开利用Type语句定义自己的数据类型的使用,因为采用Type语句定义,有多少个字段,就会产生多少个相关的成员,在这种情况下同学们就很难想得到这个成员代表的是什么,它的作用是什么,这样就把程序复杂化了,其实我们完全可以采用简单的文本框来进行输入,然后用Input函数输出就轻松完成了。
二、注重培养学生的实际操作能力
还是以游泳为例,不管我们怎么看别人游泳,但自己却不下水实践,我们是永远都学不会游泳的,那么我们在学习VB语言程序设计的过程中也必须不断的练习、实践。
笔者曾担任了计算机网络技术两个班的该门课程的教学,为每周四学时,其中两学时是笔者的理论讲解课,两学时是上机实践操作课。由于学生的思想还不够成熟,自我控制能力相对来说还是比较差,因此自觉性还不够好,为了监督他们很好的学习、认真的实践,笔者每次课都留一次作业,第一次就是完全按照笔者的课堂实例上机操作,以加强对本节课课程内容的理解并熟练这些操作技巧,这项作业是必须要上交的,并作为平时成绩登记。因为这是这门课程中最基本的知识要点和教学要求,虽然学生不可能每个人都对这门课程有浓厚的兴趣,不可能以后都有可能去从事专业的程序设计工作,但是作为计算机专业毕业的学生,笔者希望他们不管以后从事什么样的职业,对于一些基本的程序设计思想以及常用的计算机软件操作,至少都能够体现出来。
在最后的综合实训、实践中,笔者结合同学们所学的知识并引进一些课外的知识实例来弥补课本上没有的相关内容。比如,我们利用VB做前台界面的设计,尽量用到所学过的所有控件进行布局、设置,把它们结合起来使用,而用小型的Access数据库做后台数据管理来做一个学生成绩管理系统,它具备一般的常用功能,即成绩的添加、查询、修改、删除,用户的管理等,虽然这个管理系统程序的设计比较简单,但通过这样一个小型的综合实例,就更加让同学们了解了VB语言程序设计的功能及特点。这是我们VB程序设计教学课程中不可缺少的一个重要环节,只有通过这样的一个综合实例,才能把同学们零散学到的知识全部的串联起来,让他们感觉到自己所学的知识终于有了一定的成果,他们自己也会感觉很有成就感,也会产生一种利用计算机解决实际问题的强烈愿望,在今后的学习中才能更加有信心和目标。
以上的两个方面是笔者认为的主要教学方法。采用实例教学的一个重要目的实际上就是为了使课堂生动,提高学生的积极性、主动性。虽
然是实例教学,有很多有趣的程序及相关的小动画,但是这样的有趣如果久了,也并不能完全抓住学生的心,因为这些过程进行的场所都是在课堂,课堂生活不可避免的具有一定的单调性,这只是一个方面。另一方面是,笔者要求学生在完成自由独立创作这一作业以后要相互交流经验,这种交流我们一般都是在自己班内部进行的,次数多了大家就会觉得似乎还需要加入一些更新的内容,希望与其他班的同学一起探讨学习。为了弥补课堂学习和班内交流的不足,笔者有时间就会将两个班的学生聚集在一起,首先每个班选几个优秀的作品演示给大家看,并向大家介绍创作的技巧和存在的问题,然后大家一起讨论。最后笔者会结合最近的学习内容对设计进行一个总的评说。通过这些活动既可以提高学生的学习兴趣,提高他们的专业技能。我们在教学中,实例的运用是提高教学效果的保障,在教学中,我们不防在讲解本次课的内容之前,先演示本次课需要用到的实例,这样既可以调动学生学习的积极性和主动性,也激发了他们的好奇性,这样也就抓住了同学们“人在教室,心也在教室”。
总之,教学有法,教无定法,只要教学得法。程序设计教学的主要目标是为了使同学们了解编程的基本思想,培养分析问题、解决问题的基本能力。围绕着这个目标,在保证同学们学习积极性的前提下,按照他们的认知规律组织教学,一切有效的教学方法都可以在我们的教学过程中加以运用,进而使综合素质得到整体提高,这是VB程序设计课程教学的最终目标。
参考文献
[1]刘炳文、杨明福、陈定中.全国计算机二级教程VB语言程序设计[M]高等教育出版社.20__.4