APP下载

面向软件行业需求的Java工程人才培养探索

2019-07-01张新猛罗海蛟彭碧涛李月梅

计算机教育 2019年6期
关键词:企业级课程体系软件

张新猛,罗海蛟,彭碧涛,李月梅

(广东外语外贸大学 信息科学与技术学院,广东 广州 510006)

0 引 言

Java是一种跨平台的面向对象程序设计语言,分为桌面应用、移动应用和企业级应用的开发,广泛应用于电子商务、企业信息管理、金融服务等应用领域。连续多年,TIOBE发布的编程语言市场占有率排行榜,Java一直排在第一名,Java编程语言技能已经是计算机相关专业大学生进入软件开发行业必备的一门技能。据IDC数据统计,从人才需求方面看,目前我国软件人才缺口极其严重,其中Java人才最为缺乏。根据相关权威机构的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。

教育部把信息化人才与软件人才列为国内急需的紧缺人才之一,Java工程师市场需求巨大。现状是一方面人才需求旺盛的IT企业很难招聘到合格的Java人员,另一方面有大量具有基本Java技术的本科毕业生,但由于与企业的实际用人需求有较大的差距而存在就业困难问题。面向软件行业需求,探索培养Java工程应用型人才的合理课程体系是高校Java教育首要解决的问题[1-2]。

1 Java课程教育现状

目前软件开发企业需要的技能包括基于Java EE的企业级应用开发、Android移动端开发以及与企业级应用开发相关的流行架构,然而目前高校所开设的课程远远落后于企业需求,传统教学模式所培养的学生距离企业要求相差甚远,究其原因大多存在着重理论轻实践、重基础轻应用、重技术轻综合、重考试轻创新等问题。

1.1 缺少有机衔接的Java课程体系

目前几乎国内高校都至少开设了一门Java课程,但鉴于课时、师资等原因,普遍存在的问题是缺少系列有机衔接的Java课程体系,造成Java基础课程与实践课程相割裂。绝大部分学校仅开设Java基础课程,但由于没有后续应用开发课程的支持,学生无法掌握企业应用开发中需求与技能;另外一些学校虽然开设了多门Java相关课程,但课程缺乏有机衔接,学生往往不能形成知识网络,难以综合应用所学Java知识构建企业级应用。

目前高校所开设的Java相关课程与企业实际应用需求仍有很大差距,同时所开的Java课程间不能形成有机衔接,比如移动应用开发(Android)课程先修课程不仅仅是要求Java程序设计基础课程,同时学生必须掌握Java EE部分相关内容,否则只能设计单机版的移动终端,根本无法构建集成的移动应用系统。

1.2 传统教学模式无法培养学生综合应用能力、创新能力

传统的Java程序设计课程通常分为课堂理论教学和上机实践两个环节,理论教学教师是主导,一般结合PPT课件讲解概念、语法以及小程序的分析等;而上机实践偏重于如何编写功能单一的“小”程序,局限于一个或两个知识点,学生只见树木,不见森林,不能把握知识之间的衔接关系。编写综合应用程序时,学生往往无从下手。

除了传统教学方法外,Java程序设计教学中比较先进的教学模式是项目驱动教学法。项目驱动教学法是采用难易度适中的典型项目,将学习者引入一个特定的真实情境中,充分发挥学生的主观能动性,以学生的主动学习为主,教师辅助为辅,培养学生分析问题、自主学习、研究性学习的能力。通过项目驱动教学,能够使学生对知识点的理解和应用有更深入的认识。但在教学实践过程中,所选择的项目案例往往是针对某些知识点,多个项目案例之间关联不大,所涉及的知识点衔接不够紧密,而企业级应用项目,往往是许多知识点的综合应用,是多门课程的综合应用。

1.3 缺少实战训练项目及项目分解训练模型

目前大多数高校用于Java训练的例子通常是一个个独立的小程序,程序间既没有知识点之间的关联,又没有应用层面上关联,学习者难以把握Java知识网络及应用场景,即使有相对较大的案例,也通常局限于某种特殊应用。

即使采用项目训练的方式,也是普遍采取的方式即通过大作业的形式自主完成,对于学习者由于没有参与过项目实战,往往是无从入手,结果是大作业也是通过抄袭现有开源项目草草了事。将实战训练项目分解为日常可操练的小训练模块是实战训练项目实施的关键。

因此,为培养更多满足企业软件开发需求的Java软件工程人才,构建有机衔接的Java课程体系,按照软件企业用人需求,采用基于项目实践的人才培养模式,是Java课程改革必然趋势。

2 Java软件行业需求

目前电子商务、企业信息管理、金融服务等应用领域的软件系统开发均基于企业级应用开发,软件行业需求的Java人才应当具备基于Java EE的企业级应用开发的各个环节的主要技能。

我们从招聘网站上采集大量Java工程师职位招聘要求,从招聘技能需求看,几乎所有Java工程师职位都要求掌握基于Java EE软件开发的各个环节技术,而不是单一的前端或后端某种知识技能,用人需求需要掌握以下技能,大致所需掌握的七大知识技能模块见表1。

表1 Java软件行业人才技能需求

从表1所示软件行业人才需求看,对传统Java EE中EJB基本没有要求,大都要求了解目前主流轻量级第三方框架,每个模块中的技术并不是全部要求掌握,不同企业需求有差异,但都要求熟悉每层技术环节的关键技术。

3 面向软件行业需求的课程体系设置探索

3.1 多层Java EE系统架构

目前软件行业需求的Java工程人才应当具备Java EE相关知识技能。Java EE是Sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式程序模型,是开发基于网络的企业级应用首选平台。但由于传统经典Java EE开发复杂,开发周期长,维护难度大,第三方开发出轻量级Java EE开源框架,仍遵循经典Java EE的多层架构,但大大提高了开发效率。绝大部分Java软件行业基于Java EE采用多种开源框架进行软件开发,图1展示了多层软件体系结构中各层中主要技术,包括经典Java EE和轻量级Java EE等开源框架,在实际软件企业开发中并非用到全部技术,比如极少软件行业企业要求掌握EJB技术。

图1 基于Java EE的多层软件体系结构

3.2 面向软件行业需求的Java课程体系设置

高校培养的Java人才最终目的是输送到软件企业,因此所构建的课程体系应根据软件企业需求来设定,根据软件行业实际需求,提出“基础理论—核心技术—应用开发技术—综合应用能力”有机衔接的Java课程体系,课程体系见表2。

表2所示6个教学模块内容是根据软件企业实际需求所定制的学习内容,每个模块的知识点并非一成不变,各高校可根据实际情况,进行适当调整教学内容,同时也要根据软件企业的实际需求,不断将新的方法、框架纳入到课程体系。

有些模块并非专门针对Java课程体系设置,可以共享的如2、4、6模块,为应用软件系统开发类课程的通用模块。模块4作为前端设计,本身可以与后端应用设计分离,移动应用开发既可以是Android也可以是iOS或微信小程序等内容;模块6作为项目实训培养学生的创新能力、实践能力以及团队合作精神,不局限于采用Java开发,也可以是C++或Python,甚至多编程语言混合的项目实践。

3.3 基于CDIO的Java软件开发能力培养探索

经过广大教育工作者的探索,多种教学方法被提出,如“项目导向”“启发式教学”“任务驱动”“案例教学”“探究式学习”等教学法,被广泛应用于各类课程的教学中,也取得一定的效果。近几年,国内许多高校的计算机专业都引入了基于CDIO模式的课程教学改革,CDIO工程教育模式是近年来国际工程教育改革的先进成果,CDIO代表构思(Conceive)、设计(Design)、实施(Implement)和运行(Operate)[3-5]。CDIO模式已被应用于Java教育[6-8],以工程项目为载体组织教学,让学生通过工程项目来学习知识,达到培养学生创新能力、实践应用能力、团队合作精神的目的。

面向Java软件开发类课程群,基于CDIO模式思想将Java课程群设置若干能力培养目标,提出面向软件行业需求的Java工程人才培养目标,将Java工程应用人才应具备的能力分为Java技术能力、软件分析设计能力以及人际团队个人能力三大能力,如图2所示。

表2 面向软件行业需求的Java课程体系

图2 面向软件行业需求的Java工程人才应具备的能力

不同层次课程能力培养的侧重点不同,选用统一的项目贯穿Java课程群,将项目分解若干相对简单的子项目,每个子项目对应能力培养目标,在不同层次课程中,能力培养目标不同,采用教学方法也应有所差异。

Java基础课程重点训练学生的Java基本语法、编码能力,一般安排在低年级,学生的编程能力有限,缺乏软件开发相关知识,不具备完整软件开发能力,应从子项目中抽取个别小模块,以验证性实验和设计性实验的形式,使学生熟练掌握Java核心技能以及具备初步程序设计方法。

模块2和模块4均为前端开发,除了培训编码能力外,还要培养学生的设计能力,有条件的学校可请设计专业的老师进行相关内容讲解。重点培养学生的设计创新能力,以设计性实验为主,结合企业主流采用的开源组件设计项目前端界面。

模块3和模块5均为Java EE内容,学生已具备一定的编程基础和设计能力,以综合性实验为主,老师给出项目需求,以项目导向方式,学习主流Java项目框架、设计模式,以小组形式完成项目的设计和实现,培养学生的综合应用能力、团队合作能力。

模块6为项目实训,以团队形式进行综合研究性实验,以具有真实应用背景的项目为导向,按照软件企业开发过程,从角色分配开始,进行项目需求分析、项目设计、项目架构搭建、代码实现、测试以及上线运行等步骤进行,培养学生综合应用能力,如团队合作能力、领导能力、软件分析设计能力。项目实训可以作为一门课程或利用寒暑假前的两个周的实习周进行训练,不局限于采用Java开发,甚至多种开发工具混合开发,比如前端可以包括Android和iOS两种版本。

4 结 语

软件行业需求的Java工程人才需要具备Java系列各个环节技能、软件分析与设计技能、团队合作创新能力等多种能力,课程之间相互关联,某个课程环节的缺少将会导致学生无法进行基于Java的软件项目开发。目前高校普遍存在机械的照纲开课,依师资力量开课,课程之前缺乏统筹安排,授课老师之间缺少沟通交流,学生的技能训练不能有机衔接,难以有效地培养学生的综合应用能力。

紧跟软件行业需求,加强与企业合作,统筹安排Java程序设计类相关课程,形成课程间技能训练、能力培养的有机衔接,依据课程特点以及学生情况选择合理的教学方法,是培养Java软件工程应用型人才的有效方法。

猜你喜欢

企业级课程体系软件
企业级BOM数据管理概要
三维视角构建劳动教育课程体系
禅宗软件
高职Java程序设计课程体系建设思考
构建优质学前健康教育课程体系促进幼儿健康成长
“三位一体”课外阅读课程体系的实施策略
软件对对碰
企业级SaaS云服务体系化发展面临的挑战
加快推动企业级SaaS云服务体系化发展
即时通讯软件WhatsApp