摘要:针对面向对象程序设计课程提出了基于实训项目的教学方法,文章首先分析了该课程的现状,然后阐述了基于实训项目开展教学的必要性,重点讨论了教学目标、教学内容设计、课堂实训项目和学生实训项目安排等问题。
关键词:面向对象程序设计;实训项目;教学方法
中图分类号:G642 文献标识码:B
面向对象程序设计是针对计算机相关专业开设的一门程序设计课程,这门课程的目的是向学生介绍面向对象程序设计的思想、理论、方法和技术。本文针对这门课程提出了基于实训项目的教学方法,并详细地阐述了其教学目标、内容设计和实训项目安排等问题。
1课程现状
据笔者调查统计,面向对象程序设计在各高校主要存在以下三种教学形式。
(1) 以计算机语言为主,侧重于介绍面向对象程序设计的思想、概念、理论,类的设计和实现,以及数据封装、继承、多态性等有关OOP的机制,如文献[2]、[4]。采用的语言主要有C++、Java。
(2) 以开发工具为主,侧重于介绍面向对象开发工具的使用和相关知识,包括标准控件的使用、软件开发模式和技巧等,如文献[3]。采用的开发工具主要有VFP、VB、VC等。
(3) 以介绍面向对象的系统分析与设计方法为主,包括相关软件工具的使用,如UML、Rational Rose等。
笔者在五年的教学过程中先是采用第一种方式教学,在教学时发现由于面向对象程序设计中概念太多,如果没有项目经验,学生很难理解。后来笔者也尝试着按第二种方式教学,但因为开发工具太强大,在有限的课时内无法完整地介绍完一个开发工具,并且学生总是热衷于开发一些简单的项目,而忽视了面向对象理论的掌握。在教学中,笔者逐渐意识到,通过实训项目将面向对象理论知识和面向对象开发工具的使用有机地串接起来,是一种比较好的教学方法。这就是本文将要探讨的基于实训项目的教学方法。
2基于实训项目开展教学的必要性
面向对象程序设计课程中的实训项目,是指在具体的开发工具和编程环境中,从需求分析入手,经过功能设计、算法设计、程序设计、功能测试等环节,通过团队协作完成具体的软件项目,巩固课程知识和学习效果,提过软件开发实践能力。
实训项目在规模和功能上比一般的实验项目要大,周期也更长。实训项目完全模拟实际软件项目开发过程,通过2~4人的团队完成一个较大规模的项目。学生在实训项目中积累的软件开发能力和经验是实验项目无法达到的。
在面向对象程序设计课程中可以也完全有必要基于实训项目来开展教学,原因主要如下:
(1) 这是为实现应用型和技术型人才培养目标所必需的。为实现这个培养目标,相关课程,特别是实践性很强的课程,应该适应社会和用人单位对人才的需求而不断完善课程的建设,以提高学生的实践能力。通过实训项目教学,学生掌握的理论知识、开发工具使用技巧、软件开发能力和经验可以直接应用在今后的工作岗位上。
(2) 这是由课程性质决定的。面向对象理论中的思想、概念等都比较抽象,只有结合具体的、较大规模的软件项目,学生才能较好地理解和掌握面向对象理论。另外,基于实训项目开展教学能在较大程度上避免理论知识的枯燥性,激发学生的学习积极性。在实训项目中,学生可以直接运用理论知识来指导实训项目,并可以直观地观察到相关概念、思想在实训项目中的体现。
(3) 通过实训项目中的团队协作,学生可以互相交流、学习,这种和谐的氛围能提高学生的学习效率。
(4) 通过实训项目,师生之间有更多的交流机会,这对教学改革中新型师生关系建立等方面起到了很大的推动作用。
3基于实训项目的课程教学
本文接下来从教学目标、教学内容安排、课堂实训项目教学、学生实训项目安排及考核等方面来阐述基于实训项目的课程教学。
3.1教学目标
基于实训项目的教学方法,其教学目标为:
使学生深入理解面向对象的编程思想、概念和方法,掌握面向对象程序设计中数据封装、继承、多态性等等有关OOP的机制,掌握类的设计方法,并能在实际的Windows编程中加以灵活运用。
掌握Windows编程基础知识,熟练掌握VC开发工具,掌握基于API函数和基于MFC的面向对象及可视化程序设计方法。
运用面向对象程序设计理论进行软件开发,能设计开发出一个中小型综合性的Windows程序项目。
3.2教学内容设计
为了适应基于实训项目的教学方法,笔者重新设计了课程的教学内容,包括课堂教学内容和实验教学内容。
(1) 课堂教学内容分为三部分内容,如表1所示。每部分内容安排如下。
第一部分是基于API函数的可视化程序设计。笔者选择从API函数入手,向学生介绍Windows编程基础知识及VC开发工具使用,而不是直接介绍MFC,原因有两个:① 学生已经先修了程序设计基础这门课程,已经对函数设计和使用有一定经验了,而基于API函数的可视化程序设计,其基本模块也是函数;② 先学API函数,这样学生更容易理解后续将介绍到的MFC库中类的实现及类的成员函数使用。
第二部分是面向对象程序设计。这部分内容向学生介绍面向对象程序设计思想、概念和理论,类的概念和设计,包括数据封装、继承、多态性等等有关OOP的机制。
第三部分是基于MFC的面向对象与可视化程序设计,向学生介绍强大的MFC开发工具,包括标准控件的使用和视图/文档结构。
(2) 实验教学内容安排。
实验教学的目的是:① 通过实验指导、提示、预备知识、演示等形式引导学生独立完成类的声明及定义、测试和调试;② 通过任务分解、逐步实现等手段,使得学生循序渐进地掌握面向对象及可视化程序设计方法;③ 从很小规模的项目开始,慢慢扩大项目的规模,使学生在潜移默化中消除对较大规模项目的畏惧感;④ 将实训项目中应用到的知识分解到众多的实验报告中,使得学生通过完成实验报告后具备了独立完成实训项目的能力。
为了达到这些教学目的,笔者设计了许多新颖的实验任务和项目:
改写课堂上讲过的例题程序,实现指定的功能。
模仿例题程序,实现类似的功能。
从分析程序执行结果,过渡到分析程序执行过程,再过渡到调试程序,逐步掌握调试程序这个关键技能。
给出功能较少、规模较小的项目,要求学生自行扩充项目的功能并实现。
给出一个有错误的项目,或者功能有缺陷的项目,要求学生改进。
独立完成一个较小规模的项目。
给出类的声明,完成类的定义;完成类的完整设计和测试、调试。
通过MSDN查找某个函数,并将英文解释翻译成中文,强化MSDN帮助系统的使用。
(3) 课堂实训项目教学及注意事项
如表1所示,在教学中,笔者通过4个课堂实训项目将课程知识有机地连接起来。设置课堂实训项目的目的是:① 通过这些实训项目,综合运用和演示课程知识和编程方法;② 在课堂上向学生介绍并演示软件项目开发方法。
课堂实训项目的选择主要考虑了以下原则:
覆盖课程的主要知识点,并有一定的提高;
规模和难度适中,不至于使学生望而却步;
实用性强,不能是抽象的、没有实用价值的项目;
项目中采用了一些典型的编程技术或模式,能在其他项目中推广;
有一定的趣味性,能吸引学生。
根据以上原则,笔者精选了4个课堂实训项目,这4个实训项目涉及到的知识如表2所示。
在安排课堂实训项目要注意以下事项:
由于4个课堂实训项目占用了相当一部分课时,必然会造成很多知识无法在课堂上讲授。笔者采取的策略是:课堂上只介绍一些基础的、实用的知识,对于适合以项目演示来讲解的知识则在课堂实训项目中讲解。
因为这些课堂实训项目比实验报告中的项目规模大得多,学生一时难以理解和接受,所以关键在于较好地把握课堂实训项目的难度,并对这些项目进行合理的分解,循序渐进地向学生讲述需求分析、软件设计、软件开发过程。
(4) 学生实训项目安排及考核
随着教学的进行,学生将完成3个实训项目,如表1所示。实训项目以分组(1~3人)方式完成。
实训项目的考核采用答辩形式进行:对每组学生,随机抽取一名学生上台答辩,其他组的学生和老师同时对该学生进行评分。笔者所设计的实训项目评分表如表3所示,其中“语言表达”和“回答问题”这两项的评分以上台答辩的这名学生的表现作为评分的依据。
另外,为考核的公平起见,这3个实训项目还增加了“难度系数”的指标,难度系数由老师根据学生提交的实训项目核定,每个小组实训项目的得分为总分乘以难度系数得到。引入难度系数的目的是希望各小组根据自己的能力独立完成一个实训项目。
这种新颖的考核形式和评分内容能充分考察学生在完成实训项目时对面向对象程序设计思想和方法的综合运用能力。
4结束语
本文针对面向对象程序设计课程提出了基于实训项目的教学方法,这种教学方法通过课堂实训项目将课程知识有效地组织起来,并通过学生实训项目为学生提供软件项目实训的机会。基于实训项目的教学方法能极大地激发学生学习积极性并充分训练学生的软件开发能力。
参考文献:
[1] 王桂平,冯睿. 以在线实践为导向的程序设计课程教学新思路[J]. 计算机教育,2008(22).
[2] 张剑波,王婷. 面向对象程序设计课程教学改革与实践[J]. 黑龙江教育(高教研究与评估),2008(11).
[3] 周江,李兆江,李佩武,等. 面向对象程序设计课程实验教学改革探讨[J]. 实验科学与技术,2008(2).
[4] 那一沙,吴子东,杜修平. 基于建构主义的面向对象程序设计C++教学[J]. 现代远距离教育,2008(4).