APP下载

面向应用能力培养的C++课程教学实践

2012-04-29王进陈建平王春明

计算机时代 2012年11期
关键词:反思性教学任务驱动教学法应用能力

王进 陈建平 王春明

摘要: 围绕C++程序设计课程教学目标,精心挑选教材,灵活组织课堂教学内容;改进教学方法,灵活运用案例教学法、任务驱动教学法、反思性教学法等方法;改进评价方法,全面客观地评价学生的程序设计能力。教学实践表明,以上这些方法对于培养学生的应用能力收效明显。

关键词: C++教学; 应用能力; 案例教学法; 任务驱动教学法; 反思性教学

中图分类号:G642.0文献标志码:A 文章编号:1006-8228(2012)11-51-02

Application on capacity-oriented teaching of C++ programming

Wang Jin, Chen Jianping, Wang Chunming

(School of Computer Science & Technology, Nantong University, Nantong, Jiangsu 226019, China)

Abstract: To achieve the goal of cultivating application-oriented students, teaching materials should be carefully selected, and the contents in class should be flexibly organized. The teaching methods should be improved. Flexibly using case teaching method, task-driven teaching method, and reflective teaching method is needed. Evaluation methods need to be improved to comprehensively and objectively evaluate students programming skills, and lead students to develop their application capacity. The practice shows that these methods work well.

Key words: C++ teaching; application capacity; case teaching method; task-driven teaching method; reflective teaching

0 引言

C++是兼容C的面向过程和面向对象的主流程序设计语言,广泛用于编写各种应用软件,广泛用于程序设计、数据结构等课程的教学。“C++程序设计”是高等学校普遍开设的计算机核心基础课程,由于该课程理论性、综合性和实践性强,使不少学生感到非常吃力。笔者根据亲身教学经验,讨论C++授课过程中出现的问题,并探讨相应的解决方法。

1 C++教学面临的问题

作为本二类院校,我们每年为地方输送大量的计算机专业高级应用型人才。“C++程序设计”课程是为计算机类专业大一学生开设的一门专业基础课。很多学生反映该课程难学,每年都有大量的学生不及格,有的学生因此失去兴趣、失去信心。有一些学生虽然坚持学完了该课程,勉强通过了考试,但是却不会设计程序,还有些学生虽然能够进行程序设计,但是没有养成良好的编程风格和习惯,不利于以后的就业和发展[1]。

从用人单位的反馈来看,大学毕业生主要有以下两个方面的欠缺:①专业知识不够扎实。很多毕业生对专业一知半解,就业后还需要企业培训来完善和提高,而企业需要的是招之能用,而且好用的人才。这直接造成“中间差”的局面,即毕业生很难找到合适的工作岗位,同时,企业招不到合适的人。②应用能力水平低下,即实践动手能力不强。很多毕业生的能力停留在书本上,不能真正解决实际问题。

2 确立“面向应用”的目标

我们分析产生上述问题的原因主要有两个:①学生缺乏自主学习能力。学生经过了长期的应试教育训练,已经习惯了填鸭式的教学,失去了自主学习能力和创新能力[2];②教师教学内容和教学方法单一,没能因材施教、因课施教。这样最终造成了学生学习吃力、老师教学费劲的局面。

笔者认为,根据教学现状和C++课程的特点,必须确立“面向应用”的目标。只有面向应用了,学生才能提高动手能力、找到好工作,从而增加学习动力;只有面向应用了,学生才能感受到C++课程是贴近生活的、不是枯燥无味的,从而激发学习兴趣。

要实现“面向应用”,首先要调查清楚社会对IT人才的需求,然后再调整教学内容和教学方法,培养学生的应用能力。为了让学生理解面向对象的程序设计思想,掌握C++的程序设计方法,并能够解决实际问题,我们精心组织了教学内容,并改进了教学方法。

3 精心组织教学内容

首先是精心编著教材。市面上有关C++程序设计的教材非常多,但是良莠不齐,有的太难、有的内容太多。笔者所在的教研室多年来一直从事C++程序设计的教学、研究、建设和软件开发,我们阅读了国内外大量C++教材,积累和总结了多年的C++教学经验,编写了教材《C++程序设计教程》[3],该书按程序设计方法演进发展的自然顺序及C++实际编程能力形成的三个关键期,将C++教学内容分为三大单元,即结构化程序设计、模块化程序设计和面向对象程序设计。这样组织书的内容,可使教学过程由浅入深、循序渐进,符合学生的认知规律和编程能力的形成规律。

其次是灵活组织课堂教学内容。教材的内容几乎是固定不变的,而IT技术日新月异,社会需要不断变化,学生的学习能力存在差异,所以需要我们根据实际情况,灵活地组织课堂的教学内容。例如,为了让学生了解到社会的需求并激发其学习热情,我们会在课堂上展示国内外著名IT公司的招聘要求和薪酬情况;为了让学生对一些知识点有感性的认识,我们会补充一些更加形象的例子。

4 改进教学方法

有了适当的教学内容组织,再加上好的教学方法,可以大大提高教学的效果。在教学中,我们使用了案例教学法、任务驱动教学法、反思性教学法等方法。

案例教学法是一种以案例为基础的教学法,它非常适合用于程序设计的教学之中。在教学中,我们选择尽可能贴近生活的、能使学生感兴趣的典型案例。例如,在讲循环语句的时候,先讲了德国数学家高斯的一个故事(这个故事是说高斯在10岁的时候就能够用很短的时间算出从1加到100的结果是5050,让他的老师非常吃惊),然后再引出用C++的循环语句解决这个问题,学生就非常有兴趣。又例如,在讲条件语句的时候,先讲了一个笑话:“老师问小明‘如果你考试不及格,你的父母会怎么对待你?小明回答:‘80分以下是女子单打,70分以下是男子单打,60分以下是男女混合双打!”,学生开怀大笑之后再让他们用条件语句实现该例子,学生的印象就非常深刻。

任务驱动教学法就是在学习C++程序设计的过程中,学生在教师的帮助下,紧紧围绕一个共同的任务活动中心,在强烈的问题动机的驱动下,通过对学习资源的积极主动应用,进行自主探索和互动协作的学习。任务驱动教学法是一种建立在建构主义学习理论基础上的教学法,它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维互动式的教学理念。学生在经历了长期的应试教育之后,学习的主动性已经大大减弱,我们使用任务驱动教学法试图提高学生的学习主动性。我们在每次课结束之后,给学生们分组布置任务,这些任务的应用背景很强,例如编写简单的加密算法,编写青年歌手大奖赛的评分软件等。任务完成得好的学生不但会在课堂上得到表扬,而且会得到更高的平时分,所以学生完成任务的积极性很高。学生接受任务之后,通过看课本、查阅图书馆书籍、网络搜索等多种途径来解决问题,逐渐掌握了自主学习的本领,同时也增强了学习的兴趣。

反思性教学是20世纪80年代以来现代教育改革中迅速兴起的一种教学理论[4]。它以不断反思教学程序为手段,探究教与学过程的合理性和可行性。反思性教学具有较强的科学研究性质,不是机械地按照教材和教学大纲要求来组织教学,而是在领会教材和教学大纲的基础上,不断地发现教学中的问题并采取有效措施应对,逐渐优化教学方式,使得教学更合理化。教师只有以研究者的姿态进行教育教学,才能在教学中不断地发现问题、解决问题。笔者在教授C++程序设计课程的时候努力尝试反思性教学。在教学前反思,笔者考虑了本二学生和本三学生学习能力的差异,将教材内容条理化、知识点分类,确定重点和难点,然后针对本二学生和本三学生分别进行教学设计。应该说,教学设计再完整也难面面俱到,在教学设计中原先精心设计的应用案例也许学生并不感到形象生动。所以我们强调在教学中反思,教师及时地对突发问题进行反思,对出现的问题不断地做出决策,及时调整,从而保证教学顺利有效地进行。同时我们需要教学后反思,对教学效果进行评判,回忆并记录教学过程中发现的问题和困难,研究其解决方案。教学后反思需兼具批判性和创新性,既要对教学进行总结和评价,又要研究解决问题的措施,更新教学内容或者教学方式。

5 合理评价学生

学生学习评价体系不完善是一个比较突出的问题[5]。笔者以前在教学中运用得最多的评价方法就是“考试”,认为考试成绩可以体现学生的所有学习情况。通过一段时间的实践之后,笔者发现这样的评价是不科学的,有的学生考试分数很高,但是不会编程;有的学生编程能力很强,但是考试的分数却不高。这种怪现象引起了我们深深地反思,评价方法在一定程度上是学生学习方向的指挥棒,不合理的评价方法可能会导致产生更多的高分低能的学生。我们对评价方法进行了改进,把评价渗透到每一个教学环节中,将书面考试成绩、分组任务成绩、上机实验成绩和课堂表现成绩综合起来,全面客观地评价学生的程序设计能力,使教学与评价真正融为一体,让评价方法真正起到培养学生应用能力的导向作用。

参考文献:

[1] 何灵敏,许翔,陆慧娟.C++教学中编程习惯的养成[J].计算机教育,

2011.9:64-67

[2] Chen Jianping,Wang Jiehua,Gu Xiang. Reform of Undergraduate

Education of Computing Discipline for Local Universities[C]//Proc.Of Int. Conf. on Computers and Advanced Technology in Education,Hawaii,USA,2010.

[3] 陈建平,刘维富,葛建芳.C++程序设计教程[M].高等教育出版社,

2007.

[4] 刘晓华.反思性教学与教师专业发展的研究[M].华东师范大学出版

社,2005.

[5] 孙娜.基于启发式的Visual C++程序设计教学改革[J].计算机教育,

2011.22:29-32

猜你喜欢

反思性教学任务驱动教学法应用能力
任务驱动教学法在军械士官大专“机械基础”课程中的具体实施
任务驱动教学法在成人教育中的运用分析
高中英语课堂中反思性教学应用策略分析
高等数学教学培养学生应用能力的探讨
项目教学法在建设项目LCM课程实训中的创新应用
提升信息技术实践能力,促进学生全面发展
浅谈反思性教学在外国语言学课程教改中的探索
计算机网络课程实验教学改革探讨
程序设计课程中计算思维和应用能力培养问题研究
任务驱动教学法在C 语言教学中的应用研究