范庆春
(合肥师范学院 计算机学院,安徽 合肥 230601)
软件产业作为信息产业的一个重要组成部分,在国民经济发展中占有越来越重要的地位,逐渐发展成为国家基础性和战略型产业。如何培养卓越工程师成了我国高等工程教育迫切需要解决的问题。
“卓越工程师教育培养计划”(简称“卓越计划”)是贯彻落实《国家中长期教育改革和发展规划纲要(2010—2020 年)》和《国家中长期人才发展规划纲要(2010—2020 年)》的重大改革项目,也是促进我国由工程教育大国向工程教育强国转变的重大举措,对促进高等教育面向社会需求培养人才、全面提高工程教育人才培养质量具有十分重要的示范和引导作用[1]。
然而,我国高等教育软件工程专业普遍存在底子薄、应用弱的问题,最关键的制约因素还是软件专业人才的结构性短缺,不仅缺乏系统分析员、项目总体设计师、产品经理,而且缺乏从事基础性软件开发与设计、软件测试的人才。目前,在软件人才供需方面出现了这样相互矛盾的难题:一方面,公司、企业招不到所需要的软件专业人才;另一方面,软件专业的毕业生动手能力差、就业难。之所以出现这种难题,究其原因,主要包括以下几个方面:
实践课程的教学通常依附于理论课程,往往是由理论教师根据需要安排实验课时,实验课程和实验教师均处于被动地位。实践课程的内容也脱离软件工程的实际,与社会及企业关于应用型人才的实践能力要求尚存在很大的差距。
长期以来,高校普遍采用的人才培养模式主要以课堂传授理论知识为主,实验、实训、实习的实践还不够充分。学生重理论,轻实践,实践教学地位也有待进一步提高。
当前高校从事实践教学的师资队伍大都是“从学校到学校”,缺乏实际项目的开发经验。高校由于与相关企业、行业的联系不多,难以及时准确掌握企业的最新技术发展动向,导致从事实践教学相应的实践应用能力、创新能力不足。
在实践教学中,普遍缺乏有效管理和质量意识,缺少符合实践教学特点的质量评价体系和考核机制,对实践教学的过程缺乏有效监督。
本文从合肥师范学院卓越软件人才培养实际出发,探讨解决以上软件人才培养的矛盾难题。在国家倡导的“卓越计划”的大环境下,合肥师范学院作为地方应用型本科高等院校,我们有必要研究面向卓越工程师的软件工程专业人才培养的实践教学体系构建,结合不同阶段的能力培养要求,建立梯进式的实践教学体系,构建应用型本科软件工程专业实践教学体系。
我院“卓越计划”软件工程专业培养方案,是按照既定的“三个平台”和“八个模块”课程体系[2]来重建的软件工程专业培养方案,改善了原有培养方案中效果不佳的地方,形成了全新的专业课程培养体系,如图1所示。
图1 “卓越计划”软件工程专业课程体系的构建
在“卓越计划”软件工程专业课程体系的构建中,我们分为通识教育平台、专业教育平台和素质拓展教育平台三大板块,既最大限度地培养了学生的软件开发和工程思维能力,又鼓励学生创新创业,参与社会实践活动,开拓视野,与时俱进。
首先,将“数据结构”课程从原来的本科第三学期移到第二学期开设,这样就与第一学期的“高级语言程序设计”课程联系起来了;并将高级语言程序课程中的“指针和数据结构”课程的指针部分内容融合到一起进行学习。接着,在原先的培养方案里,“Java程序设计”课程和“软件工程”课程都是到本科第五学期才开设的,但软件工程的项目教学因为学生之前没有案例合作的经历,导致学生学习软件工程实际效果不佳。而在新的培养方案中,将“Java程序设计基础”课程移到第三学期,与“数据库原理及应用”课程同时开设,学生在经过这些课程的学习之后,可直接参与到开放实验室项目的学习中,能够完成规模适中的项目。
最为可贵的是,专业拓展课也按照“软件开发岗位模块”和“软件测试岗位模块”来设立课程群,涵盖了Java程序设计基础、Java高级编程技术、Oracle开发技术、Web开发基础、JavaWeb开发技术、移动开发技术基础、移动高级开发技术、Python程序设计、云计算与大数据概论、互联网+营销、Linux系统及应用等课程,较大程度地培养了学生的工程思维。
按照大学本科四年分段,卓越软件工程班的实践教学大体分为四个阶段,即程序编程实验阶段、软件系统实训阶段、综合开发实训阶段和企业工程实践阶段,如图2所示。
第一阶段(大一),在完成高级语言程序设计实验和数据结构实验的基础上,开展数据结构课程设计。这个阶段的目标是训练学生的编程思维,注重对学生个体编程能力的培养。
第二阶段(大二),学生在系统学习数据库原理及应用、Java程序设计基础实验等核心课程后,可以2~3人结成小组,完成一定规模的软件项目,并将Java程序设计和数据库结合起来开展Java程序设计课程设计。在学习了Oracle开发技术实验、Java高级编程技术实验等课程之后,学生则可以完成更大规模的项目,便于开展Java综合课程实训。这一阶段的实训目的主要是培养学生以小组的形式开发软件系统,一定程度上训练学生的软件开发能力。当然,在这个过程中,学生会面临诸如项目计划、需求分析、软件测试等系列问题,借以启发学生思考应对软件开发可能遇到的问题的具体举措。
第三阶段(大三),学生在完成Web开发基础实验、JavaWeb开发技术实验、软件测试技术实验、软件工程实验等基础上,实施JavaWeb课程实训。在学习移动开发技术基础实验、移动高级开发技术实验的基础上,逐渐完成移动综合课程实训。这个阶段的教学模式是以软件工程的指导思想来指导学生进行软件的开发,学生可以通过5~6人的团队合作来完成更大规模的软件开发和测试,从而训练学生的工程思维,培养学生的团队合作精神。
第四阶段(大四),是企业工程实践阶段。在“软件项目管理实验”、“互联网+营销”等课程的学习基础上,学生进入企业实战学习,启发工程思维,激励学生在企业中完成毕业设计。毕业设计是由企业工程师和学校指导老师开展“双师制”指导,实现真题真做,学生由企业实习阶段顺利实现工作过渡。
图2 卓越软件工程班梯进式实践教学体系
经过对相关院校软件工程专业培养的调研,结合当前前沿的知识和技术,不断引入软件工程新的课程。
譬如,第四学期新设“Web程序设计”和“Oracle数据库开发技术”等新课程。其中,Web程序设计课程主要讲授Servlet、JSP、JavaBean和MVC模式等新技术,并通过一个指定的网站项目的实例演练,将所有章节的重点内容贯穿起来,每章项目代码层层迭代、不断完善,最终形成一个完整的系统。Oracle数据库是当前使用率排名第一的数据库开发技术,许多软件项目都需要使用Oracle数据库来做开发,学生学习该课程之后,便可以结合“JavaWeb开发技术实验”完成较大规模的软件项目的设计和开发工作。第七学期引入了“云计算和大数据应用”、“互联网+营销”课程等。
传统的实验考核通常采用教师验收的方式,缺乏上机考试环节,由于一个班的学生人数较多,教师验收时间长,很可能造成验收不全面、评价不统一等问题。因此,我院新建了软件工程实训室、移动开发实验室和网络综合布线实验室;招标软件实训平台建设,现由睿亚训公司开发的“云博”软件实训平台已经上线;积极组织本院程序设计课程组教师学习由浙江大学计算机学院开发的PTA软件平台的具体使用方法。
采用PTA平台上机考核,学生提交答卷后,系统直接给出评价结果,无须教师参与,而且系统会根据题目的难易设置多个测试数据进行测试,对于不能完全给出合适算法的学生也能取得部分成绩,并且能够有效区分学生的水平差异。该平台还可以平时用来训练学生的程序设计和实现能力,学生只要在可以上网的地方都可以演练,更加便捷。目前我院2016级软件工程专业的两个班级的高级语言程序设计正在使用该平台来做程序设计训练模拟,2015级软件工程专业的两个班级的数据结构课程的实验使用该平台来教学并完成期末考核。
本院采用Swimming Pool(“泳池式”)在线学习模式展开课程实训。“泳池式”教学理念是将课堂还给学生。教师从知识的传授者转变为学习的组织者、学习任务的提出者和学习情景的营造者,学生则从被动地接受知识转变为主动地获取知识。“泳池式”教学模式要求学生养成每日总结的习惯,记录学习笔记和学习日志,而学习日志则是效仿企业中的每天工作日报的形式,可以进一步把控学生的学习过程。学生通过“泳池式”在线学习模式的训练,学会自主学习,在技术层面和学习方法上逐渐“会学”并“学会”。“泳池式”教学模式既减轻了指导教师的工作量,又能够使师生在该平台上有效沟通,大大提升了实验实训的教学效果。
我院2015级软件工程专业在Java8基础课程的教学中引入了由锐聘学院开发的Java 8基础应用与开发平台,该平台采用企业的“泳池式”在线学习模式进行实训,实训内容是将具体的一个个小的任务让学生去自行完成,平台上既有视频资源和在线习题供学生演练,还可以让学生直接写在线笔记,并且在实训后期提供一个中等难度的任务,使得学生对Java知识的掌握起到拔高的作用,而教师还可以在该平台上随时查询学生的学习进度,随时答复学生的问题。此外,近年来,我院在“泳池式”教学模式的基础上,积极开展校企合作。如组织学生从暑假开始进入中软国际有限公司合肥分公司、合肥兆尹信息技术股份有限公司等软件公司实习,参与由达内公司的工程师指导的IOS企业见习等,均达到较好的实训效果。
软件工程专业是培养工程实用型人才的专业,对教师有更高的要求,既要有实际项目的开发经验,同时也必须具备一定的学术理论水平。因此,建立一支“双师型”专业教师队伍就显得非常重要[3]。为了实现这个目标,一是利用寒暑假时间,集中加强对师资队伍的培训,选派骨干教师到知名软件企业参与工程项目,大大提高了教师的工程实践能力;二是积极安排项目组老师参加新课程培训,引入“Java 8基础应用与开发”、“JavaWeb开发技术”等新课程,适时更新教学模式;三是积极组织教师参加全国高等学校计算机程序设计课程研讨会、工程应用型人才培养教学模式创新与改革研讨会等,同时参加机器学习及其应用等会议,让教师接触最新的教研、科研成果,了解发展动向,反哺教学,提升实践教学水平。
从2015年开始,对2015级、2016级软件工程专业学生实行本科生导师制,给本专业的每一位学生安排专业老师作为指导老师,从大学一年级起,就对学生的平时学习、职业规划等做指导,因材施教。对以就业为目标的学生,鼓励参与软件企业项目实践,加强实训技能培养,做到不掉队、不落伍,与时俱进。对以考研为目标的学生,根据个人发展计划和考研学校与专业,分析考研科目,并按照培养方案,分析相关考研课程的学习时间,进一步制定落实时间点的详细学习和复习计划。
近年来,国内很多高校在卓越软件工程师人才培养、实践教学体系改革方面进行了有益探索。安徽大学程凡结合其所在学院的软件工程专业提出“三横两竖”的课程建设思路,并在此基础上给出详细的课程设置方案[4]。辽宁工程技术大学软件学院吕欢欢等提出具有多层次结构的软件工程人才培养实践教学体系和教学模式,实例示范、三位一体、多层次等实践教学模式应用于软件工程专业人才培养[5]。湖北工业大学宗欣露、徐慧面向不同阶段的能力培养要求,建立层次化渐进式的实践教学体系,软件工程专业实践教学中采用梯进的形式,循序渐进地培养学生的工程实践创新能力[6]。东华大学计算机科学与技术学院李锋、夏小玲针对软件工程专业,从实践教学的内容、方式上对实践教学的开展方式进行了探索[7]。
我院在吸取相关院校“卓越计划”软件人才培养方案的基础上,结合本校实际,提出软件工程专业以程序设计不断线为目标,形成基础实践、综合实践、创新实践、专业实践的渐进式实践教育体系[2],目前正在逐步实施和完善中。
按照“卓越工程师教育培养计划”的实施方案要求,本文以合肥师范学院为例,构建全新的适合卓越软件工程人才的培养的软件工程梯进式实践教学体系,运用PTA软件平台、“泳池式”在线学习模式、探究式教学等教学模式,充分培养学生的创新能力、工程思维和专业技能,对挖掘学生卓越工程师核心潜力具有重要的理论和实践意义,对工程类其他同类课程实践教学亦具有一定的参考价值。
[1] 关于实施卓越工程师教育培养计划的若干意见[S]. 教高[2011]1号.
[2] 谢飞,范庆春.新型本科院校软件工程专业人才培养模式改革[J].合肥师范学院学报,2016(11):81-83.
[3] 姜书浩,潘旭华.面向卓越软件工程师培养的专业课程及实践教学体系研究[J].电子商务,2015(12):93-94.
[4] 程凡.面向卓越工程师的软件工程专业课程体系建设——以安徽大学为例[J]. 现代教育技术,2014(6):106-112.
[5] 吕欢欢,郭伟,张辉,王闯.面向卓越软件工程人才培养的实践教学体系研究[J].计算机教育,2016(1):38-42.
[6] 宗欣露,徐慧. 面向卓越工程师的层次化渐进式软件工程实践教学体系探索[J]. 教育教学论坛,2014(53):156-157.
[7] 李锋,夏小玲. 计算机软件工程专业卓越计划实践教学[J]. 计算机教育,2013(13):18-21.