探索《C++程序设计》教学方法
2012-07-21陈雪萍
陈雪萍
探索《C++程序设计》教学方法
陈雪萍
福建师范大学信息技术学院
针对《C++程序设计》教学过程中存在的问题,探讨如何结合高职院校学生的特点,改进《C++程序设计》课程的教学方法,使不同层次的学生都能学好该课程,为后续课程打下良好的编程基础。
C++程序设计 高职教育 教学方法 独立思考
根据高职院校培养应用型人才的特点,我院为计算机游戏开发专业引进了《C程序设计》—《C++程序设计》—《游戏工具开发》—《游戏脚本开发》—《在线游戏网络架构》—《Direct X编程》—《高级游戏特性》为主线的课程体系设置。不难看出,《C++程序设计》在游戏开发专业课程学习过程中具有极其重要的作用,它的定位是面向对象程序设计原理,要让学生有扎实的理论基础,同时也应该具备扎实的实践技能,是学生必须掌握的专业基础课。但在实际授课过程中,学生普遍反映本门课程难学,对编程失去兴趣和信心,后继专业课程基本无法听懂。本文试图找出《C++程序设计》难学的症结所在,并提出相应的解决方案。
1 尽早引入面向对象编程思想,解决编程思想难转换问题
在计算机游戏开发专业课程体系中,《C程序设计》被设计为《C++程序设计》的前续课程,基本语法的学习放在《C程序设计》,《C++程序设计》的授课重点则放在了面向对象的基本思想和基本方法上。这样,学生有可能受到两方面的影响:编程过程过于关注基本语法;在编程过程中受结构化编程思想影响,难以理解面向对象编程思想。
针对计算机游戏专业与其它专业的特殊性,建议直接引入《C++程序设计》,而不是先学《C程序设计》再学《C++程序设计》,尽早引入面向对象编程思想。《C++程序设计》课程涉及到较多的抽象概念,如继承、多态等,应提高学生从客观事物抽象出类的方法去考虑和解决问题的抽象思维能力。
同时,在授课过程中淡化语法,重点强调算法,以算法带动基本语法的学习。督促学生多记录常见错误提示,错误再次发生时能自行解决。错误提示通常为英语,可与《专业英语》课程相结合,学习相关专业术语。
2 采用案例教学解决传统教学存在的内容多而泛问题
以往《C++程序设计》的课程教材都是采用清华大学版的教程,由于该书的信息量太大,知识点太多,对语法强调得过多,学生难以把握学习重点,往往拿起书本就觉得没有信心,妨碍了学生自学,容易产生畏难情绪,不适合用于培养高职院校计算机专业学生的编程能力。书本内容多也导致了教学难度大,知识点过多容易使课程教学出现拖拉现象。因此,对教材的要求应该从培训学生的实际编程能力为前提进行选择,教材内容应该以项目设计为主线,将C++语言的各个知识点融入其中。知识点讲完了,一个项目也就完成了。
案例教学是一种具有启发性和实践性,能开发学生智力,提高学生决策能力和综合素质的教学方法。初学时,学生很容易就产生学习C++程序设计非常枯燥无味的情绪,一部分学生甚至出现“只听不练”的情况。使用这种方法能将枯燥的抽象概念变得生动、具体,重点突出,简单明了。例如,我们小时候都玩过“掌上宠物”这个游戏,现在把这个游戏搬进我们的课堂,既活跃了课堂气氛,又调动了学生的积极性。案例教学的有效实施,有助于学生在开始阶段顺利入门,保持学习的兴趣和积极性,提高他们的实际应用能力。
案例教学效果的好坏关键在于案例设计的质量如何。一般情况下,教学案例的设计应该尽量做到:①覆盖课程的相关知识点;②有实践性,设计的案例应切合实际,容易被学生理解;③有针对性,应该针对学生的接受能力来设计案例;④有系统性,在整个课程教学过程中用到的案例应该由易到难进行设计。
3 培养独立思考能力,解决学生动手能力差问题
在课堂案例教学过程中,经常看到这样一个场景:老师教一步,然后等学生操作一步,然后老师再继续教下一步操作,就是老师教学生一步一步模仿开发。可是,换一个案例,碰到新知识和新问题的时候,学生就不知道如何处理了。
因此,在教学过程中,我们应该给学生一些时间让他去思考,除了课程电子教案、案例重难点分析,我们还应该提供一些案例扩展的自检自测题。课堂和课外两个案例同时进行,除了课堂案例,应该再设计一些案例,供学生课外练习,鼓励学生借助搜索引擎(如百度、雅虎)来获取其感兴趣的资源,完成课外案例。
4 采用两种教学模式,解决学生层次参差不齐问题
由于学生素质参差不齐,一部分学生接受能力快,课堂布置的实验很快完成,出现课堂剩余时间无所事事的情况;而另一部分学生接受能力差,实验进度缓慢。游戏专业两极分化比较严重,上课节奏难以把握。
对接受能力快的学生,采用“任务式”教学,提出任务,引导学生进行思考,使其自己翻阅资料并给出解决方案。这样既可以引导学生在学习过程中少走弯路,又能激发这些学生的学习动力,变被动学习为主动学习,提高其自觉能力;对接受能力差的同学,采用扎实、缓慢的授课方式,对所有的难点、细节都举大量的例子,不断地反复练习,加深印象,避免因为前面内容没有听懂而放弃后面内容的学习。同时采用分组形式,尽量让学习能力强的学生带学习能力差的学生,课堂上的问题尽量在小组内解决,如有不能解决的,再向老师提问。这样,既能使学习能力强的学生知识得到巩固,又使学习能力差的学生能解决学习问题,同时学习到好的学习方法。
5 培养良好的编程习惯,解决程序可读性差的问题
学生在编程过程中,往往按照自己的习惯进行编程,很少注意到编程规范问题,使程序的可读性差,这使得学生即使是自己写的程序,依然看得很吃力,在代码纠错方面也浪费了大量的时间。编程不规范主要表现在以下几个方面:
(1)标识符命名不规范,学生通常喜欢用i,j等标识符来命名,不能“望名知义”。标识符命名最好采用“匈牙利命名法”或“驼峰式命名法”。
(2)程序格式混乱,没有缩进或乱缩进,程序层次不分明,经常出现括号不配对等问题。应该引导学生使用”TAB”键进行缩进,而不是使用空格,同时借助编辑工具来规范程序代码层次。
(3)程序没有注释,使代码的阅读和代码的维护产生困难。应该要求代码的注释量达到程序代码比例的20%左右,修改代码时,应该要更新注释。
大型软件开发通常由多人协同完成,可以提供给学生一些IT公司的编程培训视频或编程规范文档,例如给学生阅读《华为编程规范和范例》,使学生理解IT公司的编程要求,尽早培养好的编程习惯,养成命名规范化和编程规范化,提高编写的程序可读性,使学习效率事半功倍。
6 培养调试程序的能力,解决学生无法独立修改错误问题
由于《C++程序设计》涉及知识面广,内容丰富,语法复杂,学生在编程过程中往往被语法问题难住,对程序调试过程中出现层出不穷的语法问题和逻辑问题难以自行解决,只能被动等待授课老师过来解决。因此,在上机过程中,应该着重指导学生怎么跟踪程序的运行,怎样设置被监视的变量,怎么设置断点,怎样单步运行,怎样使用Debug工具。这样,在实验过程中,学生才能学会如何自行解决问题。
7 多参与项目开发,解决教师项目经验不足问题
在案例教学中要培养学生的逻辑思维能力、程序设计能力和综合解决问题的能力,因为,对教师自身的程序设计能力也有了更高的要求。教师应该经常参与项目开发,参与系统设计、系统实施,积累开发经验和编程技巧,把理论上先进的思想付诸实施,同时把实践中的体会用于教学。
总之,在教学过程中一定要结合高职院校学生的特点,使课程内容尽量贴近学生的兴趣,这样才能调动学生学习的积极性,提高教学效果。
[1] 潭浩强. C++程序设计[M].北京:清华大学出版社,2011
[2] 钱能.C++程序设计教程——设计思想与实现[M].北京:清华大学出版社, 2009.
[3] 黄国军,黄贤文.高职院校中C++教学问题的探讨[J].软件工程师, 2010(4): 59-60.