实践教学
发布时间: 2012-10-12 浏览次数: 149

实践教学的设计思想与效果

在编程方面,学生经过大学三年多门专业课程的学习已经掌握了常用的编程语言和编程工具,并具备编程规范的训练,但在分析设计方面比较欠缺。因此,本课程实践教学弱化编程,强调分析设计的能力。

 

为此,课程的实践教学安排了课堂演示、小型Lab、开源项目研讨三部分。训练学生建模工具使用、课程基本理论方法的运用及分析设计交流等能力。其中以开源项目研讨为重点。

 

工具演示

针对大四的学生,学生在前三年课程中或多或少已经接触过一些UML建模工具,但大部分只用了一些简单的功能。所以课程不再强制采用某种工具,而是通过课堂演示以Rational RoseRational Software Architecture工具为主,主要让学生了解工具的功能。同时对有兴趣或工作中要用到此类工具的同学提供IBM培训的操作手册供学生自学基本功能。

这种方法达到了针对不同学生因材施教的效果,受到学生欢迎。

 

小型Lab

 

为了使学生能运用课程基本理论方法,课程布置了一些小型的课后完成的Lab,在助教指导下完成。如:

l         运用Accountability模式开发一个简单的通信录软件,要求能记录各个人员的基本信息,并能记录班委层次关系、学生所加入的社团、室长管理同寝室学生等关系。作为小的练习,具体班委有哪些层次、有哪些社团等可自己示意性地定义一下,不需要考虑得太复杂。界面不作要求,连接规则本次练习不需要考虑。演示添加新的层次关系(比如学生-实验室等)。打分以能否将Accountability模式应用到具体应用,并设计一些演示场景体现Accountability模式的优点为依据。连接规则本次练习不需要考虑。

 

学生反映,通过类似的Lab使得课堂所学的模式理解更深入了,而有些课堂上觉得听懂了的内容,在做Lab时会暴露出新的问题,通过和助教的讨论,进一步加深了理解。实现了课堂初步引导、课后“做中学”,提高了自主学习的能力和兴趣。

 

开源项目研讨

 

开源项目的研讨是本课程实践教学的重点。

我们要求大家在助教的指导下自主选择一个开源项目进行学习研讨。开源项目选取可以参考http://www.open-open.com, http://www.sourceforge.net等开源项目介绍网站,也可以选择其他的开源项目。分析和了解所选的开源项目以及项目被应用的领域和所用技术,结合开源项目设计和完成一个小型的project。通过对国内外开源项目的分析,熟悉开源项目设计思想,了解开源项目设计架构。并且学会使用面向对象的思想对现实中遇到的问题进行建模分析,最终解决现实问题。分析时要突出项目的特色功能,着重分析特色功能的实现,分析时可以结合UML图来表述。

 

通过此举,实现了一举多得:不同学生可以根据自己职业发展学习自己所感兴趣的技术,学得新技术的同时加深了对课程中理论与方法的理解, 获得许多优秀设计的感性经验,通过发现开源项目不足培养质疑精神,通过交流研讨熟悉更多的开源项目,通过交流将课程中所学的建模方法真正用起来,并提高对项目分析设计的交流能力。

 

学生选择了Hibernate,Lucene,Jive,jBPM,Sphinx4,XUL,Struts2,Tapestry,ECLIPSE插件, Spring, Ibatis, JUnit, Flex等进行研讨。从学生研讨过程中所作的阶段性报告以及最终报告看,大部分学生能够深入到开源项目技术细节,有很大的收获。学生反映:

l         我们很高兴能在大四学习OOAD这门课。在这门课程中,我们不仅学到了许多OO的思想方法,和思考方式,更难得的是我们有机会自发地去研究一个开源项目。

l         学习过程中,小组成员们十分积极主动,对于Hibernate这一新兴技术抱有很浓厚的兴趣,并且在学习的各个阶段积极为要在课上汇报的同学进行资料整理,将我们的学习成果进行阶段性的汇总,这为最后的报告撰写提供了极大的帮助。”。

l         我们选取了一个基于面向对象分析和设计的优秀的开源软件,将我们在课堂上学到的理论知识和工具与之结合起来,分析这个开源软件的源代码中的面向对象分析和设计的思想,获取了大量的第一手的经验。 “不仅对面向对象的理论知识有了更加深刻的理解,并且我们获得了很多第一手的经验,对开源软件的世界有了更多的了解。总的来说,这一个学期来,我们通过面向对象分析和设计的课程学到了很多东西。相信这对我们以后走上工作岗位将会有很大的帮助”

 

本学期OOAD课程,项目小组成员对全文搜索引擎项目的使用方法和内部原理进行了深入的研究,并且按照计划完成了一个简易的桌面搜索软件。通过这个项目的研究,对实际项目中的设计模式有了更加深刻的体会,对实际中模式的应用与选择也有了更加深入的了解。