前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机程序设计论文范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
力学、热学课程是师范院校物理教育专业的专业基础课程,在大学一年级开设,而紧跟力学、热学课程而开设的计算机程序设计课程是培养学生计算机程序设计能力的重要课程。物理教育专业学生在计算机程序设计课程学习中,随着课程的深入,递归循环、指针等难度较大内容出现,一部分学生感觉较难理解,更难自己编写计算机程序实现某些略为复杂的算法,容易产生计算机程序设计课程学习无从与物理专业课相联系、枯燥无味的感觉,降低了计算机程序设计课程的积极性、主动性。然而大学物理与与计算机的关系密切,物理教育专业本科毕业论文、物理学科硕士论文,都涉及大量的计算机编程,因为物理学复杂的非线性问题已经无法找到理论精确解,只能利用计算机进行计算、求解、分析、预测,另外计算机仿真实验提供了验证物理学理论、探测真实物理实验方案的可行性、验证物理数据的一种实验成本低廉、快捷的方法[1-3],因此,物理教育专业学生计算机程序设计能力的强弱,直接影响到其本科毕业论文研究以及将来可能的硕士论文研究。现有的教学研究论文中,未见定量分析大学物理基础课程成绩对计算机程序设计课程成绩的影响[4-6]。因此,选取论文作者所授课的广西师范大学物理教育专业4届5个班本科生的力学与热学课程期考成绩、计算机程序设计课程的段考与期考成绩,利用相关系数法定量分析力学、热学课程成绩对计算机程序设计课程成绩的影响。
2实验对象与分析方法
实验对论文作者所授课的广西师范大学物理教育专业4届5个班本科生,其中1997级81人、1999级78人、2000级65人、2001级1班59人、2001级2班55人,选取大学一年级的力学、热学的期考成绩,力热课程开设之后的计算机程序设计课程的段考、期考成绩。利用相关系数法反映计算机程序设计课程成绩与力学、热学课程成绩之间线性关系的密切程度[7,8]。
3实验结果
分析所选取的计算机程序设计课程成绩比例分布,考虑优秀、不及格两端的学生人数相对较少,进行相关分析的误差较大,而良好、中等、及格分数段的学生人数较多,因此将分数S分为优良分数段(S≥80)、中等分数段(70≤S<80)、及格与不及格分数段(S<70)三段,三段中的学生人数相差不大,分别计算计算机程序设计课程成绩全部、优良分数段、中等分数段、及格与不及格分数段与力学、热学课程相对应成绩的相关系数,结果见表1、表2。可以看出,表中所有相关系数均为正值,除个别外主要分布在0.40~0.80之间,绝大部分相关系数均大于0.45,大于0.8的相关系数很少,没有大于0.9的相关系数,说明力学、热学课程成绩对计算机程序设计课程成绩有一定的影响,但影响并不是特别显著,有一定的正相关性,但相关性并不是特别高,计算机程序设计课程成绩还受其它因素的综合影响。
计算机程序设计课程成绩在优良分数段、及格与不及格分数段与力学、热学课程相对应成绩的相关系数几乎都低于全部分数段的相关系数,甚至出现相关系数为0.20~0.39,极低无显著性意义的现象,而中等分数段的相关系数几乎都略大于全部分数段的相关系数,说明中等分数段的计算机程序设计课程成绩受力学、热学课程相对应成绩的影响要比优良分数段、及格与不及格分数段显著一些,即有一些计算机程序设计课程成绩优良的学生未必对应力学、热学课程成绩优良,也即有一些计算机程序设计课程成绩较差的学生也未必对应力学、热学课程成绩较差。力学、热学两门课程成绩各自与计算机程序设计课程成绩的相关系数整体差异不大,影响的显著性相差不大。
关键词:计算机语言;逻辑性;抽象性;过程;对象
中图分类号:TP311.1 文献标识码:A文章编号:1007-9599 (2010) 05-0000-01
Teaching Reform in Computer Program Curriculum
Wu Wenyun,Deng Yaming
(Hunan Biological and Electromechanical Polytechnic,Changsha410127)
Abstract:How to do a good job teaching computer program is the teachers embarrassing question.In this paper the author many years teaching experience,teaching on the characteristics of computer programs, teaching problems,reform needs of teaching and teaching methods to make plain the reform of areas for reference.
Keywords:Computer language;Logic;Abstract;Process;Object
一、计算机程序课程教学的特点
计算机语言具有很强的理论性、抽象性,学生学习起来难度大,很难激起他们的学习积极性;并且计算机语言发展速度非常快,种类繁多,并且都有各自的适用范围。基于各个学校的实际情况,课堂教学内容也远远滞后于计算机发展速度,只能将那些具有代表性的语言(面向过程程序设计语言如c语言、面向对象程序设计语言如C++等)引入到教学课堂。因此,搞好计算机程序课程教学难度很大,如何上好计算机语言课程也是大家都在探求的问题。
二、目前计算机程序课程教学中存在的问题
(一)教学方法存在有问题
在计算机程序的教学过程中,传统的教法是按照教材编排的顺序讲授,即先介绍一条条语句及语言的语法规则,然后做适当的练习和实训。这种传统的教学方法存在以下几方面的问题:
1.堆积的语法规则和语句学生很难在短时间内消化;
2.学生不能明确课程的学习目标和方向;
3.按步就班的教学顺序会导致学生的厌学情绪;
4.达不到预期的教学效果。
(二)计算机程序课程教学中存在的客观问题
实际中的语言程序课程教学又存在几大棘手问题:
1.众多的语言规则让初学者望而生畏;
2.灵活多变的使用方法又令人捉摸不透;
3.课堂讲授时间非常短暂,所学知识得不到及时巩固;
4.学生不好的学习态度:学习思维、行为懒惰。
基于以上存在的问题,计算机程序课程教学改革势在必行。我们在教学中应该有的放矢,不断探索新的教学理念和方法。
三、教学改革方法
(一)突破传统的思维方法,根据市场人才培养需求确定课程目标体系
1.认知目标:通过项目实践,掌握程序、程序设计的基本概念、程序设计思路与方法;
2.能力目标:小组合作或独立操作,简洁明快,易于识别,寓意准确,内涵丰富,特征明显,编写精细的应用程序;
3.情感态度目标:培养学生的学习情趣,通过观察,实践,感受成就感,设计感,空间感,体验程序设计的乐趣。
(二)精心选取教学内容
课程教学内容可以模拟一个软件公司的设计部门,以一个普通的设计人员在工作中所遇到的实际问题为主线,将客户的要求转化为实际的任务,要求学生解决。整个教学过程共模拟若干个工作场景,设计教学过程于工作(生产)过程中的职场环境,将课程教学内容和要求都融入到这些案例中。
(三)认真设计并精心组织实施教学过程
本课程基于案例模拟真实公司环境的情景下,以项目案例驱动学生动手操作,进而对项目中的知识点进行总结。具体内容包括:
1.实训项目:可根据课程教学需要来确定
2.实训目标:掌握模块结构设计、面向对象程序设计及程序设计风格,掌握程序基本结构设计及实现方法。
3.基本做法
a参与人员:全体学生(分组)
b实训地点:教室+专业机房
c实训途径:设计+上机操作
4.实施步骤
策划:情景引出―明确任务―教师引导分析任务,设计讨论具体的解决方案。(由于学生初学,对代码设计的掌握还没有达到游刃有余的状态,所以前期以教师引导,帮助设计解决方案为主。后期可减少策划时间,将实施时间延长,让学生自由发挥)
实施:事前要求学生分组设计模块流程图,设计实施方案,动手设计代码,完成项目,巩固知识点。(巡查学生的掌握程度,对实施过程中出现的问题进行辅导)
总结:小组互评设计的优劣
a紧扣实训目标,总结达标程度。
b思考与互动:你学会了这个实训项目,对你的毕业论文/设计,职业资格证书考试有什么帮助?
(5)课程评价
a教学效果考试方式
平时成绩:考察学生的学习态度(20%)
学生自评:紧扣实训目标,总结项目达标程度(20%)
老师评价:理论考试和实训评价(60%)
b教学效果评价:
i组织学生参加软件水平考试的合格率
ii毕业生在相关行业就业情况:毕业生就业信息反馈获取数据
四、教学改革过程中应该注意的问题
(一)注重学生计算机思维的培养
在讲课中,应集中精力对章节的知识结构进行详细阐述、对所要解决的实际问题进行深入剖析,不应花太多的时间放在对语句语法的过多讲解。当遇到实际编程时,需积极引导学生把“要想干什么”的问题,直接转化为“要解决什么”的问题。当问题确定以后,必须选择正确的算法。当然,计算机编程中的算法和数学中的算法存在很大区别,需要教师对学生们的计算机思维进行长期而有针对性的训练和培养。
(二)启发式教学激发学习主动性
计算机语言教学的关键是培养学生的编程思维,我们可以大胆采用启发式教学,引导学生尽快明确编程思路,掌握基本编程方法。在课堂上,可以尝试让学生自己去编程实现,教师只扮演“打字员”的角色,直接把内容输入到语言环境中,一边输入一边和大家交流,如果实在有困难,教师停下来再加以详细分析,直到程序编译、运行和显示出正确结果。启发式教学很容易让学生掌握程序设计的完整过程,也可以大大提高我们授课的效率。
(三)抓住重点、化解难点
讲授重点内容时,应放慢速度、加重语气,从而吸引学生的注意力。当遇到难点时,善于化解,把问题逐渐细化,所有小问题解决了,难点自然就解决了。
(四)强化实践
计算机语言的实践就是上机编程,是培养学生综合运用相关知识解决问题的重要途径,也是我们了解教学反馈信息的直接渠道。只有亲自动手、亲自实践,才能真正体会到语言编程的乐趣,才能发现自己的智慧闪光点。通过上机练习也可以进一步加深对理论知识的掌握,也将有利于培养学生的创造思维、独立分析问题和解决问题的能力以及培养学生实际编程的能力。需要强调一点,实验内容安排上应由浅入深,开始时给出引导性实例,后期提出问题,让学生分组自主发挥,教师抽空进行总结讲解,这样更能激发他们自主学习的主动性和积极性。
(五)搞好总结
课堂教学以后,授课教师特别年青教师多写写教学心得体会,多回忆回忆课堂情况,多和授课对象交流反馈,成功的有哪些,不足的有哪些,以后就能做到有的放矢,扬长避短,更好更快地提高我们教学能力和业务素质。
总之,要教好计算机程序课程,不能按照单一的“黑板―书本”教学模式,应大胆进行课程教学改革,采用丰富多彩、满足学生需要的教学模式,精心设计并认真把握各个教学环节。只有如此,教学质量才会有本质的提升。
参考文献:
[1]吴振峰.信息技术基础,北京理工大学出版社,2001,9
[2]彭邵东.信息技术教育研究,湖南师范大学出版社,2002,6
[3]龙佑喜.C语言程序设计教程,湖南人民出版社,2004,9
〔论文摘要计算机程序设计课程是中职学校计算机专业的主要课程之一,曾受到各中职学校的高度重视。但程序设计课程教学设计、教学目标及教学方法远远跟不上形势,怎样调动中职学生对程序设计语言的学习兴趣与提高他们的学习效率成为中职计算机教师们的共同关注的焦点。
程序设计课程作为计算机专业的一门基础课程,它有利于提高学生的思维能力,对学生深人学习计算机专业知识有很大的帮助。其目的就是通过学习程序设计语言的基本思想、语法知识和编程方法,提高学生的程序设计能力、分析解决实际问题的能力,并培养形成严密的逻辑思维能力。那么如何根据社会经济发展变化,对程序设计语言课程的教学内容、教学方法、考核方式进行相应的改革,实现培养高等技术应用型和高技能型计算机人才目标,已经成为广大中职教师普遍关注和重点研究的课题。
1程序设计语言教学中存在的问题
1.1教学课时少
目前我校计算机专业的学制2+1的模式,学校开设的程序设计语言课程的课时(包括理论课时和实践课时)较少,这就导致实际教学中存在理论课时和实践课时不够的情况,学生只能掌握最基础的程序设计知识,理解书本上现有的一些设计实例,而不能用该程序设计语言进行实际问题的处理。
1.2学生基础参差不齐,学习程序设计的信心、兴趣不足
因为学习程序设计需要较强的逻辑思维能力和较扎实的数学功底,而中职学校的学生普遍数学基础较薄弱,导致在学习程序设计时显得力不从心。由于缺乏对计算机本身解题的认识和了解,有些基础较差的学生还对计算机程序产生一种莫名其妙的神秘感和畏惧感,人为的给自己学习程序设计语言设置了一道门槛。学生对程序设计课程的学习兴趣不高,课堂教学中反常行为较多,如卜课睡觉、讲话、玩手机、不配合老师、不交作业等。学生普遍反映难学,提不起学习兴趣,感觉学不到知识或学的知识没用。
1.3学校对程序课程的重视程度不高
计算机程序设计课程注重对学生的思维能力的训练,这与图像处理,动画设计等培养学生动手能力的课程不同,不能立竿见影的看到学生的学习成果。这就导致一些领导对这门课程不够重视,从而使部分教师对这类课程的教学参与兴趣不浓厚,甚至有些学校以取消了程序设计语言的课程设置。
1.4教学方法落后
中职程序设计语言课程一般采用的教学方法是教师课上讲授加学生实验的形式,学生在上机实验时仅仅是对书本上现有的一些实例进行编辑调试,一旦调试成功就完成任务。这种教学方法实际上只是让学生掌握了一些程序设计的语法知识和调试技巧,而达不到培养学生利用该程序设计语言从一个实际问题人手分析问题、解决问题的能力。
1.5考核方式较简单不能全面检验学生的学习效果
目前的考试方式以试卷为主,无法全面检验学生的学习效果,对学生的实践能力考查无法体现学生的真正学习效果。
2间题分析
是什么原因造成了以上这些问题那?随着高中教育不断普及,中职生源及综合素质急剧下降。普遍特点是他们基础薄弱,尤其数学和英语,这是学好程序设计的最大障碍。教材不能适应中职教学的要求。现今中职程序设计语言教材存在的普遍问题是实践性教学和实训内容不足,没有体现教材的实用性和职业性,不能保证对学生实践能力的培养,不能体现技术应用型人才的培养要求,缺少中职教育特色。面对这些问题,我们不能望而却步,一味地去埋怨是起不到效果的,要真正想解决问题,最好就要去不断地摸索,寻找解决问题的突破点,探索适合学生发展的教学方法和教学内容,以充分调动他们的学生积极性和主观能动性。
3解决间题的关键在于教育方法的创新
古人云:“知之者不如好之者,好之者不如乐之者。”兴趣对学生的学习有着神奇的内驱动作用,能变无效为有效,化低效为高效。充分激发学生的学习兴趣是当前开展素质教育,优化课堂教学,减负提质的最根本、最有效的途径之一。兴趣的产生来源于兴趣源,兴趣源必须由教师来创造,并贯穿于教师授课全过程的各个环节中。针对程序设计这门课程的特点教师可采用以下一些方法提高学生的对本课程的兴趣。
(1)基于问题的教学。提出问题,以学生独立完成为主,教师只提供必要的辅导,培养学生探索问题和解决问题的能力,更有利于创新能力的培养。
(2)“项目驱动”教学。在理论教学中采用“项目驱动”教学法,整个课程教学围绕一个“工程项目”进行,通过逐步拓展的实训项目和设计,将每一阶段的学习进行小结性的贯穿与能力提高,将知识点都溶化到一个个实训项目的程序编写中。
(3)讨论教学法。在教学过程中,充分发挥学生的积极性与主动性是非常重要的一环。程序设计有一个最大的特点,一题多解。针对这个特点,教师在习题课的教学中,可以采用讨论式教学方法。在此过程中,学生们通过提问、答辩、论证、反驳、判断等激烈的讨论,互相启发、相互协作去分析问题、发现问题、解决问题,总结经验。不仅可以让学生获得课外的知识,同时也利于充分挖掘学生的学习潜力。
(4)归纳教学法编程语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。编程语言的定义、概念、语法规则有许多相似的地方,例如:for ……to……与do……w hile等命令,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。
(5)分组教学法。注重培养团队精神,以“竞”求进上机编程实践是学好程序设计语言的关键。但上机实践过程中如果“各自为战”,或在教师的统一“指挥”下以完成不同题型的任务为实践内容,对于中职学生而言很容易失去上机兴趣,也很难达到上机实践之目的。因此,不妨针对中职学生的特点,适当转变上机实践的形式。以组建团队的形式上机实践,事前分配给每个学习小组不同的实践任务。组长负责本组学生利用课余时间去思考、收集资料,上机时各组先分别完成相应任务,然后相互演示成果,评判优劣,最后再进行任务交换,讨论编程心得。在此过程中教师主要充当协调者的角色,对确有疑难的地方可适当加以指导,主要过程可由学生自行解决,则学习能力强的学生自然会成为教师的助手。
(6)案例分析教学。对程序设计语言的教学,不仅仅是教程序设计语言知识,更重要的是让学生学会如何利用程序设计语言知识去编程,去应用于实际需求中。采用案例教学,可以实现课堂内外的有机结合,实现理论与实践相结合。结合学生自学,让学生带着疑问进行案例分析,教师在分析过程中穿插讲授专业理论知识,学生在分析案例的时候,一方面增长知识视野,丰富分析应用技巧;另一方面,在探索思考如何把知识运用于实践,从而及时有效地促进学生对知识的消化吸收,真正达到理论与实践相结合的目的。当然在案例的选择上应结合学生的专业实践,让学生能学以致用。
【关键词】程序设计;以赛促教;启发式教学;趣味教学
一、课程定位
程序设计基础这门课程是在学院第一个学期开设,共有56个学时,这门课是学校计算机应用技术专业的一门基础课程。学院对此专业的培养方案的初次岗位定位中有软件开发技术员岗位。根据计算机程序员岗位的职业要求,具体工作流程总共分为五部分:需求分析、系统设计、程序设计、程序调试、交付与维护。不难看出程序设计在其中占有至关重要的地位。程序设计基础课正是来源于此,该门课程是培养程序设计员基本程序设计能力的一门基础课程,在计算机应用技术专业人才培养方案的课程体系中属于专业技术课程中的基础课。
《程序设计基础》是直接面向程序员职业岗位的一门课程,课程的学习目的是使学生掌握结构化程序设计的基本方法,培养程序设计的思维能力,为后续课程《C#程序设计》、《数据结构》、《WEB程序设计》、《面向对象程序设计》等课程的学习奠定基础。
二、课程设计
为了符合学院提出的“走进校门的是大学生,培养出来的是职业人”的育人理念,和计算机应用技术专业要培养具有优势职业品质与技能,面向现代服务业培养管理、服务第一线岗位的高素质技能性职业人的专业目标,《程序设计基础》的课程设计思路是以培养程序设计能力为目标,以实战项目为载体,实现教、学、做一体化。
在教学过程中以案例为先导,学生完成演练为手段。这门课程要达到的品质目标是以能力与知识相结合、以培养全面发展的具有优势品质与技能的高素质应用性职业人为培养目标,培养学生严谨细致、求真务实的工作作风和良好的团队协作精神。技能目标是掌握结构化、模块化程序设计方法与技能、培养自主学习独立思考能力。知识目标是学会C语言的基本语法,掌握基本的算法、能够编写基本的C语言程序。
课程内容的选取依据计算机程序员岗位需求、典型工作任务、行业技术动态发展趋势、高职学生特点,分为理论教学和实践教学,课时分配是1比1,其中实践教学每一个模块都以项目案例为导向,案例大多选自杭电的ACM平台,同时也配备了为了激发学生学习兴趣老师自己创作的案例,比如剪刀石头布游戏,猜数字游戏等。
高职学生属于高考最后批次,文化基础知识相当欠缺,体现在C语言上,英语出错提示看不懂,甚至有学生反映在C语言中的英语语句关键词都不认识,在数学上同样存在基础相当差的问题,成为学习C语言的极大障碍。学生从小接触计算机就在Windows下运行,习惯了用鼠标,而C语言运行在用键盘的命令行界面上,一个字都不能输错,对初学者有一定难度。这门课程的重点是:三大基本语句程序的设计、数组的定义与引用、函数的定义与参数传递;课程的难点:选择与循环的嵌套、函数嵌套与递归调用、指针等。针对学院高职学生的特点,对于重难点的解决方法是从提高学生学习主动性方面突破首先,要激发学生的兴趣,包括两方面的内容:第一兴趣教学,尽量选取学生感兴趣的题目或项目进行教学,如猜数游戏,石头剪刀布游戏等。第二实用教学,解决学生学了有什么用的困惑,尽量选取贴近生活实际的题目,如百元钱兑换方案、谁是骗子等,让学生感受到学后能解决问题的小小成就感。
三、教学实施
教学实施流程分为三个阶段:准备阶段,实施阶段和总结阶段。在准备阶段中,根据课程标准,主讲教师组织任课教师讨论,选择典型的工作任务,制定教学计划。实施阶段以学生为主体,以教师为主导,以职业能力培养为中心,融‘教、学、做’为一体教学。总结阶段主讲教师组织任课教师讨论,提出存在问题,找出解决方案。
针对课程特点,灵活使用“启发式教学”、“趣味教学”“任务驱动”等方法,突出“理论教学构筑学生的知识结构,实践教学构筑学生的职业技能结构”的教学原则。课程教学全面推行“学中练,练中学”教学思路。
接下来以循环结构的第一次课为例来阐述一下教学流程:学生对循环结构没有概念,对while和dowhile语句也不感兴趣,为了提高他们的学习积极性,首先使用五分钟的时间情境导入,选取杭电ACM平台上面的三个案例:猜数字游戏,百钱百鸡问题,谁是骗子,在学生对将要学的知识有了一定的期待后,用十五分钟的时间讲解相关的语法知识,接下来通过解决案例的方式教师给学生示范编程,并且给学生留出一定的时间自己动手实现,最后十分钟进行总结反思。
这门课程的教学评价由三部分组成:其中平时成绩和课内实验成绩分别占20%,期末笔试成绩占60%。
四、教学条件
程序设计课程有一支不论是年龄结构还是职称结构都比较合理的教学团队,每个老师都有自己的优势,有的具有多年的企业编程经验,有的主持多项相关的省级课题,有的对指导学生程序竞赛有丰富的经验。此外课程聘请杭电ACM集训队教练刘老师担任学校ACM集训队特聘教练,刘老师也参与系相关的实习实训活动。
该门课程的教学资源也很丰富,主要包含以下几个部分:教学大纲、授课计划、教材、实验实训项目指导书、多媒体教学课件、网上C语言精品课程、试题库、图书资料等。教材选用谭浩强教授编著的《C语言程序设计》,系周岳松老师自主研发了客观题在线测试软件,该软件分为教师版和学生版,教师版可用于平时随堂测试,学生版可用于学生自主学习,网络资源主要有C语言网等。学院也提供了相应的硬件支持,设有软件开发实训室、大学生程序竞赛实训室等多个实训室。
五、教学效果
校内督导组和校外专家都对《程序设计基础》这门课程给予了充分的肯定,专家评语是以项目为导向,以任务驱动,符合高职教育教学特点,以提高学生的编程能力为宗旨,能较好符合企业对软件人才的需求。
迄今为止,该专业共有一千七百余人修了这门课程,取得了丰硕的成果。我校代表队参加了十届浙江省大学程序设计竞赛,共获32块奖牌,尤其去年今年连续两次获得专科组的特等奖,同时四次获得优秀组织奖。除了ACM竞赛,在蓝桥杯比赛中我系学生也取得了不错的成绩。
通过这门课的学习,锻炼了学生的逻辑思维能力和基本程序设计能力,为以后的工作和创业打下了坚实的基础,2008级计应学生林清瑞,曾经参加ACM竞赛并获得银奖,自主创业,建立了杭州安豆信息技术有限公司,从事手机游戏开发。2003级计应学生黄道笑,自主创立了杭州五角星科技有限公司,从事网站开发。2010年公司销售额超过了200万;2011年被评为杭州市高新技术企业;2012年被评为杭州市雏鹰计划企业。
六、课程特色
这门课程特色:以赛促教,赛教结合。把ACM竞赛平台里面的题目融入到平时的教学过程中,也会把平时表现好的学生充实到竞赛集训队伍里面;教学结合,学以致用,教师指导,学生自主研发一些小游戏,比如石头剪刀布的游戏。
参考文献:
关键词:VBA;计算机基础教学;教学策略
中图分类号:TP311.1 文献标识码:B 论文编号:1674-2117(2015)01-0110-02
VBA程序设计与其他程序设计方法相比较,最大的不同有两点:第一,VBA程序的开发环境非常普及,学生个人使用的电脑、学校机房、实习时的办公电脑基本上都安装有Windows操作系统和Office办公软件;第二,VBA程序设计方法比较简单,在语法上零基础的学生也可以通过录制宏的特殊方式来实现程序设计。
笔者在高校担任《VBA程序设计》课程的授课教师,在课程教学内容的选择、教学实验的设计等方面做了大量的调研和尝试,在实践过程中总结出了一些针对本门课程的教学策略。
选取由浅入深的理论教学
笔者所教授的《VBA程序设计》是面向全校学生的选修课,对选课学生要求的是先学习过《计算机信息技术基础》课程。上课的学生大部分都有较好的办公软件使用基础,但是没有程序设计类课程的学习经验。基于以上的学生基础知识分析,笔者在理论教学中选择了由浅入深的教学内容,以VBA语法为主,少量篇幅介绍课程中涉及的办公软件使用方法。
本门课程中讲授VBA语法的目的是让学生学会看懂录制宏形成的代码,并且能够根据需要进一步地修改代码。基于这样的教学目标,笔者把理论教学分为六个部分,分别是数据类型与运算、选择语句和判断语句、Excel常用对象与事件、界面设计、代码调试等。每部分都选取和实验相关的内容详细讲解,学生如果想了解更深入的相关课程内容,则可以通过自学教材完成。例如,在“Excel常用对象与事件”这一章中,笔者只介绍了application对象、workbook对象、worksheet对象和range对象。学生熟悉掌握了这几个常用对象的使用方法后,对其他对象就能够快速的进行自学了。
本着“授人以鱼,不如授人以渔”的态度,笔者在教学中非常重视教授学生如何灵活自如地使用VBA程序自带的“帮助”工具。在教材主要使用的Excel软件中,VBA“帮助”工具就提供了几百个Excel对象模型参考,这些对象不可能在课堂上讲授完毕,因此,只有学会看懂“帮助”工具才能明白随时查找对象的使用方法。例如,在VBA程序设计中要使用到图表对象,但是课程介绍的Excel常用对象中没有包括图表,学生可以通过“帮助”工具搜索到Charts对象的所有属性和方法,也可以在“Excel对象模型参考”中查找到Charts对象。学生在“charts对象成员”中可以学习到Charts对象的使用方法,点击每个方法都有参数说明和示例,如Charts对象的Add方法的示例为:
ActiveWorkbook.Charts.Add Before:=Worksheets(Worksheets.Count)
从这个示例中可以分析出新建图表工作表的语句是ActiveWorkbook.Charts.Add,参数Before是指定新建的图表工作表插入到最后一张工作表之前。学生如果不明白Worksheets.Count的含义,用同样的方法可以去“帮助”工具中查找Worksheets对象的说明,其Count属性的含义是“返回一个Long 值,它代表集合中对象的数量”。学生在上机实验中通过多次使用VBA“帮助”工具,可以快速提高应用能力。
从录制宏的上机实验入门
考虑到本门课程的学生大部分没有学习过程序设计类课程,笔者在学生前两次的上机实验中安排了录制宏的实验题目。这样既避免了学生对程序设计语法的畏惧心理,又增加了学生对VBA编程的自信心,学生可以通过这两次实验体会到VBA中宏的妙用。
第一个宏实验是在Excel中自动生成工资条,实验要求是在Excel工资表中,给每一条记录插入一个工资表的表头,如果有100条工资记录就要复制粘贴100次表头记录行,通过录制一次复制粘贴表头的宏,并把宏指定给新插入的按钮,学生就可以通过一个按钮完成重复工作了。
在Excel中录制宏是一个重要的VBA编程技巧,学生在熟练掌握语法后,也可能遇到生疏的对象和事件,通过录制宏后查看代码,就可以清楚地知道该对象和事件的对应代码,相对于查找“帮助”工具更为快捷。例如,在VBA中进行单变量求解是使用Range.GoalSeek方法,在Range对象中属于不常用的方法,通过录制一次单变量求解的过程,再查看以下代码:
Range("A1").GoalSeek Goal:=10, ChangingCell:=Range("A4")
就可以清楚地知道Range.GoalSeek方法是单变量求解,目标值用Goal参数设置,可变单元格用 ChangingCell参数设置。
第二个宏实验是在Word中设置按钮或快捷键来转换字符的大小写状态。该实验通过录制宏新建按钮或快捷键,使用方法和在Excel中相似。通过先后在Excel和Word中录制宏并查看宏代码,学生可以了解到VBA程序设计的显著特点就是不同软件中的VBA有不同的对象和事件,Excel和Word都有各自的对象模型。
训练学生完成实用性实验
笔者在安排学生的上机实验时,为了激发学生的学习兴趣并能够学以致用,专门挑选了一些实用性的实验题目。实验内容主要包括三个部分,分别是Excel VBA、Word VBA和PPT VBA的程序设计。下面举例说明这三部分实用性实验的内容。
1.在Excel中,要求学生制作一个人员信息管理界面,该实验可以扩展为通讯录人员管理、人力资源信息管理等相关的程序设计。实验内容是通过新建的界面完成信息录入、增删改和查询,把Excel工作表作为保存数据的数据库。这个实验涉及ExcelVBA的界面设计、工作表对象、单元格对象、find方法等内容。
2.在Word中,要求学生制作一份合同模板。该实验可以扩展到要求固定格式的报告模板、简历模板等。实验内容是通过在Word中插入日期选取器、格式文本、组合框等控件来固定合同的样式,让学生熟悉Word特有控件的使用方法。
3.在PPT中,要求学生制作一份销售数据月报的幻灯片模板。该实验可以扩展到展示Excel数据源的其他类型的幻灯片模板,如产品成本数据月报模板、员工工资数据月报模板。实验内容是通过VBA把PPT的文本、图表等对象的数据源指定到Excel工作表中,通过修改Excel工作表中的数据源就可以及时更新PPT中的内容。
结束语
国内各大高校越来越多地开设了VBA程序设计的相关课程,这对普及计算机程序设计基础知识有很大的好处,无论文科还是理工科的学生在学习和工作中都离不开Office办公软件,学习VBA程序设计可以提高大学生的信息素养。
笔者在两年的授课过程中也体会到了该课程对提高学生的计算机实用能力的作用,但作为教师还应清楚,该课程还需要在结合学生需求的案例设计上更下功夫,如结合Excel的规划求解、数据透视表等功能,这样才能更深入地发挥VBA的功能。
参考文献:
[1]梁辉,李花.基于计算思维能力培养的Excel VBA教学研究[J].工业和信息化教育,2013(6).
[2]陆汉权,何钦铭,徐镜春.基于计算思维的“大学计算机基础”课程教学内容设计[J].中国大学教学,2012(9).