标题 | 案例教学法在面向对象程序设计课程中的应用 |
范文 | 李建伏 沈中林 衡红军 摘要:面向对象程序设计的传统教育模式使得学生与企业真实需求之间存在巨大差异。案例教学法理论上能在一定程度上解决理论与实际衔接的问题,但其实施效果却取决于所采用的案例。结合我校的行业背景,从构思实际民航信息系统中涉及的工程问题出发,研究案例教学法在面向对象程序设计课程中的应用,并分析了其存在的问题。 关键词:面向对象程序设计;案例教学法;民航特色 中图分类号:TP311 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.03.010 本文著录格式:李建伏,沈中林,衡红军,案例教学法在面向对象程序设计课程中的应用[J],软件,2015,36(3):48-51 0.引言 面向对象程序设计语言c++具有更高的代码可重用性、可扩充性和易维护等特点,是开发大型软件的主流方法。市场对c++高级应用人才的需求也是非常强劲。从国际发展情况下,中国从事计算机软件开发的人才远远低于发达国家,而近几年难就业一直笼罩着计算机专业。一面是就业难,一面又是企业招人难,出现这种矛盾的一个重要原因是传统教育模式与企业真实需求之间存在巨大差异。 面向对象程序设计的学习是非常需要挑战性的,需要学生将所学理论知识内化为实际的编程处理问题的能力。加上面向对象的程序设计方法与人们日常求解问题所采取的思路不同,其中涉及的感念晦涩难懂。因此,传统教学中往往花费大量的时间通过一个个短小精悍的例子来让学生体会每个知识点的用法。传统教学法过分强调每个知识点的用法,却忽略了学生思维方式的培养。而思维方式的培养相对于零散知识点的用法要重要的多。因此,传统的这种本末倒置的教学方法导致的最终结果就是产生了精通每个知识点,但不知道如何运用这些知识点求解问题的“温室里的学生”。如何根据面向对象程序设计课程的特点,设计相应的教学方法以培养学生的面向对象的思维方式和提高学生的实践工程能力是面向对象程序课程教学的一个难题。 目前各高校对面向对象程序设计课程进行了大量的改革,一般的思路是加强实践教学环节建设,如近年来倡导的案例教学。理论上案例教学法能在一定程度上解决理论与实际衔接的问题,但是其实施效果取决于案例的选择。 案例的选择要考虑学生的需求,只有满足学生需求的案例才能真正激发学生的学习热情从而达到教学效果。随着民航业信息化进程的不断推进,民航业对软件开发人员的需求也在逐年增加。作为民航大学的计算机学院的学生,将来会有大部分进入民航行业。所以,学生渴望了解民航,了解自己专业在民航领域所起的作用。而目前课程上的教学案例都是通用的案例,与民航行业脱节。 因此,针对我院的行业背景,根据实际民航信息系统中涉及的工程问题构造案例,采用案例教学法组织教学以提高面向对象程序设计课程的教学质量和提升学生工程实践能力。 1.改革措施 1.1案例的选择 近年来,随着计算机和网络技术的广泛应用,人们的衣食住行都离不开网络。城市交通网络的不断完善,使得从出发地到目得地有多种公交换乘方案可供选择,为人们出行带来了便利。另一方面,选择多了,人们往往不知道该选择哪一种换乘方案。因此需要希望由计算机能自动计算出满足出行者需要的换乘方案。因此,出现了各种地图服务网站,如百度地图。各种地图服务网站给人们带来了巨大的便利,使得出行者无论到城市的哪里都能做到心中有数。地图导航已经是人们离不开的工具了,学生也不例外,不管他们是外出还是在本市出行,都会不自觉地到地图服务网站查看一下。在国内,铁路总公司也在他们的12306网站上提供了国内到各个地方的乘坐火车的换乘方案。随着近年来民航业的快速发展,航线网络也得到了快速发展。人们乘坐飞机出行也会有多种可行方案。但是,现在航班换乘方案查不到。由于航班是由各个独立的航空公司自行经营,同行是冤家,没有一个航空公司会将其竞争对手的换乘方案提供给旅客。因此,在航空公司网站查到的只是某个航空公司的航班换乘。因此,应该由一个第三方中立机构来提供基于航班换乘的地图服务。但是目前,我国还没有这样的机构来开发出这样的航线推荐系统。正是目前国内民航研究的一个热点问题。作为中国民航大学的计算机专业的学生,有义务来开发这样的系统。如果学生真的开发出了这样的系统,他们该有多么自豪。 因此,我们选择的案例为基于航线网络的出行方案推荐系统设计。 1.2案例的构造 根据课程的知识点分布情况,首先将基于航线网络的出行方案推荐系统的设计简化为一个简单的问题,然后运用新的知识点逐渐丰富系统功能,直至达到系统目标。具体如下。 面向对象程序设计整体课程主要包括类的三大特性,即封装性、继承性和多态性。在介绍类的封装性时主要涉及类的定义,类的成员函数的写法,构造函数、析构函数等知识点,类的继承性包括派生类的定义,派生类访问规则、赋值兼容规则等知识点,类的多态性(运算符重载、虚函数)。 在介绍类的封装性时以航线网络的定义及使用为案例,即案例一。为了简单起见,此时的航线网络只包括机场的物理位置,不体现航班的时刻表信息,即如果两个城市之间有直达的航班,则与两个城市对应的节点上存在一条边。通过此类的设计,可以让学生体会类的定义。当在main函数中,通过调用该类某对象的path函数得到是两个机场之间的路径,而不是具体的航班换乘方案。因此,进一步将问题细化。 当课程进行到类的继承性时,在案例一中定义的一般航线网络的基础上派生出一个特殊类,即增加航班的出发时刻,以及到下一个城市所经历的时间(案例二)。进而,以path函数为例说明虚函数的用法,以运算符“<<”的重载函数为例说明运算符重载函数的用法。 1.3组织实施 (1)在介绍完面向对象的基本概念之后,首先由教师提出设计任务——基于航线网络的出行方案推荐系统设计。仔细介绍本项研究的目的意义,以及实现目标。并向学生演示具有类似功能的网站。在这个内容实施时,除了把设计目标介绍清楚外,还应该多用一些“鼓动”性的话,促使学生产生跃跃欲试、摩拳擦掌的热情。 (2)教师由简单到容易,逐步分解任务,将整体任务划分为一个个体现面向对象程序设计方法中知识点的小任务,通过介绍这些小任务的完成方案来介绍其中的每个知识点。这样整个任务就是一串珍珠项链,其中的每个知识点就是其中的每个珍珠。比如在定义一般航线网络的定义时,首先问同学一个航线网络该有什么特征,然后介绍怎么定义类来体现航线网络的这些特征。通过这种方式,学生学到的不再是枯燥的语法知识,而更重要的是在面临具体问题时怎么设计类。 (3)由于课堂上的时间有限,由于课堂上除了介绍知识点之外,还需要花费很多时间来完成实际任务的求解。因此,将一些不太影响全局的知识留给同学课下通过看书、上网查阅资料来完成。如成员函数的各种定义方法等。 (4)如果只是在课堂上老师帮助设计,没有学生的实际参与,随着时间的流逝,学生的设计热情就会下降。因此,课下鼓励同学自己来丰富类,给类增添一些必要的属性及功能。等到学期末时,通过评比,选出一些功能完善、可用性强、输出美化的作品,发布到本课程的教学管理平台上展出。 2.实施效果评价 通过采用上述案例教学方法,取得的效果较为明显,主要包括以下几方面: (1)班级不及格率下降。在采用上述教学法之后,班级不及格率明显下降,由原来的20%下降到15%; (2)学生的学习主动性、学习的热情提高了。经常有学生与教师探讨他们在网上发现的、而课本上没有的知识点,这说明学生不再是纯粹的接受知识。 (3)学生的工程能力能够得到一定的锻炼。通过这样一个工程性的教学案例,学生学到的不在是一个个孤立的知识点,而是面对实际问题时的设计思路。 3.存在的问题 在面向对象程序课程中实施案例教学法时遇到了下列问题: (1)基础差的同学容易自暴自弃。面向对象程序设计课程是建立在上一学期程序设计基础课程之上的而第二个学期的面向对成程序设计是建立在第一学期学习的基础之上的。相对于传统的教学方法,案例教学法对程序设计基本理论的介绍要少得多。如果第一学期学生的基础差,则这些同学就容易放弃。 (2)花费更多的时间。在采用案例教学法时需要花费一定的时间介绍案例、分析案例。因此会花费更多的时间。 (3)考试不合理。目前的考试更多的是对知识点的考核,并没有体现学生的设计能力。因此,考试结果不能很好的体现学生的学习效果。 (4)案例需要与时俱进。只有满足时代特征的案例才能吸引学生。因此,需要教师了解学术领域的前沿,不断地设计新的教学案例。 4.结束语 本文针对我校的行业背景,从构思实际民航信息系统中涉及的工程问题出发,设计相应的案例,研究案例教学法在面向对象程序设计课程的应用。实践证明,该教学方法能有效激发学习者的学习兴趣和实践积极性,在较短的学时内能完成原定的教学任务,显著提高课程的教学效果和质量。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。