高校面向对象课程教学的研究与探索

2015-07-17 23:46白天李曦丁箐石竹
课程教育研究·中 2015年3期
关键词:面向对象课程体系

白天+++李曦+++丁箐+++石竹

【摘要】在分析高校现有面向对象课程教学不足的基础上,通过分析和实践提出了一套符合向对象课程教学规律的课程体系。整个课程体系分为基础、方法和实践三个部分,通过本课程体系的实施,可以帮助学生培养面向对象思维、掌握面向对象分析和设计方法、最终独立进行项目实践。

【关键词】面向对象 课程体系 项目实践

【基金项目】安徽省高等教育振兴计划项目(2013ZDJY005)。

【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2015)03-0004-02

面向对象的理论、方法和实践方面的课程一直作为计算机及软件工程专业重点课程而被列入到各类院校的教学大纲当中。但目前大多数院校的课程开设主要集中在面向对象的实现方面,例如:C++面向对象程序设计。已有很多关于面向对象程序设计课程方面的教改论文被发表[1-2],但却鲜见面向对象课程体系方面的文章,而面向对象程序设计仅是整个面向对象课程体系中关于实现的部分,不能孤立地把其单独开设,而忽略其与面向对象的分析和设计的关系。本文从面向对象整体的角度,对整个面向对象课程体系进行组织和设计,以确保学生在学习完课程体系中的课程后,能够理解面向对象的思想,掌握面向对象的方法,并能熟练运用至少一种面向对象语言和实现技术进行项目实践。

1.现有面向对象课程体系的不足

目前各高校计算机和软件工程专业都开设了面向对象的相关课程,但很多院校的课程却集中在面向对象实现方面,例如:C++面向对象程序设计等课程。通过调查我们发现,大部分学校面向对象课程的设置有以下规律,首先在低年级开始基础的程序设计课程,例如C语言程序设计,然后在高年级开设面向对象的程序设计课程。然而通过对我院新入学的软件工程硕士的调查,我们发现虽然在本科阶段开设过面向对象程序设计方面的课程,但大部分学生并不能很好地运用面向对象技术进行实际的软件开发,尤其是对面向对象的思想无法很好地理解,例如:当我们让学生阐述什么是面向对象中的多态性时,大部分学生必须结合具体C++或Java语句来说明如何实现,而不能从本质上阐述什么是多态。许多学生还是在用面向过程的思想来分析和解决问题,在他们看来C++和C的区别仅是语法上不一样。例如:C++没有函数的概念,但很多学生却认为类中方法和C语言中函数是等同概念。究其原因,主要是在本科阶段的课程设置割裂了面向对象分析、设计和实现三者间的关系,仅教会学生运用面向对象语言和技术进行实现,却忽略了只有在面向对象分析和设计的基础上,才能进行面向对象的实现,没有面向对象分析和设计的学习,学生无法从根本上理解和运用面向对象语言进行实现。

我们经常用以下问题来测试学生是否真正领会了面向对象的思想,测试题目是“在面向对象中是先有对象还是先有类”。大部分学生回答先有类后有对象,因为在他们学习的面向对象课程中都是先定义类,然后实例化对象。但面向对象的核心思想却是如何从现实世界的对象中抽象出类,在抽象的过程中形成抽象的层次树,从而引出了继承、泛化和多态等概念。因此,必须对现有面向对象课程体系进行调整,让学生从整体上理解面向对象的思想、方法和实现之间关系,才能帮助他们最终掌握面向对象软件开发技术。

2.建议的面向对象课程体系

面向对象包含分析、设计和实现三个紧密联系的部分,我们不能把它们割裂开来进行课程组织。面向对象本质上是一种思想,是一种对软件世界总的根本的看法,并在此基础上诞生了分析和设计方法,以及具体实现技术,因此我们建议在开设实现技术类课程前,必须要对学生现有的软件开发思想进行改造,让学生能够运用面向对象的思想看待整个软件世界。我们建议面向对象课程体系应该分为三个模块,即面向对象基础,面向对象方法和面向对象实现。每个模块又包括若干课程,并且三个模块和若干课程的开设次序要满足图1的箭头关系。

图1 建议的面向对象课程体系

2.1 面向对象基础

由于学生在多年的学习训练中主要运用的是面向过程的思维方法,大部分学生在学习面向对象课程时最大的障碍就是思维的转变。本模块主要是帮助学生从面向过程的思维向面向对象的思维转变[3]。整个模块包含两部分,我们建议首先在低年级开设一至两门面向过程的课程(例如,c语言程序设计,pascal 程序设计)来引导新生进入到程序设计的世界,因为这些课程本身就是基于面向过程的思维,所以不存在学习上的障碍。

当学生掌握了一至两门面向过程的开发技术后,下一步要解决的是思维上的转变。我们建议开设面向对象思维方法的课程(或在相关课程中增加此部分内容)来帮助学生实现从面向过程的思维方法向面向对象思维方法的转变。此部分的课程目标如下:

?誗了解面向过程和面向对象思想的本质及两种思维方法的异同。

?誗了解结构化方法和面向对象方法的异同。

?誗了解抽象层次树及如何运用归纳法从现实世界中抽象出层次树

?誗能够脱离具体的实现语言来理解继承、泛化及多态等概念。

?誗理解类和对象的关系。

在具体的实践方面,我们建议对本部分内容采用灵活的配置,可以单独开设课程,也可以把上述内容整合到其它相关课程中去。例如可以把面向过程的程序设计的内容集成到计算机基础课程中去,把面向对象的思维方法集成到软件工程的课程中。

2.2 面向对象方法

当学生能够运用面向对象的思维来看待客观世界后,下一步不应立刻开设面向对象程序实现课程。由于面向对象实践过程本质上是面向对象分析和设计方案向实现代码转换的过程,因此要优先开设面向对象分析和设计方面的课程。我们建议在面向对象方法这个模块应包含分析、设计和建模[4]三块内容。

(1)面向对象分析课程的目标包括:

?誗掌握面向对象分析方法

?誗了解结构化分析方法和面向对象分析方法的异同。

?誗理解面向对象分析建模的方法和步骤。

?誗理解面向对象分析模型的构成。

?誗理解面向对象的软件规格化说明的构成。

(2)面向对象设计的课程目标包括:

?誗掌握面向对象的设计方法

?誗了解结构化设计方法和面向对象设计方法的异同。

?誗理解面向对象设计建模的方法和步骤。

?誗理解面向对象设计模型的构成。

?誗理解面向对象设计文档的构成。

(3)面向对象建模的课程目标包括:

?誗掌握面向对象的建模方法

?誗掌握统一建模语言UML的主要构成和相关语法。

?誗会用UML构建分析模型

?誗会用UML构建设计模型

同样在具体的实践方面,既可对上面的内容单独开课,也可把上述内容整合到相关课程中去。例如可开设基于面向对象的软件需求工程、面向对象的UML建模和软件设计模式等课程来专门讲述上述内容,也可把此部分内容集成到软件工程、软件体系结构设计等课程中,这样可方便不同学生的选课需求。

2.3 面向对象实现

本部分内容包括面向对象的程序设计和面向对象的项目实践两个部分。目前大部分院校都已开设了面向对象程序设计方面的课程,并已有不少关于此方面的教改文章探讨具体的课程教学实施。但我们认为除了面向对象程序设计课程外,还应重点关注的是面向对象的项目实践。因为上述所有课程都是为了帮助学生把面向对象方法和技术运用到实际的项目实践中去,这也是大部分软件公司最需要的技能。

面向对象项目实践的课程应目标包括如下内容:

?誗能够理解面向对象文档和UML模型。

?誗会用面向对象的分析方法对实际项目进行分析。

?誗会用面向对象的设计方法对实际项目进行体系结构设计和模块设计。

?誗会用UML对实际项目进行需求建模。

?誗会用UML对实际项目进行设计建模。

?誗会用面向对象语言和技术进行实现。

在具体实施时,可以针对本部分内容单独开设课程也可和具体的项目实训结合起来。例如中科大软件学院工程实验系列课程中就包含面向对象的项目实践课程(.Net应用开发、IOS应用开发、J2EE框架应用等),同时学生也可以通过贯穿整个学年的工程实践项目来完成面向对象项目实践[5]。

3.结语

本文就面向对象课程体系方面展开讨论和探索,建议了一套符合面向对象人才培养规律的课程体系。整个课程体系分为基础、方法和实践三个部分。本课程体系可以帮助学生培养面向对象的思维、掌握面向对象的分析和设计方法、最终独立进行项目实践。期望我们中科大软件学院软件工程教研室在面向对象教学方面的探索和实践能为兄弟院校提供有效的参考素材。

参考文献:

[1]刘旭红,伶俐鹃. 面向对象程序设计双语教学的探索与实践[J]. 教育理论与实践,2007(27):77-78.

[2]刘群,李坚.C++程序设计实验教学中若干问题探讨[J].实验科学与技术.2010(06).

[3]朱立平,林志英. 从面向过程到面向对象思维方式的教学引导[J]. 计算机教育, 2014(5):59-63.

[4]刘灿,王辉.UML技术与应用课程教学方法初探[J].科技信息.2010(30).

[5]丁箐,李曦,姜明,白天.软件学院软件工程硕士开放式教学体系研究[J]. 计算机教育, 2009(13):172-174.

猜你喜欢
面向对象课程体系
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
以创新课程体系引领学生发展
民法课程体系的改进和完善思路*——以中国政法大学的民法课程体系为例
基于面向对象的Office评测系统的分析
峰丛洼地农作物面向对象信息提取规则集
加强青少年中医传统文化教育的必要性及其课程体系构建
面向对象的SoS体系结构建模方法及应用
论普通高校国防教育课程体系的构建
面向对象信息提取中影像分割参数的选择