浅谈C++程序设计课程教学
2017-05-09陈群贤
陈群贤
【摘要】C++程序设计已成为高校计算机专业的一门专业基础必修课,因该课程内容较抽象,学好它并不简单。本文从课堂教学方式、实验教学方式、考核方式等方面介绍一种能较好激发学生学习C++程序设计兴趣的教学方法,值得教编程类老师们学习和借鉴。
【关键词】全年滚动式教学培养计划 实验驱动的课堂教学模式 竞技式考试模式
【中图分类号】G642.4;TP312.1-4 【文献标识码】A 【文章编号】2095-3089(2017)08-0021-01
C++程序设计是众多高校计算机专业的必修课,该课程的特点是语法繁多、内容抽象,学生普遍反映难以理解和掌握。为了激发学生的学习积极性,达到理想的教学效果,让学生领悟和掌握C++编程语言的精髓,要求任课教师在教学中根据本课程教学内容的特点,确定切实可行的教学和考核方式。
一、课堂教学——实验驱动的方式
课堂教学内容分Part1、Part2、Part3三部分,第一学期进行Part1和Part2的面向过程教学,第二学期进行Part3的面向对象教学。
传统的C++课堂教学方式是先理论再实验,先在理论课上介绍各节的主要知识点,然后把各知识点融入到例题中进一步讲解,课后布置作业和实验题。学生在实验前预习实验题,实验课上编写程序并进行调试。这种教学方式老师似乎是课堂上的唯一主体,容易引起学生上课参与度不够,学生上课注意力不集中的现象,课堂教学效果不理想。
为了激发学生的学习兴趣、提高课堂教学效果,本文介绍一种采用实验项目驱动[1]的课堂教学方式。该教学方法是实验之前讲解最基本的知识点,然后就布置实验题,学生就在ACM系统上进行实验。ACM系统中可以看到每道实验题的全部要求,包括功能要求、输入描述、输出描述、输入模版、输出模版。根据实验题要求让学生进行上机实验,等实验完成后回到课堂中解答同学所遇到的各种问题。理论课时老师先给学生展示一个最精炼的代码,然后把这个代码一步步松散,松散到学生完全理解为止。对一道题老师自身要有好几种编程方法,结合程序把解法、C++教材中的知识点讲解出来。在程序的讲解过程中让学生全程参与进来,学生不断的提问,老师不断的解答,宽松互动。课堂授课以实验内容主导,聚焦分析和设计方法,深化理解,便于把握师生互动,课堂气氛活跃。整个课堂教学可以做到在应用中学习,从而避免了枯燥的理论说教,不仅能增进学生的学习兴趣,而且对提高学生综合分析和解决实际问题的能力也大有帮助,起到较好的教学效果。
二、建立新颖实验系统——竞技式实验形式
竞技式实验形式的特点:ACM是多个人一起做题,实验大量代码是公开的,当编程遇到瓶颈的时候可以适当借鉴其他同学的代码,有借鉴的话更能提高激情去解决新问题,学生之间越融洽,越有一个大的学习氛围环境对学习越有好处、越有帮助,实际上是团队合作精神在那里起作用。但不许同学之间互相拷贝和抄袭,平时实验互相拷贝和抄袭的话考试肯定不及格。因为考试时每道题都是全新的问题描述与要求,须独立解决,假如平时一直依靠其他同学的话考试肯定过不了。
竞技式实验形式的作用:培养独立分析问题解决问题的能力;培养团队合作,多角度锻炼学生能力与素质;实验形式变得紧张、刺激、趣味、激发强烈的求知欲;机改与辅导配合,后进生追补与冒尖生畅进并举,内外实验效果显著。能充分挖掘学生的自主学习动力和能力,提高教学效率[2]。
三、考核方式——竞技式上机考核与理论考核相结合
传统的C++课程考核方式:期中理论测试占20%,期末实验测试占20%,平时实验和作业占10%,期末占50%。注重过程考查,顾全到全体学生,考试题型难度不超过平时实验和作业的难度,但没能做到每道题都确保为全新的问题描述与要求,所以较难发现和培养冒尖生。
竞技式考核方式:第一学期采用竞技式开卷考试方式,考试时间为2.5小时,考试时实验室通过校园网访问实验系统,单击调试、代码提交,机器判提、实时排名。题型结构,难度不超过平时实验的难度,但每道题都确保为全新的问题描述与要求,须独立解决,每次考试题数在8-10道不等。成绩评定,4题为及格底线,按每题10分划分数线。
第二学期的考试形式,书面闭卷2小时。题型结构,知识要求部分包括单项选择题和是非判断题,能力要求部分包括理解操作题和分析设计题,其中理解操作题包括看程序写结果、改写程序结构、根据流程图或算法流程写出代码、根据代码写出流程图、对给定代码按一定要求优化。成绩评定,平时成绩占50%,检验编程的框架组织,调试代码的数量;考试成绩占50%,考核程序设计知识体系的把握程度。
在教学过程中根据学生的实际情况适当的采纳本文介绍的课程考核方式,进一步提高学生学习编程的兴趣和积极性。
四、充分发挥教师上机辅導的积极性,利用ACM平台,达到理想的教学效果
ACM是一种讲故事式的做题实验平台,能很好的激发学生的学习兴趣和求知欲。在激发的过程中,学生可能也会受到挫折,抵不住挫折还是不行的,比如在实验时,一个编译关过不了,检查不出错误,这时假如老师没有及时给予帮助的话,他会受到很大的挫折。在他受挫折时老师在旁边能够给他一援手,这是很重要的,所以只有那些实验辅导兢兢业业的老师他的教学效果才会较为完美的发挥。所以在实验时作为老师我们要一直呆在学生中间,当他们遇到问题自己努力了还无法解决时我们要及时给予帮助,这样可以很好的保护好学生们的学习积极性,达到良好的教学效果。
五、巧妙运用ACM/ICPC理念,开拓“全年滚动式教学培养计划”,激发学习兴趣
《C++程序设计》课程教学理念升华为“知识、能力、素质”三位一体,促全方位人才培养,在课程教学中,以激发学习兴趣为一切教学手段的核心目标。
教学理念的提升,学习不是为了学习而学习,而是把学生培养成真正有能力、有用的人才,那必然要涉及到知识、素质和能力,三个方面综合去考虑和培养,具体手段开动了一个全年滚动式教学培养计划。
全年滚动式计划激发学生学习兴趣,实际内涵是教学贯穿全年,每一届学生学C++一年,在学一年的时间中有ACM活动穿插、编程和技巧的选修课、编程培训,寒暑假都包括进来,时间上基本无间隙,内容很丰富。ACM的训练活动让精品学生报名参加,学生真要提高是有很多渠道的,能充分享受ACM训练的乐趣,也有机会脱颖而出,就业也会看好。老师把ACM的优秀学生推荐到自己挂钩的单位去,这样学生会得到更多的机会去实践和提高。
六、结束语
要教好C++程序设计课程,首先教师得深刻领悟ACM/ICPC理念,在此前提下采用实验驱动的课堂教学方法,采用新颖的竞技式实验系统将竞技式上机考试贯彻到底,开拓全年滚动式教学培养计划,充分激发学生的学习兴趣,达到良好的教学效果。
参考文献:
[1]李高杰.任务驱动式教学在计算机软件教学中的应用探析.无线互联科技,2013(8):230.
[2]陈晋音,俞山青,毛国红.面向C++程序设计课程的翻转课堂教学改革.计算机教育,2015(19):39-44.