1、1开源项目下 Java 语言课程体系的改革与实践摘 要:文章主要介绍了基于 Oracle 公司开源项目下 Java 语言课程的整体课程体系的设计,旨在原有基础上进一步提高教学质量和效果,更好地把理论和实践有机地结合起来,以满足当前产业发展对创新型工程人才的需求。该课程体系改革的主要内容有新型关联一体化课程设置、分层次分角色集成化课程教学方法、结合开源项目开发并演示软件产品和新型考核方法的建立。自 2012 年初实施以来,该课程体系的实践得到了师生的认可,激发了学生的兴趣,在实践中取得了较好的成效。 关键词:开源项目 课程体系 课程设置 中图分类号:G642.0 文献标识码:A 文章编号:100
2、4-4914(2013)03-145-02 一、引言 Java 技术的开源社区产生了许多有价值的开源项目,并且培养了一大批优秀的大师级编程专家。开源项目有利于学生动手能力和合作精神的培养。开源项目采用“集体开发” 、 “合作创新”和“技术共享”的模式,通过来自底层志愿者的自下而上创新体系进行软件的开发。针对软件工程专业的学生将来选择 IT 行业就业,编程能力、团队协作能力、项目分析能力等尤为重要。为此,基于开源项目下要完善Java 语言程序设计课程的整体课程体系的设计,可以在原有基础上进一步提高教学质量和效果,更好的把理论和实践有机的结合起来,以满足当前产业发2展对创新型工程人才的需求。 Ja
3、va 语言程序设计课程是我校计算机软件工程专业的一门专业基础课程,该课程的教学目标是让学生掌握面向对象的编程思想,并能够独立完成项目的开发,但以往的教学实践表明,很多学生学完课程后并不能很好的应用到实际产品项目的开发中。要达到预期教学目标,提高学生的实践应用能力,结合开源项目完善Java 语言程序设计课程体系的设计应该是改革的途径之一。 二、应用价值 Oracle 公司推出的 Java 的开源社区是最活跃的社区,这些社区产生了很多有价值的开源项目,像企业开发项目流行的 Apache Tomcat Server、ant、Eclipse、JBoss、Struts 等,在 Java 技术中采用开源项
4、目按照软件工程思想把某一项目展开并贯穿于整个 Java 课程体系及教学中,可以切实的让学生看到学习 Java 语言课程究竟可以实现什么,项目打包后的运行效果是什么,如何去开发一个企业的真实项目,更好地应用启发式教学让学生明确自己的位置。 将开源项目应用于教学,最早是起源于美国,后盛行于德国,尤其更适合于软件学院。自从龚敏博士从国外带回一大堆 Linux 等开源项目软件之后,中国便吹响了开源运动的号角,最初由 David 建立了中国的知名 Linux 站点 Linux form。 近年来,伴随开源运动在中国的推进,开源社区也取得很大发展。开源社区的建设对促进中国开源事业与国际接轨具有深远影响,有
5、利于进一步推进与国际开源社区的交流合作,了解并学习国际前沿开源技术3和开源理念,跟踪国际开源发展最新动态。将开源项目所具备的“集体开发、合作创新、对等评估” ,以及“源码公开、使用自由、资源整合、信息共享”特征于一体的创新体系融入 Java 课程体系的改革在基于工作过程的课程改革背景下优势突出。 针对 2011 级软件工程专业学生,将开源项目用于 Java 课程体系中,可以让学生切实从一开始就受到开源思想的熏陶,顺应当前软件行业开源软件将逐渐流行的趋势。按照这种方法改善 Java 课程体系,学生在教学活动中参与程度高,整体效果好,提高学生动手编程能力、增强团队合作意识、提高学生的创新能力,缩短
6、校企合作的距离,毕业生在就业时进入企业能快速适应团队项目的开发与协作,并正确定位自己的角色。三、开源项目下新型课程体系 Java 语言程序设计课程的授课活动要在开源项目下建立新型的课程体系,目标对象有两个:授课教师和学生,前提是授课教师必须了解并掌握开源项目,并转变授课习惯性的思想和观念,其次,在整个教学活动中将开源项目的设计思想、精神灵活地灌输给学生。该课程体系改革的主要研究内容有四方面:新型关联一体化课程设置、分层次分角色集成化课程教学方法、结合开源项目开发并演示软件产品和新型考核方法的建立。Java 课程体系改革主要目标就是实现以有利于学生就业为导向的教学模式。 在 2012 年开学初,
7、对于 2011 级软件工程专业 Java 方向学生开展了为期一周的关于 Java 课程体系相关课程设置,如何结合开源项目开发软4件,如何真正地与企业真实项目接轨。为了加强教师的软件项目开发能力,学院也采取了派教师去企业界工作、培训学习有关 Android 游戏编程等课程,与企业界的工程师合作开发项目等措施,教学效果较好。 1.新型关联一体化课程设置。在传统的教学方法中,各门课程按学科内容几乎是独立的,课程之间很少关联,而新型的 CDIO 方法是按照工程项目的整个生命周期来组织教、学、做的,这就要求将相关课程关联,来解决实际的综合问题。如要开发一个购物车网站,前台可以采用 Java语言和 JSP
8、 语言,后台可以采用 MySQL 数据库,而教师在讲授过程中就要将三门课程相关联,在利用 JSP 语言编写客户端网页时如需插入JavaScript 脚本元素,要使用 Java 语言来编写代码,如果要倒入数据,就要连接后台 MySQL 数据库。通过关联化课程的设置,学生能够利用最少的时间完成基础层次或高层次的项目。 2.分层次分角色集成化课程教学方法。对于同一门课程,不同的学生的爱好程度不同。如对于“Java 语言”课程,可能有的学生非常喜欢,自己在课余的时间就会抽出更多的时间来学习或参加一些相关的实践项目来提升自己,而有的学生可能是处于中间状态,不喜欢也不讨厌,那他可能更重视的是课程的成绩,还
9、有的学生可能根本就不喜欢这门课程,他对自己的要求是只要考试及格就可以,平时也不会认真去学。因此,教师可以通过测试学生对课程的爱好程度,根据它对学生分层次教学。如针对上述情况可划分为三个层次: (1)建立课外学习小组教学。对于那些对课程有浓厚兴趣的学生,教师可以组织学生分成小组,以团队的形式参与教师、学校或企业的科研项目活动,从而提高学生的创新5能力。 (2)课外辅助教学。针对中间状态的学生,可以利用实验设备辅助教学,使学生更多地参与到“设计-制作”实践项目活动中,这也是 CDIO方法对于每个学生基本要求。 (3)课堂启发式教学。多数教师公认的最好的教学方法就是启发式教学,也可以结合其他教学方法
10、,如探讨式教学等,这种方法更有助于激发学生的兴趣。 在企业界,学生除了应具备专业知识外,还应具有团队协作能力、人际沟通能力、综合素质能力和系统建造能力等,所以,要通过集成化教学方法,使学生同时获得知识和能力。 3.结合开源项目开发并演示软件产品。开源项目就是 Open Source Project,对于 Java 来说,上 apache 网站上可以找到很多这样的程序,他们遵守 GPL, Apache, Berkeley 等稍有差别的开源协议,但大体意思都是可以自己修改代码用于自己的程序的,包括商业用途。这类程序一般通用性的比较多,比如服务器、数据库、浏览器、论坛、博客等等,缺点是维护起来对技术
11、要求比较高。在 Java 课程教学中要结合开源项目开发的具体软件产品如电子商务网站、新闻系统、手机游戏开发等等吸引学生的眼球,让学生切实喜欢并自觉主动参与项目的开发。让学生选择合适的开源项目如销售电子产品的电子商务网站,采用熟悉的开发环境如 Eclipse、Tomcat 和 MySQL 等安装开源项目,教师带领学生从开源项目的需求分析着手,分析网站的总体设计包括几个大模块,如管理员模块、登陆模块、订单模块、购物车模块等,然后还原数据库表,在访6问数据时,如何实现添加、查找、修改、删除等操作,前台与后台每个模块的设计,最终网站的调试,出现 401 或 500 错误时应如何修改程序代码,对于该开源
12、项目如何进行扩充,结合Java、JSP、JavaScript、MVC 模式及框架等已教授的内容扩充,以小组形式完善项目开发,让每个学生都能够真正参与项目的开发,运行并演示最终开发的软件作品,使学生亲自体验真实的软件产品从“构思设计实现运作”的全过程。 4.新型考核方法。对于计算机专业语言类课程的考核方法,传统采用一般是笔试成绩(70%)和平时成绩(30%) ,其中,平时成绩主要包括学生平时表现和实验两部分。这种考核方式忽视了学生实践能力的培养,导致学生的动手编程能力较差。以美国 MIT 学院为例,它侧重强调的是学生课程实践能力和解决问题能力,以课程项目和课程作业为主要考核指标。CDIO 理念重
13、视在理论和实践中要选择一个最优的平衡点,才能达到预期的教学目标,使学生所学的知识能够真正的学有所用。新型的考核方法主要涵盖三方面。 (1)单元性测验。对于Java 语言这门课程从内容深度上总体可分为:基础篇、应用篇、提高篇三部分,每学完一部分做一次单元性测验。单元性测验可以将本部分内容和前续内容结合起来解决一些综合性的问题。测验试题的难度可根据学生的层次而定,内容要接近学生的生活,如学生可以独立编写俄罗斯方块游戏或学生信息管理系统等,此部分成绩占期末总成绩的 30%。 (2)团队项目开发测验。根据班级人数分成不同的团队,每个团队7选择一名成员为小组组长。对于软件工程 11 级-3 班的学生总数
14、 25 人,划分成 5 个小组,每个小组 5 人,根据小组成员兴趣、能力等不同分配不同的任务,如页面美工设计、创建数据表、编码调试等,根据项目开发完成情况给予不同的评分,该部分占学生期末总成绩的 50%。 (3)综合创新性测验。综合创新性测验主要由教师根据学生特点给定一些具体的开源项目,学生要对给定开源项目进行扩充,并最终撰写成文档,提交源代码文件。这部分成绩占期末总成绩的 20%。 如学生在开课期间曾参加过学校或企业的真实的科研项目,可免于参加综合创新性测验。此考核方法在 2012 年实施时效果较好,一个软件工程 11 级-3 班的学生共 25 人,其中有 5 人成绩在 6070 分之间,7
15、 人成绩在 7080 分之间,10 人成绩在 8090 分之间,3 人成绩在 90100分之间。因为Java 语言课程基础打得好,所以学生在后期学习Hibernate 技术、Struts 技术等课程时很容易接受。 四、总结 通过一个学期基于开源项目下课程体系的改革与实践, Java 语言程序设计课程取得了良好的教学效果,这种授课方式的优势是以案例项目展开教学激发了学生的兴趣,且提升了教师的任教水平和要求。学生已基本适应,它将理论与实践有机的结合在一起,学生在获得知识的同时,也具备了相应的能力,这也正实现了开源项目下课程体系改革的目标,满足了企业界对创新型工程人才的需求,同时也更好地实现了以就业
16、为导向的教学目标。但是课程体系的改革,是一个长期的、综合性的工作,若想取得综合的教学效果,还需要进一步的研究与探索。 8基金项目:黑龙江科技学院教学研究项目“基于 Oracle 公司开源项目的Java 语言程序设计课程体系的改革与实践” 参考文献: 1.李坚强.基于 CDIO 模式的嵌入式系统教学研究与探讨.计算机教育,2010(12) 2.潘武玲.改进我国研究教育质量评价指标体系之思考J.高等教育研究学报,2011(3) 3.马晓梅;韩娜;张剑飞.CDIO 理念下 Java 语言课程的设计与探讨.高教论坛,2010(12) (作者单位:黑龙江科技学院计算机学院 黑龙江哈尔滨 150027) (责编:贾伟)