任务与案例驱动法在面向对象程序设计教学中的应用

时间:2022-10-07 09:27:01

任务与案例驱动法在面向对象程序设计教学中的应用

摘要:面向对象技术作为一种流行的软件开发方法,因用其开发出的程序信息隐蔽、可复用、易修改、易扩充等特点广泛应用于实际的程序设计开发中。针对传统的以知识体系为核心的课堂教学模式使得学生学习的积极、主动性不够,学生不能真正领会面向对象的分析及设计思想等问题,该文提出了案例教学法和任务驱动教学法相结合的新的教学方法。多年的教学实践证明,应用新教学法在有效提高面向对象程序设计课程的教学效果同时提高了学生的学习兴趣和能力。

关键词:面向对象;教学方法;案例;任务驱动

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2014)11-2591-02

Abstract: As a popular software development method, object-oriented technology has been widely applied in the actual design and development process, owing to its information hiding, reusable, easy to modify, and easy expansion. In order to solve the problems that students’ initiative and enthusiasm is not enough and students not master the idea of object-oriented analysis and design method in traditional teaching, a new teaching method that combining case with task-driven in the process of teaching has been proposed. Practice show that the new method was applied in teaching of object-oriented programming, achieve the purpose of improving teaching effectiveness and stimulating students study interests and ability.

Key words: object-oriented; teaching method; case; task -driven

面向对象程序设计方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。抽象、封装、继承和多态等面向对象程序设计的基本特性可以帮助人们设计开发出具有数据抽象程度高、信息隐蔽、可复用、易修改、易扩充等优点的程序[1]。因该门课程理论性强,教师在教学过程中发现:学生在一学期的学习中很难将面向对象的设计思想真正融会贯通于项目设计实践环节,实践教学往往只能停留在C++语法层面或者某一些知识点的简单应用层面,学生也觉得这门课程很难理解掌握,甚至有学生发出“学习类,真累!”的感叹。目前该课程的教学研究多集中于教学内容、教学模式、教学体系等方面[2-4],对于实践教学环节的研究并不多见[5, 6]。针对面向对象程序设计的特点和在教学过程中存在的这些问题,为了突破传统教学过程中仅仅传授知识的瓶颈,达到让学生在实践中领会思想之目的,滨州学院信息工程系的教师通过多年的探索实践,在教学模式及实践教学环节方面进行了一系列的教学改革。遵循人们的认知规律及先易后难的原则,将任务驱动的教学法和案例教学法结合并重点应用于实践教学环节中,迫使学生将面向对象的设计思想和设计方法应用于项目实践中。学生在深入理解课程核心思想的同时逐步培养理论联系实际的能力及开发创新的能力。

1 案例教学法在面向对象程序设计教学中的应用

传统的以讲课为主的教学模式,是从中世纪的欧洲大学演化而来的一种教学方式。此法沿袭已久,在我国的大学教学中普遍存在。当然,近年来随着技术的发展,已普遍将多媒体等技术融和到传统的讲课中来,在图像、文字、声音的共同作用下的讲课方式会达到教学内容更直观、更能突出课程的重点、吸引学生的注意力、激发学生的学习兴趣、扩充知识量等效果。但这些并没有从根本上改变传统的讲课方式,即知识单向传授过程中存在的以传授知识、灌输知识为主的显著缺点。

首创于哈福大学的案例教学法被界定为:一种教师和学生共同参与,针对实际的案例问题进行讨论的教学方法[7]。由于案例教学不再一味强调教师在教学过程中的本位思想,而是将学生的主体性及探索性也纳入到教学过程中来,学生通过参与针对实际案例问题开展的学习讨论,创造力及解决实际问题的能力得到发展,从而达到培养应用型人才之目的。

1.1 面向对象程序设计教学案例设计

案例教学作为一种教学方法,应用于面向对象程序设计的教学过程中时,教师要充分考虑将让学生重点认知理解的课程重点内容引入解决实际问题的案例中来,例如,案例中要包含类和对象、指针及动态内存管理、继承与派生、多态性等内容。除此之外,教师还要引导学生主动思考,积极参与案例问题的设计与实现过程,因此教师在准备案例时除了要有明确的认知或者体验及理解的目标之外,还要考虑案例的实用及趣味性,从而激发学生的学习兴趣,促使学生由被动接受知识变主动学习思考[7]。现将在多年的教学实践过程中形成的几个面向对象程序设计的成功典型教学案例介绍如下:

1)为了学习类的定义及对象的使用,设计了饲养电子宠物猫案例,此案例集成了面向对象程序设计中的抽象与封装特性。在案例的分析及设计过程中采用测试驱动的设计方法,渐进式的增加宠物猫类的构造函数及体现宠物猫行为特征的成员函数并进行测试,使学生循序渐进的去体验对宠物猫的属性及行为特征进行抽象与封装的效果,从而领会面向对象程序设计中的相关思想。

2)动态内存管理技术一直是面向对象程序设计课程中的难点,为了使学生理解此技术的同时更深入的认识面向对象中的类与对象,设计了编写字符串类的案例。此案例集成了构造函数、拷贝构造函数、析构函数、运算符重载、浅拷贝和深拷贝等知识点。学生通过参与案例的分析、设计及测试过程理解掌握集成的各个知识点同时,理解案例类中封装的指针成员在动态内存管理中的作用。通过此案例的学习,学生能够初步领略C++集成开发环境的UI库(如Visual C++的MFC)背后隐藏的智慧,并进一步体验封装机制带来的优点。

3)为了增加案例的趣味性。一是将公有继承、基类及派生类的定义等知识点集成在一个诙谐幽默的校园故事案例中,学生通过参与案例中person类、student类及teacher类的分析、设计及测试过程轻松掌握面向对象程序设计中继承的思想。二是将继承、抽象类、虚函数及运行时多态等知识点集成于一个交互式绘图程序案例,让学生以一种可视化的方式来辅助理解面向对象程序设计中的虚函数作用及运行时多态的实现机制。

1.2 案例教学的成效及不足之处

以上案例教学的设计目标重点侧重于面向对象核心思想的理解,但在教学尤其是实践教学的实施过程中发现有些同学,尤其是编程基础欠缺的同学掌握起来非常困难。于是造成只有基础知识掌握好的那部分同学能参与案例的分析与设计过程中来,达到了应用面向对象思想分析问题和解决实际问题的教学目标,而基础差的那部分同学则只是将其它同学或者教师最终讲解的解决方案上机测试一下,这样“囫囵吞枣”式的案例教学效果自然很差。最终的结果是学生两极分化严重,为了改变这一状况,滨州学院信息工程系的教师又尝试将任务驱动教学法结合进来。

2 任务驱动教学法在面向对象程序设计中的应用

任务驱动教学法是一种能够很好应用于实验、实践等教学内容的教学方法,以富有趣味性并能够激发学生学习动机与好奇心的情景为基础,以与教学内容紧密结合的任务为载体,使学习者在完成特定任务的过程中获得知识与技能的一种教学方法[8]。面向对象程序设计是一门实践性很强的课程,学生需要在实验环节去掌握如何将面向对象的程序设计方法及思想应用于实际的程序设计开发过程,逐步培养和提高学生灵活应用所学理论知识去分析问题和解决问题的能力。

2.1引入任务驱动教学法的面向对象程序设计教学过程

首先,教师要设计好任务内容,任务内容一般为课堂教学中的新知识与教学案例分割细化后的某一测试功能的结合。例如,在学习类的定义及对象的使用时,仅就构造函数这一知识点,教师在课堂教学的理论讲完后就可布置学生的一项实践课任务为:在完成宠物猫案例的属性封装后,测试构造函数定义前后的宠物猫对象在计算机内存中占有的存储空间大小及存储空间中的内容是什么,并说明原因。其次,在任务的具体实施过程中,教师在理论课讲授完新知识后就将任务布置下去,要求学生课下思考后在上机实验课上完成任务,这就督促学生养成课后复习,课前预习的好习惯。在学生上机实践的过程中教师一方面要加强过程监控,比如抽查部分同学的课前准备情况,另一方面教师可以根据学生上机完成任务的情况作有针对性的辅导讲解。

2.2 将任务驱动教学法引入面向对象程序设计教学中的好处

将任务驱动教学法引入面向对象程序设计的教学过程中来后,由于每节课所授新知识有限,因而结合分解后案例形成的任务较小,一般也不难,学生能在上机实验课内当堂完成,符合人们的认知特点。再者,将每一章节的基础知识及关键思想讲授结束后,再结合设计好的若干个小到中等任务的实施帮助学生去理解消化这些知识及思想。这样一来,不仅有利于学生主动学习习惯的养成,更使学生在学习新知识的同时逐步去领会教学案例中集成的面向对象的核心思想,进而有效地激发学生的学习潜能及创新精神。

3 总结

面向对象程序设计是一门重要的编程基础课程,其教学目标是让学生在理解和掌握面向对象程序设计的基本思想及基本概念基础上培养和提高学生应用面向对象程序设计方法及思想解决实际问题能力[1]。为了达到以上目标,在教学过程中本着先易后难的原则,先利用任务驱动法将面向对象程序设计的基础知识点与案例分割细化的某个功能相结合形成每一次上机实验课的任务,而将某一阶段的任务整合后再实施案例教学,学生将会更易领会案例中蕴含的设计思想及方法。同时,在面向对象程序设计教学过程中应用任务驱动法和案例教学法,学生的主观能动性大大加强,学生在教学过程中的主体地位有所加强,逐步培养和提高了学生主动学习、主动思考及团结协作的能力,为学生以后的学习研究及实践应用打下良好的基础。 参考文献:

[1] 郑莉,董渊,张瑞丰.C++语言程序设计 [M].4版.北京:清华大学出版社,2010.

[2] 黄璐,于红,李向军,等.C 语言程序设计课程教材建设研究[J].吉林省教育学院学,2013,29(3):92-93.

[3] 张麟华,孔令德,杨慧炯.面向图形图像处理的C++课程案例设计[J].计算机教育,2013(4):88-91.

[4] 胡明晓,刘海霞,励龙昌.程序设计类课程的层次化教学模式研究与实践[J].计算机时,2013(3):58-61.

[5] 孟繁军,刘东升,张丽萍,等. 程序设计基础教学策略的实践研究[J].内蒙古师范大学学报(教育科学版), 2013,26(3):126-129.

[6] 何珍文,郑祖芳,张志庭,等.面向对象程序设计实践教学研究[J].电脑知识与技术, 2013(9):5687-5696.

[7] 邵士权.我国高等学校教学方法创新研究[D].武汉:华中科技大学博士学位论文,2011.

[8] 郭绍青.任务驱动式教学法的内涵[J].中国电化教育,2006(7):57-59.

上一篇:广播风暴产生的影响及预防措施 下一篇:基于粒度计算的覆盖算法在文本挖掘中的应用研...