面向编程能力培养的C++语言教学实践
冯 欣
C++语言是计算机专业必修的计算机基础课程,它具有功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好的特点。C++语言既有高级语言的优点,又有低级语言的特点,大多数系统软件和许多应用软件都是用C++语言编写的,C++语言编程已成为计算机开发人员的一项基本功。而且如数据结构、操作系统、编译原理等课程大多也是以C++为基础的,因此不论从专业学习的角度,还是以后从事软件开发的角度看,C++语言课程的学习都是非常重要的。
如果C++语言的教学停滞不前,只注重基础知识的学习,而忽略能力的培养,势必影响学生的就业竞争力,学生将对C++语言课程失去兴趣。纵观计算机基础教育的发展趋势,C++语言教学应以培养学生编程能力为中心,C++语言的教学要为学生的专业学习服务,通过改进教学方法,调整教学手段,提高教学质量,帮助学生明确学习目的,从而提高学生的实践创新能力。
一、调整教学内容适应本专业需要
在新的教学计划执行前,《C语言程序设计》是64学时(必修课),主要讲授面向过程的设计方法,主要内容包括基础语法知识、程序的三种控制结构、数组、函数、指针、联合体和文件操作。《C++程序设计》32学时(选修课),主要讲授面向对象的设计方法,主要内容是抽象和封装、继承和派生、多态、流对象等。但不管是从C语言作为编程语言的功能发展看,还是从同类专业的课程设置看,都把C++语言作为一门课程,统一安排学时、进度,使教学内容更合理。
计算机学院在多次研究探讨之后,把《C语言程序设计》和《C++程序设计》合并为一门课程《C/C++语言》(上、下),为了增强学生的实践能力,在这一年的课程学习后安排一周的C++课程设计。
这样我们在教材的选择、内容的取舍、上机环境等问题上都比较容易达成一致。比如在教材选择上,原来我们分别选择谭浩强的《C程序设计》和郑莉的《C++语言程序设计》,但是在程序的输入输出处理上两者存在很大不同,另外上机的编译环境也差别很大,这样与编译环境相关的一些细节问题结果就不同了,如在TC3.0环境下,int型变量占内存是两个字节,而在VC6.0环境下则是4个字节。经过反复比较选择,我们选择了清华出版社谭浩强编著的《C++程序设计》,这本书的特点就是它把C++作为一门语言来介绍,统一讲解语法和功能。按照先介绍面向过程的设计方法,后介绍面向对象的设计方法的顺序,把强大的C++功能讲述清楚,我们选择VC6.0作为上机环境,避免了与编译环境有关的矛盾。
在学时安排上,我们把这门课的上篇“面向过程的设计方法”和下篇“面向对象的设计方法”各安排48学时。《C++语言》(上)主要让学生掌握这门语言的基本语法,能用函数解决数学问题,如求素数、求鞍点等。《C++语言》(下)主要让学生理解面向对象的三个主要特点:抽象封装、继承派生、多态,让学生能用类和对象的观点解决一些实际问题,如实现小型信息管理系统等。
总之,我们的学生是计算机专业的学生,C++语言是他们接触到的第一门编程语言,我们按此调整好教学内容,我们的教学目的是学生能用C++语言来编写程序,为后续的课程以及今后的软件开发打好基础。
目前C++语言采用的教学模式是“集中授课+上机辅导”,96学时的教学时间,64学时授课,32学时上机。在课堂上集中讲授新的课堂知识,针对讲授的重点布置下次上机任务。讲授法是单向的信息传输方式,教师灌输知识,学生被动接受。它能让学生较易接受C++语言的基本概念、语法结构等基础知识,却不能很好地提高学生的编程动手能力,不能较好地培养学生提出问题、分析问题、解决问题的能力。
所以我们的第一个优化是上机实验。上机时学生在规定机时内完成老师的上机作业,写出实验报告,教师在一旁辅导。最关键的是对学生的实验报告进行详细批阅,在下次上课时发到每位学生手中,让学生及时发现编程中的问题,并对学生每次实验的完成情况进行记录作为期末成绩的一部分。
第二个优化是课程设计。实践教学是一种互动启发教学方法,是在教师的指导下,根据教学目的的要求,组织学生通过对设计题目的思考、分析、讨论等活动,教给他们分析问题和解决问题的方法,进而提高他们分析问题和解决问题的能力,加深他们对基本原理和概念的理解,学习编写相对复杂的程序,学会调试解决程序中出现的问题。往往一些学生在课程设计中发现自己编写的程序功能很多,但还不够精致,就不断对它修改,让它完美再完美,从而爱上了这门语言。(www.daowen.com)
第三个优化是章节练习。古人云:温故而知新。对这门课更是如此,对难度大的章节如数组、函数、指针、类和对象、继承和派生、多态,都布置相应的习题练习,通过学生动手做,让学生发现问题,及时解决问题。同样重要的是课前提问和课后布置作业,只有让学生多练、多看,才能越学越好。
三、传统教学手段和现代教学手段相结合
目前大多数高校在C++语言的教学中均采用多媒体教学。现代的“计算机+大屏幕”教学具有无与伦比的优越性,节省了教学时间,提高了教学效率;而传统的“黑板+粉笔”教学相对教学效率低,不生动,对抽象问题难以理解。C++语言作为一种编程工具,多媒体教学是必不可少的,它可以随时向学生演示程序的上机运行情况。但是,过分依赖电子教案,课堂气氛显得沉闷,讲课方法单调,在讲授过程中学生出现的困惑,不能及时解决,没有达到真正的交互教学。所以我认为,在教学过程中应合理搭配多媒体教学和传统教学。在课程开始时,可以把这次课的重点内容写到黑板上,在课程将结束时和同学们一起回顾。在上课过程中,学生表现得有疑问、不理解,就可以用“黑板+粉笔”来举例详细说明,虽然讲课速度变慢,但提高了学生的注意力,一步一步引导学生进行逻辑思考,更透彻理解症结所在。只有这样,才能实现课堂上的“互动”,教和学相互契合,做到因材施教。
此外,利用网络功能,为学生设立这门课的邮箱,定期把课件、习题、实验等内容放在里面,供学生学习。
不管是传统教学、多媒体教学还是借助网络,各种教学手段只有相互补充才能相得益彰,教师与教学手段是主体与工具的关系,不能颠倒;教师要合理调动各种教学手段,来发挥教师主导作用和激发学生学习的主动性,这样才能明显提高教学效果。
四、以学生编程能力为主的教学评价体系
以前,评价学生C++课程的学习成效是通过期末笔试的考核方式和平时出勤来确定的,期末试卷基本上仿照计算机C++二级考试的题型,客观题如选择和填空占绝大部分,主观题过少。许多学生为了考高分,学习中往往忽视了编程能力的培养,阻碍了学生继续探索的动力,同时给我们的评价方式提出质疑。
因此,建立以学生发展为本的教学评价体系非常重要,以此激励学生不但认真学习基本知识,又能将知识应用于实践。现在,我们建立平时成绩、期末考试的考核制度,平时成绩的60%是考核大家平时的上机实验,其实这也是编程题目的平时考查。期末考试大大增加主观题分值,缩小客观题比重,将编程题作为考核的主要内容。对学生编程能力的强调,促使学生平时多上机,多上机才能发现更多的问题,发现问题才能解决问题,这是个良性循环。
在教学实践中,只有从教学内容、教学方法、教学手段、评价方法这四方面不断探索改进,才能使我们教学相长,以上是自己的一些教学心得,希望和同事们共同提高,共同进步!
参考文献:
[1]靳玉乐:《案例教学原理》,西南师范大学出版社,2003。
[2]杨宏林:《关于高等数学课程教学改革的几点思考》,《数学教育学报》,2004。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。