谢 晋
(湖北理工学院 计算机学院,湖北 黄石435003)
面向对象程序设计是现阶段程序设计的主流技术。C++面向对象程序设计语言也是近年来众多领域广泛应用的一种计算机语言。它在C语言的基础上扩充了面向对象机制而形成的一种面向对象程序设计语言。与其他程序设计语言相比,C++语言简洁、紧凑,功能丰富,表达能力强,使用灵活方便,目标程序效率高,可移植性好,适合编写各种软件,尤其是系统软件。
《C++面向对象程序设计》是计算机专业教学体系中的一门重要主干课程。它不仅是一门程序设计课程,而且是许多专业课程的重要基础,更是这些专业开展计算机研究、应用和综合运用本专业知识的重要表达工具和开发工具。
我院给大一学生上学期开设C语言程序设计,下学期开设C++面向对象程序设计,这两门课程有前后衔接关系。由于有些学生一开始没打下坚实的C语言基础,特别是对自定义数据类型、指针、链表等较难的内容了解不够深入。学生在学习C++时,容易受C语言面向过程编程模式的影响,思维还没完全转变到面向对象编程模式。在此基础上学习C++知识,会造成理解上的困难。
C++面向对象程序设计课程中的两个主要概念是“类”和“对象”,需要学生掌握的基本技能之一就是按照对象的特征进行数据抽象和功能抽象,而学生的思维停留在面向过程的程序设计,对编程中对象和类的抽象,对象和类的关系,理解不透彻。
实验课上人数很多,平均每个班40多个学生。教师在短短的90分钟内,不可能对一些同学的问题及时给予答复并且对每位学生进行实验考核。主动学习能力强的学生有独立解决问题的能力,这些学生相互交流或者问教师能解决实验中的疑惑。自主学习能力差的学生不能及时解决问题,又不是每个时候都能得到教师帮助,实验做的拖拖拉拉,最后就会导致实验报告以拷贝的方式完成。
课程学习完,绝大部分学生只会做书本和试卷中的练习题,解决实际问题的能力欠佳。实践锻炼的学时比较少,还不能动手编制较复杂的程序,难以掌握编程语言的实际应用。
明确学习C++面向对象程序设计的目的和编程模式。注重算法和面向对象程序设计方法和技术。在设计算法中培养学生的独立思考和创新能力,在面向对象的程序设计过程中体会面向对象的编程思想。为了掌握这个教学方向,第一次课特别关键。在第一次课中,需要把面向对象编程模式(即程序=对象+消息)以及类和对象的概念,类和对象的关系讲清楚。第一次课传授好面向对象编程思维模式和学习目的,有了这个铺垫,后面的课程内容就好开展。
给学生选一本结构清晰、可读性强的教材是不可或缺的。在此前提下,还可以挑选一些技术书籍,给学生补充课本教材之外的实际技能知识。在网络技术飞快发展的时代,互联网提供了很好的学习平台,学生可以在网上查阅C++编程方面的学习资料,还可以观看下载教学视频,在相关网站论坛博客上相互交流等。
课程教学强调算法,突出程序设计的方法和技术,注重学生的逻辑思维训练和程序设计能力的提高,放弃以语法讲授为主的传统方法。整个教学过程中直接讲授面向对象程序设计方法。教师把握好这个主调,将教材里的主要知识点进行抽取总结,对每个章节里的知识点合理运用,解决实际问题。在用C++程序解决问题时,突出面向对象的编程模式,设计一些关键问题,让学生参与讨论。通过问题的讨论,加强学生抽象逻辑思维能力训练。
与传统的板书教学相比,多媒体教学形象生动、图文并茂、信息量大、交互性好,对课程中难以理解的抽象内容,可以直观展示,起到事半功倍的效果。并不是一味强调用多媒体教学。传统的板书教学可以为多媒体教学作辅助手段。例如,课堂里讲的重难点知识点以及要注意归纳性的语句都可以在黑板板书。学生在浏览ppt文件的同时,不会钻究于课堂细微末节的知识,而忘了整个课堂知识点框架结构和学习目的。
在C++面向对象程序设计课程中,一些抽象的概念用生活中的现象做比喻,方便学生理解。类和对象的概念与它们之间的关系,可以用生活中磨具与产品比喻类与对象。子类继承父类时,不同的继承方式也可以用现实中类似的事例比喻。
运算符函数的重载可以提出问题进行启发教学。例如,编写程序,两个整数相加系统自动完成运算,如果程序里添加复数类的两个具体对象相加系统不能自动完成。通过这个问题启发学生,C++程序中对基本类型数据的处理和用户定义抽象类的对象的处理是不同的。强调面向对象与面向过程的区别。
继承与派生的知识,函数模板与类模板可以用任务驱动法教学。给出问题,师生共同解决,加深面向对象软件的可扩充性和可重用性印象。
在C++程序设计教学中,针对不同的知识点采用合理的教学方法,能很好的提高课堂教学效果。
为保证实验效果,教师应精心设计每一次实验内容。学生每一次实验都有明确的实验目的,每次实验内容提前给学生,要求提前预习,认真思考,将想好的思路用C++代码写入电子文档。实验课时,学生带着预习后写的代码上机编译运行。学生在编译链接程序过程中出现错误,教师要教学生调试程序。实验课结束,学生必须及时上交规范的实验报告电子档,其中包括程序的源代码、程序输出结果截图以及实验总结。教师可以带着学习能力强,实验报告做完的学生协助教师做实验指导工作。不同学生编程思路和不同的编译问题,反过来更能锻炼助教学生的实践能力,一举两得。
为加强实验效果,实验课上教师不能只讲不练。教师应尽量讲解决问题的思路或者解题需要注意的问题提出,仅供学生参考。每个实验有几个题目,每个学生解题方法和代码都有不同。在实验课最后,教师可以针对每个题目,选几个有代表性的代码给全班同学学习分享交流,拓宽编程思维。
针对我院《C++面向对象程序设计》教学中存在的问题,本文进行深入分析和思考,对提出的教学方式改革方案在我校近两年的本科学生进行了实施,效果良好,较好的激发了学生的学习兴趣,调动了学生的学习积极性,增强了学生的学习自信心。随着语言的发展,C++面向对象程序设计教学还会出现许多新的问题和矛盾。在今后的C++教学实践中,教师还应根据实际情况不断调整教学思路,改进教学方式,提高教学效果。
[1]王磊,蔡绍峰.C++课程在应用型本科院校中的新型教学模式[J].赤峰学院学报,2013(2).
[2]陈元惠.“C++程序设计”教学方法的研究与实践[J].牡丹江大学学报,2008(5).
[3]刘波,沈岳,曾莹.高校计算机项目驱动式教学模式探索[J].计算机教育,2011(2).
[4]谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.
[5]刘建华.计算机语言类课程教学模式初探[J].高教论坛,2005(1).