基于Java案例库的软件工程专业实践教学研究
2017-09-11刘文涛董正言
刘文涛,贾 瑜,董正言,张 琳
(武汉轻工大学 数学与计算机学院,湖北 武汉430023)
基于Java案例库的软件工程专业实践教学研究
刘文涛,贾 瑜,董正言,张 琳
(武汉轻工大学 数学与计算机学院,湖北 武汉430023)
Java语言使用非常广泛,在软件工程专业的实践教学中占有重要地位,为了提高软件工程专业学生的动手能力和工程能力,需要提供一套切实可行的实践教学方案。根据以Java案例为中心的实践教学的目的和要求,从案例的选择、案例的内容架构、案例的实施方法以及实践考核评价机制等方面,合理构建Java案例库并运用案例库进行实践教学,对培养和提高学生的编程能力、项目经验、工程技能等方面具有重要意义。
Java;案例库;软件工程;实践教学
1 引言
实践教学是专业人才培养的核心组成部分,尤其对于面向产业需求的应用型软件工程专业实践教学体系,更是显得举足轻重。该实践教学体系注重对学生实际动手能力的培养,注重项目工程技能的培养,其目的是让学生在毕业时能够达到产业要求。为了避免产生培养的人才与企业需求脱钩的问题,在本科教学中如何构建切实可行的实践教学方案,显得非常有意义[1-2]。实践教学环节一般包括课程实验、课程设计、实习实训、毕业设计等,在每个实践教学环节都有自己的要求和目的。课程实验主要是对理论课程的知识点进行实践和掌握,课程设计主要是使用综合项目来对课程总体掌握,熟练运用所学知识点;实习实训环节主要让学生掌握运用所学各种课程的内容到具体的实际项目中,理论应用到实践,提高学生动手能力;毕业设计则考查学生对所学知识的综合运用和专业能力。在软件工程专业的课程体系中,Java语言是一个核心语言,它的应用非常广泛,主要用于WEB应用程序和Android移动设备应用程序的开发,这两个应用方向,也是软件工程专业学生比较多的就业方向。所以选择Java语言作为对象来建设案例库,具有实际意义[3]。
2 Java案例库
2.1 案例选择
为了让学生在学习案例时既能够容易入手,又能够让学生的实践能力循序渐进地得到提高,Java案例的选择要遵循以下规则:一是必须具有延续性。所谓延续性,是指在课程体系中,实践环节的案例内容在前续课程和后续课程之间能够自然衔接。如果衔接不好,可能会出现很多问题,例如,在前续课程和后续课程中有重叠问题,内容重复。或者后续课程的实践内容过于复杂,让学生短时间无法接受而影响实践效果,导致学生容易气馁,产生畏惧厌学情绪。另外,案例的选择应该从简单到复杂,循序渐进,通过简单案例到综合案例,中间要有衔接,层层递进,让学生在不同的实践环节之间能够比较自然过渡。二是必须具有代表性。由于软件工程专业所涉及的内容比较广泛,而且新的技术也在不断发展,但学生的精力有限,再加上课时限制,所以对于案例内容的取舍就显得很重要。如果内容过于宽泛,没有重点,没有代表性,会导致学生学了很多,但都没有学牢固,不能精通掌握。所以案例的内容应该精炼,数量要适当,应该让学生以掌握最重要和最基础的内容为主,次要内容可以让学生在实际的项目中自学。另外,如果是企业提供的案例,应该具有实际工程背景,可以是企业实践项目的子项目。
案例库的难易程度必须适中,因为学生的学习能力参差不齐,为了满足大部分同学的学习进度,适中的案例才是有帮助的[4]。另外,为了考虑不同层次,设计一些具有一定难度的案例库作为任选题目,让那些学习能力比较强的学生能够得到锻炼和提高。这些案例,需要学生在已有知识上自学一些知识才能完成,这样可以激发学习兴趣,锻炼自学能力。案例库的文档要齐全,参考资料要充分,让学生能够方便查阅相关文献。
2.2 案例内容架构
针对各个实践环节,合理组织案例库,每个实践环节的案例库不同,每个案例都有自己的适用场合。根据软件工程的培养方案和课程体系,其案例库的内容架构如图1所示,从上到下,依次推进。
图1 Java案例库的内容架构
《Java程序设计》课程是学生第一次接触到Java语言,理论课程和实验课程紧密衔接,注重实践训练,把理论知识转化为动手实践能力[5]。其课程实验的案例库应该简洁而有针对性,设计验证性和综合性实验,主要目的是让学生对Java的语法和知识点能够熟练掌握。例如对象和类、继承、多态、抽象类、接口、异常等[6]。
《Java程序设计课程设计》是学生在学完Java语言后的第一次比较综合性的实践课程。该课程的目的是让学生能够运用Java设计一些比较综合性的应用程序,例如Java界面程序,基于Java的信息管理程序,Java小游戏等[7]。让学生能综合灵活运用Java的语法,以便进一步全面掌握Java知识点。
《基于J2EE开发技术》课程是运用Java语言开发WEB应用程序,涉及到很多WEB技术,例如JSP、Servlet、JDBC、架构技术等,其实践的案例应该围绕WEB应用开发而展开,针对WEB开发的知识点设计各种案例,例如页面展示、表单操作、过滤器、数据库操作等。
《移动设备软件应用与开发》课程是使用Java语言开发Android平台应用程序,现在移动应用开发是主流,该课程实践环节的案例侧重移动应用,围绕各种Android技术而设计案例,例如组件Widget、布局Layout、多媒体、数据库等。
软件工程专业实习是软件工程专业的一个重要实践环节,在该环节中要求学生能综合运用所学知识,设计和实现一个完整的项目系统。在设计的过程中,围绕软件工程的标准规范,从各个环节达到综合运用的目的。该案例应该是非常综合的,从软件需求、软件设计、软件实现、软件测试等各个环节入手,设计出典型的案例项目。
除了以上典型的课程外,还有一些课程也会涉及到一些基于Java的案例库,例如数据库课程、软件工程学课程、软件测试课程等。虽然他们是某个方面的专业课程,但在他们的实践环节中一部分也会使用到Java。例如在软件测试课程中,其单元测试可以利用Java开发中的JU nit案例来实践。
3 实施方法
3.1 校企合作
软件工程专业的毕业生应能够满足产业需求,达到行业相关实践标准。为了这个目标,在实践教学环节里,需要与企业紧密合作。在构建Java案例库的时候,有些案例由教师提供,有些案例应该由企业直接提供,或者由教师和企业共同设计。
另外,为了让学生能直接获取行业背景,推荐学生到企业进行实践,让学生全程参与Java项目的设计和开发工作。在具体项目的实践中熟悉和掌握开发Java项目的方法和技术,提高其工程能力,熟悉企业的软件工程规范,积累实际项目经验。既具有企业实际背景的案例,又具有真实行业的环境,可以让学生获得更加直观和创新的实践教学,在实践中验证、巩固和升华理论知识,培养工程技能和行业素质。
3.2 双导师机制
对于基本的Java案例库的实施,例如Java知识点案例,Web开发案例等,可以由教师直接操作。但对于软件工程专业的综合实践实习环节,采用双导师机制。由企业兼职教师和学校专业教师共同制定Java案例,共同参与实践课程体系的建设。企业兼职教师参与实践课程授课,辅导学生参与实际项目开发。除了让企业提供兼职教师,学校也推荐教师到企业培训和学习,提升教师的工程实践能力,与企业建立长期合作关系,建立培训学习平台。
3.3 培养自学能力
案例在实践教学运用的过程中,注重对学生自学能力的培养,教师主要是引导角色,积极指导学生对案例的学习和实现。让学生能主动查阅资料,对于一般问题能够自己解决,教师不能直接给出结果,而应该给问题的解决思路。对于案例的设计,应该给出层次性,包括基础性案例、综合性案例和创新性案例。对于创新性案例,不设置固定方案,鼓励学生提出更优的解决方案,激发学生的学习兴趣和创造力,提高学生的自学能力和解决问题的能力。
4 考核评价
4.1 考核指标
在以Java案例库的实践教学中,注重考核学生的动手实践能力。在考核的过程中,应该考查以下几个方面。
(1)项目质量
考核是否按时完成所规定的任务要求,是否能达到各项功能模块要求,工作量是否饱满等。
(2)动手能力
软件工程专业是实践性很强的学科,对于学生动手能力的考核很重要。注意考查学生是否能够把理论知识转化为实践的能力,是否能够解决实际问题。
(3)创新能力
考查学生是否能够提出新的解决方法,是否有较强的自学能力,是否能够查阅相关的文献资料,是否能够独立解决遇到的新问题。
(4)代码规范
良好的代码规范便于代码维护、纠错和移植。在案例库里设定代码编写规范,让学生严格遵守代码规范进行编程,这对于培养良好的编程习惯很重要。
(5)文档撰写
在Java项目开发中,文档撰写是重要环节。在项目需求分析、软件设计、软件测试等环节都需要严格按照相关文档规范进行撰写。在考核中,对文档的格式、内容、规范性等进行严格考核。另外,各种报告内容必须丰富严实,具有独创性,包括实验报告、课程设计报告、专业实习报告等.
(6)职业素养
一个好的软件工程师,需要具备好的职业素养,这其中包括团队合作能力、沟通能力、态度纪律和考勤等。在案例实施过程中,让学生参与各种活动环节,提高其职业素养,例如团队分工、演示环节、现场答辩、小组会议、汇报交流等[8]。
4.2 考核实施
侧重对学生平时环节的评价和考核,每个阶段制定一个达标的具体指标,每到达一个阶段对指标进行评分,避免只注重结果而不注重过程。在每个环节评价之后,及时公开成绩,让学生知道自己有哪些不足,及时改正并跟进学习进度,避免学生掉队的情况出现。在考核中引入学生自评和互评环节,对自己的项目和别人项目进行评价,调动学生参与度和积极性。在企业实习的过程中,采用半封闭式管理,由企业指导教师根据企业标准对学生的成绩进行评定,特别是职业素养方面和实际动手能力的考核。
5 小结
以Java案例库为中心的软件工程实践,是面向产业需求培养体系的一个重要环节。Java案例库的建设,是一个不断积累的过程,随着行业新技术的不断出现,案例库也会不断增加或删减。在实施案例库的过程中需要密切配合和相互协调,特别是不同老师之间,不同课程之间,应该在教学大纲这个环节就要考虑,在制定培养方案的时候需统筹安排。软件工程专业发展比较快,相关行业标准也在飞速发展,这就需要教师紧密结合行业需求,不断根据行业标准建设案例库,提高软件工程专业的实践环节。
[1] 王新海,王永贵,张海涛.软件工程专业工程化实践教学研究与实践[J].辽宁工程技术大学学报(社会科学版),2010,12(6):657-659.
[2] 韩丹丹,郭红,姚登举.基于CDIO软件工程专业实践教学的研究[J].科技与管理,2014,16(2):66-69.
[3] 朱广萍,柳益君,叶飞跃,等.基于岗位能力的软件工程专业实践能力培养研究[J].江苏理工学院学报,2014,20(6):86-92.
[4] 王飞雪.Java程序设计课程的项目化教学研究[J].电脑与信息技术,2016,24(2):66-67.
[5] 符志强,张红.Java语言课程案例教学改革研究[J].现代计算机,2010,10:38-40.
[6] 梁勇(Y. Daniel Liang).Java语言程序设计(基础篇)(第10版)[M].戴开宇.北京:机械工业出版社,2015.
[7] 张广彬,王小宁,高静.Java 课程设计案例精编(第二版) [M].北京:清华大学出版社,2011.
[8] 沈维政,苏中滨,赵洁.项目驱动教学法在Java语言程序设计教学中的应用[J].东北农业大学学报(社会科学版),2010,8(2):66-67.
Research on practical teaching of software engineering specialty based on Java case library
LIUWen-tao,JIAYu,DONGZheng-yan,ZHANGlin
(School of Mathematics and Computer Science, Wuhan Polytechnic University, Wuhan 430023, China)
Java language is widely used and it occupies an important position in the software engineering specialty practical teaching.It needs to provide a viable practical teaching plan in order to improve practical abilities and engineering capabilities of students of software engineering specialty.According to the purpose and requirements of practice teaching centered on Java case,some aspects are considered which include case selection,case content architecture,implementation method of case,practice assessment mechanism.Reasonable construction of Java case library and application of case library for practical teaching are of great significance to the practice of students which contain the programming skills,project experience,engineering skills and so on.
Java; case library; software engineering; practical teaching
2016-10-20.
刘文涛(1977-),男,副教授,硕士,E-mail:xkwk@qq.com.
湖北省高等学校省级教学研究项目(2015337).
2095-7386(2017)02-0110-04
10.3969/j.issn.2095-7386.2017.02.021
G642
A