面向对象程序设计课程改革探索与实践
2016-05-30覃晓元昌安
覃晓 元昌安
摘 要 文章通过分析传统教学方法及考核方式的不足,以及我院学生学习行为的特点,分别从教学内容、教学手段、考核方式等方面提出了适合我院学生能力水平和学习习惯的课程教学改革方案。
关键词 面向对象 程序设计 课程 改革
中图分类号:G642 文献标识码:A DOI:10.16400/j.cnki.kjdkx.2016.01.022
The Reform Exploration and Practice of
Object-oriented Program Design Course
QIN Xiao, YUAN Chang'an
(College of Computer and Information Engineering, Guangxi Teachers Education University, Nanning, Guangxi 530023)
Abstract This paper analyzes the problems existing in traditional teaching methods and assessment methods in object-oriented curriculum, and based on the characteristics of our students learning behavior, proposed teaching reform program in terms of teaching content, teaching methods, assessment methods adapt to our students study ability and habit.
Key words object-oriented; programming; curriculum; reform
面向对象程序设计课程是一门理论性和操作性都很强的课程,由于其课时少,教学内容牵涉的知识点多,有些语法结构抽象复杂,使得这门课成为学生难以掌握的科目之一。为了提高课堂教学质量和效率,有效培养学生的编程能力和创新能力,我院对该课程进行现状分析和教学改革探索。
1 传统教学存在的问题
1.1 理论教学存在的问题
教师在进行面向对象程序设计课程讲解的时候,多采用理论教学和实践操作相结合的传统教学方法。但在进行理论教学的时候,老师容易将课程当作纯粹的程序设计语言课来讲授,将教学的重点放在了面向对象程序设计语言的语法规则和使用上,忽略了本类课程“利用面向对象思想来分析问题、描述问题和解决问题”的核心教学内容,从而导致教学过程枯燥无味,学生难以对课程产生兴趣,成绩和能力都难以得到提高。
1.2 实践环节存在的问题
传统的实践环节大多采用的方式是:学生在实践课时上机完成教师布置的课后实验题目。这种方式主要存在三个弊端:一是理论课与实践课分开进行,而学生在实验课上完成题目时,往往已经忘记了理论课上的知识要点,上机编程效率低下,能力提高有限。二是上机练习的题目,多是一些验证性的练习,缺乏针对性和设计性,不利于培养学生的创新精神和激发学生的学习兴趣。三是上机时学生多,问题多,而老师能够指导的学生有限,学生的问题不能得到及时解答,学习信心受到打击,逐渐放弃课程的学习。
1.3教学手段存在的问题
多媒体技术在教学应用中的普及,让教师们普遍采用了课件教学的形式。课件教学不但能够大大减轻教师的工作负担,而且能明显增加课堂教学内容的信息量。然而课件中过多的使用信息化元素,会削弱分析问题、解决问题过程中推理思维呈现的完整性,不能发挥传统的、优秀的板书推导方式的作用,学生难以在时间有限的课堂上捕捉到若干程序演进的过程。同时,教师在使用课件进行教学时,会自然加快课堂教学节奏,造成学生在一些关键知识点上没有足够的时间加以反应,难以消化和理解。
1.4对教学对象缺少充分的分析
我院是一所普通高校,受招生所限,很多学生学习能力比较欠缺,表现为没有良好的学习习惯,自我管理能力弱,学习积极性不高,在学习过程中一旦遇到困难或挫折容易中途放弃。大学生活更强调自主管理,学生入学后不适应宽松的学习环境,不会合理安排学习和娱乐时间,导致很多学生将业余时间浪费在网络游戏、影视、交友等活动中,严重耽误了学习。同时,相当一部分学生抛弃了中学阶段课前预习,课上做笔记,课后认真复习的好习惯,陷入平时不学习,考试抱佛脚的恶性学习状态,很难真正掌握专业知识和提高专业技能。
2 教学改革探索
2.1 课堂教学内容改革
首先,在面向对象的课程教学中,我们强调教师应对比“面向过程”的程序设计方法,重点向学生阐明“面向对象”程序设计方法。例如,在封装性的讲解中,以面向过程程序设计方法中的函数为例进行对比讲解:面向过程的程序设计方法中,函数的定义是为了实现某个功能模块,但这个模块在整个程序中是独立存在的,其他任何模块都可以直接调用它,这使得程序模块间的逻辑关系模糊,难以管理和维护。而面向对象的程序设计方法中,功能模块的定义基本变为编写封装在类中的方法体,使得这类代码的行为和属性都隶属于某个特定的对象,因而这种方法更符合自然界中的主体行为规律。
其次,尽可能地选择项目化教材。项目化教材常以设计和编写一个完整的项目为内容主线,与注重语法理论、案例分散的传统教材比较起来,这类教材更便于教师实施项目驱动式教学模式,更有利于把理论与实践在课堂教学中有机地结合起来,让学生在应用和实践需求中有目的地学习,在教学中培养学生的团队精神和创新能力,激发学生的学习兴趣。
2.2 实践教学改革
通过对我院学生学习习惯、知识和能力水平的了解和分析,我们认为采用验证型实验讲授+项目型实验实践的方式比较适宜。具体而言,就是在讲解一些与面向过程程序设计方法不同的概念知识时,采用验证型实验案例讲解,帮助学生理解概念。在上机实验环节,采用讲解如何完成一个具体的项目作为案例,要求学生模仿完成,帮助学生在实践过程中学会灵活运用理论教学中的知识点,形成有用的知识链。在课程设计环节,设计一个难度与课堂讲授案例相当的小项目,要求学生以项目小组形式合作完成,培养学生的团队协作精神和解决实际问题的能力。
如在学习类、对象等相关概念的时候,教师可以在课堂中结合演示向学生讲解教材中的验证型实验,接着在实验实践环节,可以演示一个小型项目(如学生成绩管理系统)中与类、对象的定义相关的设计环节,并要求学生一步一步模拟实现。到所有知识点讲解完毕,教师则可以在课程设计环节,要求学生自行设计并完成一个类似的小项目(如手机通讯录管理系统)。通过层层递进的实验设计,学生既能够在较短实践内理解验证型实验中的知识点,又能在项目型实验中进一步地巩固和理解理论知识,提高编程能力。学生在实践中体会到了学以致用的乐趣,学习主动性和积极性得到了很好的调动。
值得一提的是,对程序设计类课程,我院都设有2周(16个学时)的课程设计课。以往我院将课程设计安排在学期末,但在实践中我们发现,学生在学期末时往往要承担很大的学习压力,要应付各科公选课和专业课的复习考试的压力,学生常常顾此失彼,难以静下心来好好完成课程设计。所以,我们将课程设计课调整到理论课结束后的第二个学期期中,让学生有充分的时间复习面向对象的知识点,交出较高水平的设计作品。
2.3 教学模式和教学手段改革
如前所述,利用课件进行教学,有利有弊。因此,教师应在教学过程中采用多种教学手段结合的方式。首先,在制作课件的时候,尽可能用图表或可视化元素表现面向对象的重要概念,因为图表和可视化演示更能吸引学生的注意力,更能帮助学生轻松掌握和理解教学的重点。其次,涉及到验证性编程实例讲解时,应采用当场分析解题要点、当场编程、当场调试的方式,通过现场调试修正错误,让学生更直观深刻地领悟相应的知识点,同时学会如何调试工具,提高解决问题和实际编程的能力。最后,教师还应充分利用网络资源来辅助教学。对于学生容易遗忘的例题、编程或调试技巧等,可以将这些教学内容的讲解过程录制为不超过5分钟的幕课教学视频,用以帮助学生在课后做进一步复习,或供学生需要时查阅。也应该鼓励学生学会利用网络,搜集合一些资深程序员关于面向对象程序设计的经验和解决实际问题的方法的博客、文章等。这些课堂教学的辅助手段,对提高学生的学习能力和效率有着很好的促进作用。
2.4 考核方式改革
为保证面向对象程序设计课程的教学改革实践取得良好的效果,必须对课程考核方式进行相应的改革。在我院面向对象程序设计课程教学过程中,教师常以笔试作为本门课程的考核方式。试题由教师从平时指导学生作业的习题册中选题组卷,题目类型和分数分布常为选择题(20分)、填空题(20分)、简答题(20分)、程序阅读题(30分)和编程题(10分)。应对这样的题目及其分值,有的学生在考试之前死记硬背,也能考出比较好的成绩,难以真正考查学生的实际编程能力和水平。教师采用的课程期评分数计算公式为:期评成绩=卷面成绩?0%+平时成绩?0%。从公式可以看出,期评成绩的评定完全忽略了对学生在实验环节的表现,这必然导致学生轻视上机实验和课后训练的态度。为更好地体现考核指导学习指挥棒的作用,我们对考核方式进行了改革。具体方案为:首先,调整笔试试卷的题目组成和分值分布,削弱主要靠记忆得分的选择题、填空题的分值,取消简答题题型,增加程序阅读题的分值,调整后试卷题目及其分值变为:选择题(20分)、填空题(20分)、程序阅读题(60分)。其次,将笔试中的编程题取代以教师期末组织的一次随堂机试。教师组织的随堂机考,以学生的代码是否能正确编译、所输出结果是否完善正确为评分标准。第三,调整期评成绩计算公式,将学生平时实验和课后任务的完成情况作为平时成绩纳入成绩计算公式中,新的期评成绩计算公式为:期评成绩=卷面成绩?0%+随堂考成绩?0%+平时成绩?0%。考核方式的改革,促进学生正确对待理论学习和编程实验,在理解和掌握理论知识的同时,提高自身的编程实践能力。
3 总结
通过分析传统教学方法及考核方式的不足,以及我院学生学习行为的特点,提出了适合我院学生能力水平和学习习惯的课程教学改革方案。新的教学和考核方案对学生合理利用课余时间进行编程实践起到很好的约束作用,项目化教学也有效激发了学生的学习兴趣和明确学习目标。我院教师团队的探索性实践证明了改革方案的有效性。在实践中我们发现,仍有一部分学生的学习习惯难以转变,学生逻辑思维能力的差别也导致了学生在程序设计能力上的差异,一些学生(特别是女生)对编写程序、调试代码有严重的畏难情绪,如何正确引导这部分学生,是我们需要进一步思考和解决的问题。
参考文献
[1] 谭浩强.面向对象程序设计(第2版)[M].清华大学出版社,2014.
[2] 单维锋,李攀,陈新房.讲练结合教学法在面向对象程序设计课程中的应用研究[J].软件工程师,2015.18(6):45-47.
[3] 周本海.基于面向对象程序设计教学的改革方法研究[J].考试周刊,2015(14):10.
[4] 赵涛.“四化教学方法研究——以面向对象程序设计课程为例[J].福建电脑,2015(7):48,83.
[5] 武永成.应用型本科院校计算机专业c++教学改革研究[J].教育教学论坛,2015.25(6):138-139.