摘 要:针对软件工程专业本科生实践能力不能满足企业需求的现状,分析原因,以哈尔滨工程大学为例,提出在人才培养方案中体现校企协同,并据此建立一个软件工程人才实践能力立体化培养体系。
关键词:校企协同;软件工程;实践能力;培养体系;立体化
引 言
培养软件工程专业学生的实践能力,是国家设立软件工程专业的初衷。目前软件工程专业本科毕业生的实践能力不能完全满足企业对软件工程人才的要求,主要原因是企业未完全参与到该专业人才培养方案的制订和实施过程中。因此,如何在软件工程专业人才培养方案中体现出校企协同的意图,发挥各自优势,提高学生的实践能力,是一个亟待解决的问题。
1 立体化培养体系
高校教师的优势在于能够为学生提供一个较完整的理论体系,但不擅长训练学生掌握面向企业的项目开发的实践技能。企业教师的优势是善于将理论与实践相结合,培养学生的实践技能。如果企业能够完全参与高校人才培养方案的设计过程中,校内讲授的课程能够按照高校教师和企业教师的优势来安排,并设计出分阶段的实训体系,使其与理论课程紧密结合,就能为软件工程专业的学生提供一个理论与实践相结合、课程与实训相结合、多层次校企结合的立体化实践体系,从而充分发挥高校和企业的优势,为国家培养出知识体系完整、实践能力强的软件工程人才。教育部颁布的《计算机科学与技术本科专业规范(软件工程方向)》的专业核心课程,按照计算机科学优先的课程体系,可确定的本专业核心课程包括:软件工程概论、软件代码开发技术、软件设计与体系结构、软件质量保证与测试、软件需求分析和软件项目管理等 6 门专业核心课程。这些课程能够基本涵盖软件工程 10 个知识领域的 42 个知识单元,但学校还需要根据企业需求,补充相应的针对加强实践能力的课程。哈尔滨工程大学软件学院(以下简称“学院”)通过与来校授课的教师座谈、走访东软集团等相关企业的方式,广泛向企业、合作实训单位征求对人才培养的意见。学院根据目前中国 Java 和 C/C++ 两个主流平台的实际,总结出学校 2009 版人才培养方案中缺少,但实际项目开发时需要,因而不得不在实训前讲授的 7 方面针对工程实践的知识内容,并直接聘请企业教师编写课程大纲和授课。这些内容包括:(1)万维网前端技术。HTML、Javascript (或其他脚本语言 )、CSS 这 3 部分内容,在现有培养方案中,只有 HTML 和 CSS 在“网页设计”这门专业选修课中讲授,而 Javascript 没有涉及。这些内容并未包含在本专业规定的知识点中,但却是学生开发基于 Java 平台的万维网前端程序时不可缺少的实践技能。因此,需设置“Web 程序设计与开发”这门专业选修课,涵盖这 3 部分内容。(2)大型数据库技术。数据库技术是设计信息系统时必须用到的技术。目前的数据库技术特别是大型数据库技术纷繁复杂,只开设“数据库原理”一门理论课,学生只能学到数据库的基本原理,对于大型数据库的高级技术缺少具体实践,有些同学甚至连最基本的数据库语句也写不正确。而企业要求学生至少掌握一门大型数据库(Oracle 、Sybase 等)的开发技术,因此有必要设立“数据库技术”这门选修课。(3)万 维 网 后 台 技 术。Servlet、服务器(Tomcat)、JSP、 过 滤 器、Web 存 储 作 用 域、MVC 设计模式等内容在 2009 版方案中没有全部涉及,即使涉及的内容也分散在几门课程中。然而这些内容是使用 Java 平台设计万维网后台的关键技术,如果学生缺少系统的知识学习就难以开发出符合企业要求的万维网后台。因此,需设置“网站建设与管理”这门专业选修课,并在“数据库技术”之后开设。(4)Java 高级技术。该技术包括集合、工具类、 多 线 程、 网 络 编 程(http, socket)、GUI 等知识点。2009 版方案中设置的必修课“面向对象基础”只是讲授了 Java 语言的基础部分,上述的这些高级部分未讲授,但基于 Java 平台的系统开发需要这些技术,因此,需设置专业选修课“Java 网络编程”。(5)C++ 高级技术。设置的“C++ 程序设计”专业选修课只是奠定了C++程序设计的基础,若要开发基于 C/C++ 平台的商业化程序,还需采用基于模板的编程等高级设计技术,因此,需设置“C++ 网络编程”这门专业选修课,供选择 C/C++ 平台的学生选修;(6)Linux 开发环境与技术。Linux 是中国开发自主操作系统的首选,在目前企业自主创新的大背景下,支持具有此愿望的同学在校学习 Linux,熟悉 Linux,是支持我们自主创新的行为。因此,设置了专业选修课Linux 开发环境与技术,供选择 C/C++ 平 台的学生选修;(7)前台设计课程。Photoshop 和 Flash 是设计前台静态和动态页面需要的实用技术,实践性强。因此,我们设置了讲授 Photoshop 的“平面设计”和讲授 Flash 的“二维动画基础”选修课程,供有志于做前端工程师的学生选修。以上(1)—(3)是针对选择 Java 平台的学生设置,(4)—(6)是针对选择 C/C++ 平台的学生设置,是企业需要、实训中必须使用或强化、由企业教师讲授的内容。因此,以上内容就成为分层、分步实施的实训体系必须加以补充的支撑内容。同时增设校内教师讲授的专业选修课 Java 框架技术,讲授若干 Java 框架,如 spring,structs等;梳理与实训有关的校内教师讲授的其他理论课,其中包括:①计算机基础、程序设计基础、数据库原理、系统设计与分析;②两门实践环节课程——软件工程项目实践、数据库设计实践。以上课程和软件工程专业的核心课程一起构成立体化实训体系的必要支撑课程群。
2 课程设置支撑
为了培养学生的实践能力,学院设置了与工程实践和企业需求紧密结合的理论课程体系。体系要求理论课程必须辅以相应的实训,才能使学生循序渐进地提高工程实践技能,同时进一步促进理论课程的学习。有了一定代码量后再进行理论学习,学生会有更深的领会。根据理论课程的安排,本科生的实训分为3 个阶段:专业认识实训、专业技能实训和综合项目实训,分别在大一、大二和大三进行。专业认识实训的主要目的是让学生对于今后的工作环境、工作内容有一个初步的了解,便于他们确定职业发展目标,同时培养他们实际使用 C 语言编程的能力;专业技能实训的主要目的是培养学生使用 Java 或 C++ 和数据库,按照软件工程的要求编写中型软件项目的能力;综合项目实训的目的是培养学生使用 Java 或 C++ 和数据库,按照软件工程的要求,采用主流框架技术,编写大中型软件项目的能力。以上这 3 种实训与相应的课程紧密结合,形成立体化校企协同的实践能力培养体系,其主要层次关系如图 1 所示。
1)专业认识实训与配套课程。从图 1 可以看出,第一阶段的专业认识实训需要的理论课程是计算机基础和程序设计基础,其中,计算机基础这门课程主要在二进制、数理逻辑、数据结构、网络与互联网方面给实训奠定基础;而程序设计基础则使学生掌握了基本的 C语言的语法、编辑编译环境,能够开发一些小程序。这样,专业认识实训就能够进一步通过理论与实践相结合的授课方式,先行深化学生对于 C语言的理解,然后再指导学生分成 2 人一组来完成一个规模虽小,但比较完整的 C 语言项目,通过在项目中大量使用 C 语言深入掌握 C 语言和基本的项目开发流程,为后续的课程学习和实训打下一个良好基础。2)专业技能实训与配套课程。第二阶段的专业技能实训直接涉及的课程共10 门,不包括计算机科学的一些核心课程(如数据结构、操作系统、离散数学等),这些核心课程均为第二阶段实训的基础。在专业技能实训实施时,我们把培养学生熟悉 Java 和 C++ 两大主流平台的开发技能作为实训目标,学生可选择任何一个平台作为自己的第一开发平台,因为每个平台的学习所涉及的技术太多,本科生只能熟练掌握一个平台的技能。为此,我们设置了一些专业选修课,以上 10 门课程中,只有面向对象基础和数据库原理是专业必修课,其余均为选修课。学生通过专业选修课的学习,掌握了关于某个平台的相关技术后,再进行技能培训,效果更好。上面的课程中,Java 平台的课程包括面向对象基础、Java 网络编程、Web 程序设计与开发、网站建设与管理;C++ 平台的课程包括 C++程序设计;其余 5 门课程为两个平台共享课程。这 10 门课程中,技能要求高的课程,包括平面设计、二维动画基础、数据库技术、Java 网络编程、C++ 网络编程这 5 门课程,拟聘请实训老师讲授;另外 5 门课程,由学校老师讲授。学生通过实训老师的讲授,更能了解企业对于人才的需求,技能掌握也更加贴近企业要求;同时,企业的要求具体、实用,容易激发学生的学习热情,从而提高学习质量。在专业技能实训中,经过前期理论与实践相结合的学习后,学生分成 3~4 人一组,按照软件工程原则完成两个平台的中等规模的实训项目开发,从而加深对于相关理论课程的理解,夯实专业技能,为下一阶段的课程学习和实训打好基础。3)综合项目实训与配套课程。第三阶段的综合项目实训共涉及 7 门专业课。其中,有 3 门专业必修课程,包括软件设计与体系结构、软件需求分析、软件代码开发技术;4 门专业选修课,包括系统设计与分析、Linux 开发环境与技术、C++ 网络编程、Java 框架技术。在综合项目实训之前,通过“系统设计与分析”课程训练学生的系统设计能力;通过“软件设计与体系结构”课程强化学生对于系统的架构设计和详细设计的能力;在经过前两次实训的锻炼和课程的训练之后,再通过“软件需求分析”课程来进一步加深学生对项目需求进行完善分析的认识并强化其能力;“软件代码开发技术”课程可训练学生对于形式化描述软件的设计技能和提高代码编写的质量。通过这些课程的训练,提高学生的软件分析设计能力;通过两个方向的3 门选修课的学习,可分别加强其对于理论的准备,为综合项目实训奠定基础,更顺利、更好地完成该实训。在综合项目实训中,可进一步扩大项目规模、增加小组人数(如小组人数可扩充为5~6 人),项目规模为中大型,这些将为学生的毕业设计和今后在企业的实际工作奠定基础。
3 结 语
为培养学生团队合作精神和项目实践能力,学院通过调研和实际的教学实践,结合企业的客观需求,在发挥企业教师和高校教师各自优势的前提下,科学合理地设置课程,为 3 个阶段的实训打好基础。各个阶段的实训前后衔接,形成项目规模逐步扩大、小组人数逐步增多、项目难度逐步增加的立体化实训体系。学院在课程体系上做出的这种新尝试,体现在哈尔滨工程大学软件工程专业 2014 版人才培养方案中,该方案实施至今,效果良好。
参考文献:
[1]樊富有, 孟林, 李忠.新形势下软件工程人才培养的思考[J]. 计算机教育, 2013(13): 82-86.
[2]徐玲, 文俊浩, 熊庆宇. 软件工程人才培养模式的探索与实践[J]. 现代教育技术, 2013, 23(8): 118-121.
[3]吴洁明, 万励,甘金明, 等. 应用型软件工程人才培养产学研一体化实训体系建设探索[J]. 梧州学院学报, 2012, 22(2): 81-86.
[4]喻国良, 马庆槐.校企合作的软件工程人才培养实践教学体系[J]. 计算机教育, 2011(17): 96-101.
[5]孙琦龙. 创新型软件工程人才培养体系研究与实践[J]. 软件工程师, 2013, 18(10): 63-64
作者:李健利,董宇欣 ,兰 贺,曹 雪 单位:哈尔滨工程大学 计算机科学与技术学院
网为您提供的关于《校企合作软件工程人才实践技能立体教育体系》的内容,如需查看更多硕士毕业论文范文,查找硕士论文、博士论文、研究生论文参考资料,欢迎访问硕士论文网软件工程实习论文栏目。