APP下载

软件工程专业Java课程群教学与实践改革研究

2020-12-23谢中科邓泽林

软件 2020年10期
关键词:Java语言课程群软件工程

谢中科 邓泽林

摘  要: Java课程群是软件工程专业核心方向课程之一,其教学效果直接关系到软件工程专业学生的知识结构、复杂问题分析、建模和工程项目实践能力。针对传统Java系列课程教学的问题,本文提出了将Java系列课程融合为课程群,建设教师团队,并基于教师团队进行全局教学内容的设计与优化,引导学生深入学习Java相关核心技术,并利用工程项目来夯实学生的理论基础、强化学生的动手实践能力。实践结果表明:Java课程群教学改革措施很好地改善了学生的知识结构和实践能力,说明了所提改革措施具有实际意义和参考价值。

关键词: 软件工程;Java语言;课程群;项目实践

中图分类号: TP311.52,G642.0    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.10.078

本文著录格式:谢中科,邓泽林. 软件工程专业Java课程群教学与实践改革研究[J]. 软件,2020,41(10):298300+320

【Abstract】: Java course group is one of the core courses of software engineering specialty. Its teaching effect is directly related to the knowledge structure, complex problem analysis, modeling and engineering project practice ability of software engineering students. Aiming at the problems of traditional java series courses teaching, this paper proposes to integrate java series courses into curriculum group, build a teacher team, and design and optimize the overall teaching content based on the teacher team, guide students to learn java related core technologies, and use engineering projects to consolidate students' theoretical foundation and strengthen students' practical ability. The practical results show that the reform measures of java course group can improve the knowledge structure and practical ability of students, which shows that the reform measures have practical significance and reference value.

【Key words】: Software engineering; Java language; Course group; Project practice

0  引言

軟件工程是一个理论与实践相结合的学科,特别注重学生的专业实践能力培养。该专业的毕业生必须具备实际软件项目工程开发的实践能力和素质。软件工程专业的课程体系中软件开发工具的教学和实践是保证该专业学生质量的重要环节,其中Java课程群的教学与实践同企业对Java工程师的需求相适应,是学生重要的就业方向,因此,Java课程群是软件工程专业培养方案中的重要方向课程。

文献[1]提出以企业需求为导向的Java语言教学改革,通过课堂理论教学环节、实践环节的教学改革及考核方法改革,强化了学生的学习兴趣培养、提升了教学效果,使得毕业生综合素质能够达到企业对Java软件工程师的用人需求;文献[2]就如何提高高校Java语言教学效果进行了探讨,结合多年教学经历对传统Java教学存在的问题进行了分析,并提出了一系列措施来培养学生对具体问题的分析能力和程序设计能力;文献[3]就Java程序设计语言的特点,将Java语言的教学内容划分为框架型知识部分和功能型知识部分,阐述对这两部分知识的教学方式、内容组织和学生学习过程管理等方面进行有益的探索。文献[4]针对企业对Java工程师的需要,分析了应用型本科大学如何在培养Java工程师教学过程中的存在的问题,对Java课程群教学内容进行了结构设计,优化课程设置方案,明确了应用型Java工程师培养的教学目标。文献[5]意识到在Java课程群教学过程中引入双语教学可以培养学生自觉学习新技术的意识,提升学生独立应用新技术的能力。文献[6]设计了基于Java EE技术的 Java课程群网络教学平台。依托Java课程群研究成果,将Java课程群课程之间的关联关系,资源存储共享做出了详细说明,能够实现教师在线指导、在线答疑、学生在线学习等功能。

虽然Java课程群的教学得到了广大的教学研究人员的关注,并采取了多种措施进行了改革,但Java课程群的教学依然存在一些问题,如课程之间衔接,实践教学与企业工程师之间的协同的问题,需要进一步深入改革,提高教学效率。

1  教学中的问题

(1)Java课程群教师之间缺乏足够的交流,传统的教学以教师个体为主体,教师主要关注自己负责课程的教学,而不从整体上考虑如何改善Java课程群的教学效果;

(2)传统的Java课程教学在课程内容上教师各自处理,衔接不够紧密,没有从课程群全局上进行教学内容的设计,特别是教学案例的设计,使得教学环节上难以进行深入的教学,造成学生的知识深度和知识结构存在缺陷,难以满足企业的用人需求;

(3)传统的Java课程教学在项目设置上有较大的同质性,不同阶段的项目具有相似的功能,与实际软件开发过程有较大的差距,无法有效地提高学生的动手实践能力;

(4)传统的课程项目的开发以学生个体为主,并不涉及团队开发、项目管理等能力的培养,使得培养的学生的团队协作和项目管理能力与企业的实际用人需求有一定的差距。

2  实践教学改革措施

2.1  建立Java课程群教学团队,密切教师之间的交流,提高整体教学能力

Java课程群的教学工作在教学团队的交流和参与下进行,教学团队的建设和活动主要包括团队组建、团队备课与授课和团队成员能力提升等环节。

(1)建立教学团队

在培养方案制定过程中,确定Java课程群的系列课程,课程群的负责人根据课程要求组织课程群的教学团队。课程群教学团队共同制定每门课程的教学大纲,处理先修课程与后继课程的关系,讨论课程之间的衔接关系,制定教学大纲和教学计划。团队成员明确自身在团队中角色和作用,根据实际教学要求进行学习、培养和提高。

(2)团队备课与授课

团队成员明确自己的角色和任务,根据教学大纲,参与课程群教学内容的准备、建设和案例制作。团队负责人组织团队成员定期进行教学交流,对重点、难点内容,安排上课教师在上课前示范讲解,团队成员对示范教师教学方式、授课形式、使用的案例集体讨论,达成统一方案。团队成员之间,通过持续有效的交流,对课程群中的每门课程有比较深入的研究,内容熟悉、深度和难度掌握得当,使得教师能够针对每门课程的内容进行精心设计,课程之间合理衔接,学生学业逐步提高,进阶迅速。

(3)教师提升

Java课程群的教学内容和教学实验内容随着软件技术的创新而变化,在Java实践项目中,现有的项目案例随着新技术、新应用的出现而具有较大的变化,为了满足企业对软件工程人才的需求,组织团队成员学习Java的新知识、新技术、参加教学会议,使团队成员要跟上软件技术的进步,提升教师个人能力和水平。

2.2  以团队为依托设计教学内容和教学案例,密切课程之间的关联关系

为了保证Java课程群教学活动的有效开展,团队负责人组织教师集体制定课程群中每门课程的教学内容和实验案例。Java课程群主要有三门课程:《Java语言程序设计》、《Java高级编程》、《Java框架技术》组成,构成了Java课程群三个教学阶段。

(1)《Java语言程序设计》阶段

作为Java课程群第一阶段的课程,主要学习Java语言基础知识,面向对象编程技术,培养计算思维,为后续课程做准备,如多线程、反射、设计模式等。

(2)《Java高级编程》阶段

本阶段以Web技术开发为基础讲解重要组件的编程实现,如利用反射、模板模式和动态代理模式实现表单封装组件、JDBCTemplate组件、分页组件等。

(3)《Java框架技术》阶段

本阶段主要讲解企业级Java开发技术,主要是讲解Struts、Spring和Hibernate三个框架的使用。其创新点在于通过利用《Java高级编程》阶段学习的组件编程技术来模拟实现框架主要功能。

從这个教学大纲的设计来看,《Java语言程序设计》部分有很多内容和案例是为《Java高级编程》和《Java框架技术》服务的、而《Java高级编程》中的主要组件的编写是为《Java框架技术》服务的。由此可见,基于团队制定的教学大纲在课程内容方面的合理衔接,将Java课程群的系列课程进行整合,教学内容安排合理有序,减少教学内容的重复和知识漏洞,提高了教学效率,有利于学生快速进阶、改善学生的知识结构、提高学生的针对复杂问题的分析能力和设计能力,达到了提高学生编程素质,满足企业用人需求的目的。

2.3  以企业级项目驱动实践环节,保障学生动手能力

对于每门课程,设计的项目与该阶段的内容和实验要求相匹配,对激发学生的学习兴趣、深入理解和掌握相关知识点,强化学生编程思维和编程能力是至关重要的。

(1)《Java语言程序设计》阶段

本阶段主要内容涉及Java语言的基础知识,理解和掌握相应的知识点,有助于理解Java面向对象的编程思想,对Java后续课程的学习至关重要。这一阶段是Java基础知识的学习,内容多且复杂,而且受知识结构的限制,适宜做一些小规模的项目,为此考虑将这些知识点综合运用,实施一个有意义游戏项目案例。

开发游戏项目需要的知识点有:

面向对象分析:将游戏中的角色作为对象进行分析,形成抽象类、接口和具体类,以及这些类之间的继承、关联、依赖等关系;

GUI界面编程:将游戏对象以图形的方式在界面上加以显示;

多线程编程:为了使游戏对象能够在界面上移动,需要使用后台刷新线程不停刷新界面;

集合:为了维护大量的游戏对象,需要使用集合类来支持游戏;

设计模式:当飞机碰到不同的令牌时,发射方式会发生改变,此时可以应用策略模式;

反射机制:对于游戏的每一关,我们可以将关口的行为配置在文件中,并使用反射机制加载关口的行为;

网络编程(可选):设计一个能在局域网内供玩家使用的网络版本的游戏。

通过游戏项目的开发,学生通过GUI设计程序运行界面,可以使游戏中对象的运行状态在程序运行界面上显示,直观地了解程序的运行过程;而且通过游戏开发,将课程中学到的知识应用游戏程序的开发过程中,可以提高学生的程序设计兴趣;更重要的是,通过游戏案例程序,为学生深入理解和应用这些知识点提供了一个良好的平台。

(2)《Java高级编程》阶段

本阶段主要内容涉及可复用Java组件的开发,因此,实践项目的案例设计与考查侧重于Java组件的编程。这一阶段的项目案例是《网上商城》,学生具有购物平台进行购物的经历,这对学生直观地了解《网上商城》项目的需求有益。

项目涉及的知识点有:

JSP/Servlet:Web应用的基础在于JSP/Servlet,通过开发Web项目可以熟悉这种请求/响应的开发模式;

表单封装组件:对于用户提交的表单,通过迭代可以获得字段的名称和值,然后通过反射的方式动态构建对象并进行属性注入,完成表单对象的自动封装;

分页组件:对于不同的页面,可能都需要使用分页逻辑,利用JavaBean来封装分页逻辑,不同的页面仅通过应用简单的标签即可完成分页任务,无需重复开发;

数据访问组件:通过利用JDBC、数据库元数据(Metadata)以及反射技术完成数据库表格数据行到内存对象的直接封装,形成功能强大的数据访问组件。对于不同的表格操作,可以重复使用该组件,不必重复开发;

《网上商城》项目的开发过程中,需要引导学生进行项目的需求分析,掌握《网上商城》的数据需求和功能需求,从软件工程的思想实施项目开发,在项目实施的过程中运用组件技术,不仅可以使学生能深入地理解和掌握Java編程思想,而且可以加快软件项目的开发。考查项目时,不仅需要查看项目能否正常运行、功能是否符合要求、界面是否美观等因素,还需要了解学生在实施过程中是否应用了Java组件技术,因为组件技术的运用,有助于提高学生的抽象思维能力以及项目的开发效率。

(3)《Java框架技术》阶段

本阶段主要内容是框架技术的使用,需要设计大型的企业级开发项目,主要训练和考核学生的软件项目需求分析、系统设计等能力,并训练学生的团队开发能力,以企业的要求对学生进行培养,弥合大学教育与企业需求之间的鸿沟。本阶段的项目案例为《网络舆情分析系统》,指导学生分组按软件工程原理对项目实施开发,对项目进行需求分析、总体设计、详细设计和编码实现,提高学生对应对复杂问题的系统分析能力、设计能力。

项目涉及的知识点有:

需求分析:理解网络舆情分析的需求背景,进行软件需求分析、系统分析、系统设计等环节,形成需求文档和分析文档;

网络数据抓取:编写网络爬虫软件,进行网络数据的抓取和解析,并将获取的数据插入数据库供后续的数据分析;

利用SSH框架技术进行网络舆情分析业务平台的开发。

经过第二、三阶段课程的学习和实践,使学生深入理解和掌握框架的原理,而经过第三阶段项目的开发则能使学生能熟练掌握复杂问题的分析能力和设计能力、在编码实现过程中熟练运用框架技术,从而满足企业对软件开发人员的要求。

2.4  项目管理与项目质量评估

随着Java课程群教学内容的进阶,相应的阶段项目的难度和规模也越来越大,使得单个的学生难以在规定的时间内完成指定的任务,因此,《网上商城》和《网络舆情分析》这两个项目需要进行团队协作开发。在团队协作开发的过程中,需要团队成员对项目开发过程进行有效的管理,保证项目开发的进度和质量。主要步骤如下:

(1)团队的组建。为每个组安排3~4人组建项目开发团队,每个团队需要一个开发能力较强的同学为组长,负责带领整个团队进行项目开发;

(2)团队开发环境的熟悉。团队成员之间在不同的开发阶段,使用相关的软件开发工具进行交流,对问题的分析和理解达成一致;同时,团队成员需要熟悉团队开发环境,主要是MyEclipse提供的CVS开发环境,每个成员需要掌握团队编程的方法、步骤等要点。组长负责构建项目开发架构,并将项目提交至CVS服务器。团队成员通过网络连接至CVS服务器,并将项目迁出之本地。此时,团队成员将通过不同的终端开发同一个版本的软件项目;

(3)开发任务的分析。开发团队在组长的领导下对项目需求进行分析,掌握项目的功能模块和大致的工作量;

(4)开发任务的分解。项目组长可以根据项目的模块将开发任务划分并指定人员完成,使团队成员能在并发的环境下进行软件开发,加快软件开发速度;

(5)项目进度控制。每个成员每周需要提交项目进度报告给组长,组长需要掌握每个成员的完成情况进行进度控制、人员调配等工作,保证项目的各个环节能够有序地进行。

项目质量主要通过答辩的形式进行评估。每个阶段项目完成后,统一进行项目答辩。负责Java课程群教学的教师出席项目答辩,对项目的完成质量进行打分,包括项目外观、用户体验、核心代码、数据库设计等部分进行评估,并与学生进行交流,了解项目开发过程、解决方案进行了解,最终形成综合评分。

3  结论

为了提高软件工程专业Java课程群教学效果,本文提出了Java语言教学的课程群建设与教学的思路。通过建设教学团队、基于教学团队进行教学内容设计,深度融合Java基础、Java高级编程、Java框架技术等不同阶段的内容,夯实学生的Java基础知识,并通过项目的实施来提高学生的动手实践能力。通过近几年的探索与改进,学生的Java语言的学习效果得到了显著的提升,特别是动手实践能力得到了明显的加强,学生开发的软件作品得到了许多竞赛的奖励和用人单位的认可,体现了教学改革良好的效果。

参考文献

[1]邓泽林, 谢中科, 胡宁静. 以企业需求为导向的Java程序设计教学改革探讨[J]. 中国电力教育, 2010(28): 114-116.

[2]龙艳彬, 张学东, 王亚伟, 等. Java教学改革探讨[J]. 课程教育研究, 2013, 9: 136-137.

[3]吕延庆, 范刚龙, 宋振芳. 基于教学内容的Java教学模式改革[J]. 计算机教育, 2015, 2: 48-51.

[4]喻晓. 应用型本科面向培养软件工程师的Java课程群教学研究[J]. 电脑知识与技术, 2014, 10(9): 4518-4520.

[5]任东, 马凯, 李碧涛. Java课程群双语教学研究[J]. 教育教学论坛, 2014, 8: 109-111.

[6]赵彦. 基于Java EE技术的Java课程群网络教学平台的设计与实现[J]. 安阳师范学院学报, 2014, 2: 43-48.

猜你喜欢

Java语言课程群软件工程
“卓越医师”创新创业能力培养实践教学分析及医学方法学课程群构建
关于如何创新和完善计算机软件工程管理的探讨