“面向对象程序设计”课程实践教学改革探索

2009-12-11 07:27李秉璋景征骏黄海军
计算机教育 2009年18期
关键词:面向对象精品课程程序设计

李秉璋 罗 烨 景征骏 黄海军

摘要:“面向对象程序设计”是计算机及相关专业重要的专业课。本文在分析课程实践环节中存在的问题后,从认识论的角度出发,论述了课程设计的目的,重点阐述了旨在提高学生实践能力的课程改革与探索的内容、方法、手段,以及课程实践环节改革后收到的效果。

关键词:面向对象;程序设计;实践教学;精品课程

中图分类号:G642 文献标识码:B

1引言

“面向对象程序设计”课程是高校计算机科学与技术专业的一门重要的专业基础课。也是“数据结构”、“编译原理”等专业课的先修课程,在整个专业的教学体系中占有非常重要的地位。该课程的授课对象是大学一年级的学生,他们有一定的逻辑思维能力,基本掌握面向过程的程序设计方法。但对面向对象思想方法的抽象性和复杂性,面向对象语言C++本身的高难度,使之成为一门比较难以学习和掌握的课程,学生学习效果不佳,应用能力不强。因此如何提高学生面向对象技术的应用能力,提高教学效果是本课程教学改革主要探索研究的内容。

“面向对象程序设计”在2007年被列为我校精品课程,课程建设目标之一就是分析课程现状,找出问题结症,改革实践教学方法、手段、内容,切实提高学生的“动手能力”——运用面向对象技术解决实际问题的能力。

2存在问题

我校计算机科学与技术专业从2002年开始讲授面向对象语言——C++。多年的教学中,主要存在着以下问题:

(1) 学生有面向过程的程序设计能力,但较难接受面向对象的思想和方法,往往在C++的开发环境中,设计出纯面向过程的程序。

(2) 缺乏归纳、总结能力,独立分析问题、解决问题的能力。特别缺乏大程序的设计、调试能力。

(3) 现有的实验教材和指导书中内容过多的验证性实验,严重地影响了学生自主学习、创新提高能力的培养。课程前后实验缺乏必要联系,缺少计算机解题的逻辑思维训练。这些问题势必降低了课程的教学效果,影响了学生应用能力和创新能力的提高。

3实践教学目的

站在认识论的角度看,面向对象是一种认识客观世界的认知方法学,同时也是一种解决问题的思维模式。面向对象理论体系将对象作为需求分析和系统设计的核心和主体,在此基础上,引用科学方法论中的分类思想,将相似的一组对象抽象为类,采用各种手段将相似的类组织起来,实现问题空间到解空间的映射。课程教学中存在的上述问题,体现在学生身上,根源在教学上。我们的实践教学不能再仅仅教会学生如何套用语言的语法,依样画葫芦验证教材和课堂讲课内容,而是应该包括如下两个方面的教学目的。

3.1提高学生对面向对象思想、方法的理解,全面掌握面向对象的技术,并熟练应用之

作为面向对象程序设计这门课程,它有着自身完备的知识体系以及教学线索。其中蕴涵这样一条知识主线:提出问题→建立类与对象→运用对象解决问题→对对象的改进、进化→建立继承机制→产生类族→建立多态机制→类的复用→类的模版技术→对象对消息的响应机制→对象的异常处理机制。课程的教学任务就是要不断地灌输上述知识主线,实践教学的任务就是将现实世界的类和对象的概念源源不断地引入到实验中,用面向对象的语言去描述,使用对象的方法去解决实际问题。

3.2对课程内容总结归纳,使学生理解C++语言内在规律,提高自主创新能力

C++中的知识点、规则众多、繁杂,平时单个实验只能包含一至两个知识点。实践教学要在单个简单实验的基础上,适时进行总结、归纳,揭示规律,从而提高学生自主学习、提高创新的能力。例如在掌握了类的构造函数、派生类和组合类的构造函数、复制构造函数、深复制和浅复制等知识点后,要求学生总结异同点,找出内在规律,并在课外实验题中将这些知识点串联起来,形成一个综合性、设计性实验。

4改革与探索

在课程的教学中坚持实践教学不断线,将实践教学贯穿于课堂内外。一方面,教师要发挥自己的主导作用,想方设法去激发学生的学习热情;另一方面,根据学生能力的不同,充分调动学生的主观能动性,挖掘他们学习上的潜力,让他们感受自己独立解决问题的乐趣,提高他们的动手能力和分析问题、解决问题的能力。几年来,我们对实践教学进行了以下几个方面的改革。

4.1建立三个层次的课程实践教学结构,重视应用能力的培养

C++知识体系庞大,内容繁杂,教学大纲规定要求掌握的知识点、技术也很多。为此我们建立了由三个层次实验内容组成的实践教学结构,着力提升所有学生的语言应用能力。这三个层次分别是:

(1) 课内实验,该类实验主要涉及课程的相关知识点。实验目的是使学生理解、巩固并掌握理论教学的内容。要求所有学生都必须完成。

(2) 课程设计,主要是设计与开发性实验。该类实验以“任务”或“课题”形式提出实验要求和具体的实验结果,学生以组为单位进行设计。要求掌握实验所涉及到的知识,通过综合利用这些知识来设计、开发并最终完成课程设计项目。

(3) 各类科研,对部分学习能力强的学生,请他们参与课外研究或教师科研,重在培养学生的研究能力与创新意识。

4.2改革教学内容,强化面向对象思想方法的传授

传统的语言教学方法总是从面向过程的技术开始讲解,再讲授化面向对象方法。在教学改革中,我们从课程第一节课开始进入“面向对象”的世界,让学生接受面向对象的思想,理解接受面向对象的概念,不断训练学生从客观世界事物中抽象类的能力。例如一般教材是先学习结构,后学习类与对象。我们在教学中相反,先学习类与对象,再涉及结构(学习结构也只是因为后续课程“MFC的应用”中存在结构类型)。学生的第一个实验就是类实验。

4.3重视实验内容的设计,精心设计实验内容

我们发现不少实验指导书的实验内容设计不科学,实验设计缺乏层次性和连续性,只注重单个实验,没有重视前后知识的积累、迁移。验证性实验多于设计性、综合性实验。使得学生实验后的收获也仅是只见树木,不见森林。为此我们结合课程建设目标和专业人才培养方案,精心设计编制了有利于能力培养的实验教材。其中8个实验(见表1)属于第一层次的实践。8个实验涵盖了C++主要技术,在概念、内容上前后紧密衔接,有适度覆盖,后一个实验解决前一个实验中存在的不足。全部实验结束形成一个包含C++主要知识点和技术的简单应用程序。实际教学效果证明,学生通过这样的实验,面向对象程序设计能力大大提高。

同时实验指导书对实验内容进行了拓展和延伸,同时开设了大量的选作实验,使得学生在课外,能根据各自能力、爱好选做,以此来拓展思维,培养创新能力。

在课程结束后,增加了2周“面向对象程序设计”课程设计。这是第二层次的实践。课程设计是一个研究性学习的过程。在指导老师的辅导下,学生2~3人为一组,以项目开发的形式,完成一个包含C++主要技术、功能相对完整的应用程序。要求学生完成相应的项目需求分析、设计、调试、运行,撰写课程设计报告。进一步增强学生独立分析问题、解决问题的能力。

在教学过程中,注意发现学习热情高,创新能力强的学生,及时吸引他们加入教师的科研团队,参与教师的科研课题。组织引导他们参加学校、省市各类学生科研活动、程序设计竞赛等。这就是第三层次的实践。

4.4改进实践教学的考核方法,注重创新能力的培养

首先鼓励学生采用“奇特的”、“五花八门”不同算法进行实验,发挥学生创造性思维,培养学生的创新能力。在成绩评定上,不拘泥于程序是否完全正确,而是更注重是否采用了合理的技术、程序设计是否新颖、独到。事实上不少学生设计的算法很有新意,设计的程序很独特。

在课程设计中则着重考察学生分析问题、解决问题的能力、科研能力和工程能力是否得到锻炼。通过检查课题设计内容,了解学生是否采用了面向对象的主要技术、这些技术的应用是否合理;通过提问了解学生通过课程设计对理论教学中的内容是否有更深的理解和体会,对课程设计中遇到的各类问题采用了什么方法加以解决。

5改革的效果

课程组在“面向对象程序设计”课程教学过程中坚持改革,从教学思路,教学方法、教学内容、考核评价方式等方面不断探索、并不断完善。经过两个学期的考试(实行教考分离)、参加江苏省ACM竞赛、挑战杯比赛、参加教师科研活动等,都取得了较好的成绩。因此,这一教学改革措施得到广大学生的认可。

参考文献:

[1] 李秉璋,徐亚平,罗烨,等. 以提高应用能力为目标进行计算机专业课教学——“面向对象程序设计”教学改革探索[J]. 计算机教育,2006(12):28-30.

[2] 汤亚玲,秦峰. 面向对象程序设计课程教学探究[J]. 安徽工业大学学报:社会科学版,2008,25(6):132-134.

[3] 欧阳津,申秀民. 改革实验教学模式培养创新性人才[J]. 中国大学教育,2008(2):79-80.

[4] 徐光伟,史有群. 培养创新能力的计算机专业实践教学体系探索[J]. 计算机教育,2007(7):7-9.

猜你喜欢
面向对象精品课程程序设计
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
面向对象的计算机导论课程教学
基于Web的科研项目管理系统的设计与实现
高等职业教育国家精品课程建设与应用现状的调查研究
应力波反射法测锚索长度的数据处理软件设计与实现
从面向过程到面向对象思维方式的教学引导
加强精品课程建设 促进教学质量提高