欧阳宏基, 葛萌, 唐云凯
(咸阳师范学院 计算机学院,咸阳 712000)
软件产业是信息社会的支柱产业之一,充足、合格的人才保障是软件产业又快又好发展的支撑因素[1]。目前,我国约80%的软件人才来自高等院校,因而高校成为软件人才培养的重要基地。如何培养出满足企业要求、适应社会发展的合格软件人才是各高校软件工程专业教学工作者面临的首要问题。
近年来,我国计算机教育者借鉴国外研究,从不同角度、不同层次对软件人才培养进行了广泛深入的研究和探索。国内一些重点大学及示范性软件学院在软件工程人才培养模式、实践教育体系、校企合作等方面进行了探索和改革,取得了一定的成效。例如,电子科技大学软件学院采用CDIO工程教育理念,建立以专业实践能力培养为目标的专业人才培养模式及其体系[2]。内蒙古农业大学信息工程学院针对实践教学方面存在的问题,从构建校企合作实践教学基地方面提出了教学改革的对策和建议[3]。重庆大学软件学院,围绕实用型软件工程创新人才的培养目标,构建了量化可控的软件工程专业实践教学质量保障体系[4]。
地方本科院校占我国本科院校总数的 80%以上,是本科教育的主力军。但是地方高校建校相对较晚,其中很多学校由以前的专科学校通过重组、合并而成,由于这类高校的软件工程专业设置起步晚、师资力量薄弱、生源素质相对较低等问题,在软件人才培养模式改革方面进展缓慢,成效不够显著,从而导致培养的软件人才无法取得较好的就业率和就业质量,究其原因,主要是软件人才培养模式还存在如下问题:
地方本科院校受传统的“学术型”、“研究型”人才培养模式的影响较大[5-6],继承了“精英教育”阶段许多优秀的内容,课程体系中理论教学占主导地位,实践教学通常处于次要地位,实验是为验证理论而设。就目前用人单位对软件人才的要求来看,培养“应用型+创新型”人才是“精英教育”发展到“大众创业、万众创新”的必然要求。显然,这种适合于“精英教育”、为培养研究型人才的课程体系,无法适应以工程实践能力、创新创业意识为目标的人才培养。
传统大学的课堂是教师填鸭式单向灌输,课堂上教师一讲到底,教学模具化,学生被动接收,没有自主权,学习知识死记硬背,缺少发散性思维和质疑意识,实践能力没有得到有效引导、培养和锻炼。考核方式单一,不能将学生学习到的知识、能力和情感等进行综合有效评价。
随着移动互联网产业的兴起,“互联网+”正在改变着传统的各个行业,同时也带来了很多机遇和挑战。学校的软件教学内容还是相对传统的知识体系,目前软件行业的前沿、企业实际应用较多的相关技术,教师缺乏这方面的知识和实战经验。例如:Web应用的前端框架技术-Amaze UI、Easy UI等;服务器端SSH、JFinal框架等;移动互联网方面的Android、IOS平台、基于微信(小程序)的二次开发等。同时,绝大多数教师没有企业兼职经历,缺少商业经验。
此类课程大多是平时某门课程实践教学的一个延伸,验证性实践内容占较大比例,这极大的限制了学生实践综合性学习的开展和创造性思维的培养;此外,教学内容与企业真实案例相差较大,加上学时有限,学生即便完成了,那也只是“玩具程序”,缺乏实用价值。
目前各地方本科院校普遍采用校企合作方式进行软件人才实践能力的培养[7]。但是,其中还存在很多弊端:1)“学校为主、企业为辅”,这种合作模式容易偏离校企合作模式的本质目标、不易调动企业主动合作的积极性、不利于合作的内部机制和外部条件的健全和完善。2)企业培训的时间与学校教学安排不同步,培训内容“一刀切”,没有根据学生实际情况加以区分。3)校企合作的评价机制不健全。
本文探索地方本科院校的软件工程专业人才培养模式,以着力培养符合社会需求的“应用型+创新型”人才为目标,将工程实践能力和创新创业素养作为人才培养的核心任务之一。从课程设置、教学方法改革、实践体系设置、师资队伍建设、校企合作、创新创业教育等方面提出具体的改革措施,旨在为同类院校人才培养模式提供一定的借鉴。
将原软件工程专业课程重新进行整合,减少语、数、英等公共课比重,增加专业类课程和创新创业相关课程,将整合后的课程以模块为单位进行划分,制定出每个模块所要完成的时长、内容及要求,一个模块即代表一个学习任务。大体划分为五类模块:基础模块、专业基础模块、专业方向模块、创新创业模块和综合应用模块,如图1所示。
公共基础模块指的是计算机专业所有学生必须学习的内容,以公共课及简单易学、实用性强的计算机基础技能为主。专业基础模块是软件工程类专业课程的基础课,分为必修和选修两类。专业方向模块根据当前社会需求岗位实际划分,在专业基础课程上进一步学习某一方面的技术类课程。包括UI设计、Java Web、移动互联网开发、Android 和iOS开发等所需要的技能课程。创新创业模块是指依托“大学生创新创业科研训练项目”、“互联网+”创新创业设计大赛等活动激发学生创业精神和培养创业能力,在这些活动的过程中由教师提供创新创业相关课程的辅导。综合应用模块指的是在完成专业方向模块的学习后,以提升学生软件开发的综合素质为主线,以将学生培养成为一名合格的软件工程师或项目经理人为标准所制定的综合能力提高的模块项目内容,旨在培养学生的集体观念、团队协作意识。
图1 模块化课程体系设计
传统课堂教学模式以“老师主讲,学生主听”为主,学生处于被动的接受知识状态,学习效果不是很理想。转动课堂教学模式秉持“把教的创造性留给老师,把学的主动权还给学生”的教学理念[8]。重新分配每门课程的总学时,即课程总学时60%用于课堂教学,40%用于学生课下自主学习(课程预习、完成作业、复习等)。每次课的60%时间用于教师精讲(知识的重难点部分),40%时间和学生进行互动(研讨、实践训练等)。每次课结束前教师下达下次课的学习任务(自主学习、课堂互动和实践内容等)。教师通过网络学习资源和在线指导等方式帮助学生进行自主学习和练习,学生在上课前反馈自学情况,教师根据学生的总体学习情况决定课堂精讲内容。通过“转动课堂”授课模式,让课堂成为教师指导学生学习、锻炼学生能力、引导学生创新的主战场。
以软件项目为载体,按照软件开发过程,设计四层次递进式的实践教学体系[9]。1) 课程实验。针对课程知识点而设计的单项性实验,主要包括验证性实验、综合性实验和设计性实验。在任课教师的指导下由学生单独完成。通过课程实验使学生掌握程序设计语言、常用算法和数据结构等基础知识,具备软件开发的初步实践和相关技能。2) 课程设计。针对单门或几门课程而开设的综合性实践项目,
采取分组形式,按照软件企业真实岗位角色划分任务,以软件真实开发流程进行轮岗和角色体验。培养学生软件项目开发与测试能力,团队合作、沟通交流等职业素养。3) 企业实训。针对专业方向课程群而开设的企业实训,学生在企业工程人员的指导下,开展以真实软件项目为载体的技能训练,提升软件系统分析与设计、软件项目管理的初步能力。4) 综合实践。针对学生的知识、能力、素质进行立体训练而开设的综合性工程实践项目,包括毕业实习与毕业设计、行业技能培训与职业资格认证、顶岗实习、仿真模拟与创新实践、工程与社会应用实践等[10]。
在教学管理方面探索软件企业所采取的项目化管理方法[11],管理体系如图2所示。
图2 以项目化构建的教学管理体系
课程教师全面负责课程的教学与课程项目的实施,若同一门课程由2名以上教师承担教学任务,则指定教学经验丰富、教学水平较高且管理能力较强的教师担任课程项目经理,组织探讨该课程的授课方式与方法。对于实践类课程(除去课程实验),采取双导师制,学校导师负责理论教学,企业导师负责工程实践教学。课程模块项目经理直接领导该课程模块教师,统一协调课程项目与课程内容。年级项目经理则直接指挥课程模块项目经理,分析该年级的行业需求,制定年级人才培养总目标与分目标,组织设计年级课程体系,修改年级教学计划,选择毕业设计、课程设计项目。各职能部门为课程教师提供服务并进行检查、监督与考核。副院长领导各年级项目经理与职能部门,主要负责制定、修改软件工程专业人才培养方案与培养总目标,检查考核各职能部门与年级项目经理的工作。院长全面负责学院工作,制定学院长远发展计划、战略与政策,直接领导各副院长。
软件工程专业教师都具有扎实的理论知识,但普遍缺乏工程实战能力和经验。要培养和造就高素质应用型人才,必须要有一支专业理论扎实、教学能力强、工程素质高的软件工程专业教师队伍。学院应该研究制定相关激励政策,鼓励教师“走出去”到软件企业挂职锻炼,提高自身软件工程能力。例如,允许以软件企业挂职锻炼置换学校教学工作量、在职称晋升方面给予倾斜性、鼓励企业与教师共同申报科研项目、教师带薪到国内外重点大学进修等。
通过系列培训与政策激励,将本专业的教师训练成为一支可以参与企业研发、解决软件工程实际问题、有丰富实践经验的“双能型”师资队伍,使教师更好地投入到教学与实训环境中去。
我院从2016年开始探索实施“全年级渗透、顶岗实习置换课程”的深层次校企合作模式。大一年级的“C语言程序设计”、“职业生涯规划课程”等课程,软件企业真实体验等活动都由校企合作单位的软件工程师讲授,并且参与专业培养方案的制定。大二年级的课程设计、实训类课程交给企业完成。大三年级,企业将真实软件项目的部分内容带进学校,选拔优秀三年级学生参与,锻炼学生的软件实战、团队协作、沟通表达等能力。从大三年级暑假到当年十月底,学生集中进行为期四个月的企业实训,实训内容要根据学生的真实水平加以区分,为了充分发挥校企合作单位的积极性,实训内容的讲授和学生的全程管理都由企业负责完成。通过集中实训后,对于已经找到工作并且工作单位愿意接收学生去实习的,学校同意学生到工作单位顶岗实习,并将实习内容置换大四年级的相关课程。企业参与大四年级的毕业设计,对于有条件的学生实施“双导师制”,企业导师主要从选题、项目实施过程、技术难点方面予以指导。
创新创业能力培养按照“三阶段”过程进行实施[12],第一阶段:创新创业基本素养的培养。大一阶段,通过开展创新创业职业规划课程、典型创新创业案例学习、软件企业真实体验等活动,使学生了解软件行业基本情况,培养新生的专业创新创业的兴趣。第二阶段:创新能力的培养和创业意识的树立。大二阶段,在学生掌握专业基础上,以“创新创业大学生科研训练项目”、“互联网+”大赛、“蓝桥杯软件设计大赛”、吸收本科生进教师课题组等创新性项目为驱动,引导学生理解和掌握专业知识和技能,培养分析和解决实际问题的思维方法,提高创新意识和团队协作能力。第三阶段:创新能力的检验和创业实践。在大三、大四阶段,通过校企合作方式,对有潜力并获奖的大创项目和“互联网+”大赛项目,聘请企业导师进行专项指导,给学生提供创业锻炼机会。
咸阳师范学院计算机学院对“应用型+创新型”软件工程专业人才培养模式经过多年的实践探索,实施效果显著提高。(1) 就业质量明显提升。由于扎实的理论知识、过硬的实践和创新能力,软件工程专业毕业生深受用人单位欢迎,总体就业率每年名列全校各专业前3名。近几届毕业生中30%左右的学生在北京、上海、深圳、杭州、西安等一线城市企事业单位就业,其中不乏百度、腾讯、借贷宝等国内知名IT企业;约6% 的毕业生进入西安交通大学、西安电子科技大学、暨南大学、西北大学、陕西师范大学等知名985、211大学深造。(2) 创新能力提升显著。近3年每年都有5组以上“大学生科研训练项目”获得国家级立项资助,连续两年都有学生获得“蓝桥杯”程序设计大赛国家级二等奖。2016年有两组学生获得陕西省高校“互联网+”创新创业大赛三等奖,一组学生获得咸阳市青年创业大赛二等奖。数十名学生在核心期刊上发表学术论文。
针对地方本科院校软件专业人才培养中存在的一些问题,笔者探索并实践了“应用型+创新型”软件工程专业人才培养模式,从课程设置、教学方法改革、实践体系设置、师资队伍建设、校企合作、创新创业教育等方面提出了一些改革
措施。通过近年来的探索与实践,此模式有效提高了学生的就业率和就业质量,为社会培养出了合格的软件人才。
[1] 陈献忠,王淮亭,万爱霞,等.技术本科院校软件工程专业人才培养模式创新探讨与实践[J].职业技术教育,2014(35):5-7.
[2] 陆鑫,傅彦.软件工程专业实践能力培养体系设计探讨[J].实验科学与技术,2011,9(5):247-249.
[3] 田永红,刘利民,马志强,等.校企合办软件工程专业校外实践教学改革研究与探索[J].内蒙古农业大学学报(社会科学版),2016,18(5):99-103.
[4] 徐玲高,文俊浩,吴映波,等.软件工程专业实践教学质量保障体系探索[J].实验室研究与探索,2015,34(8):205-208.
[5] 刘苗苗,张永生.软件工程专业人才培养模式创新与实践[J].辽宁工程技术大学学报(社会科学版),2013,15(5):552-554.
[6] 谢飞,范庆春.新型本科院校软件工程专业人才培养模式改革[J].合肥师范学院学报,2016,34(6):81-83.
[7] 张晓晶,张淑丽,刘胜辉.软件工程专业校企合作“2+1+1”人才培养模式的研究与实践[J].黑龙江教育(高教研究与评估),2013(3):56-58.
[8] 杨玉强,韩丽艳,钟奇澎.工科专业转动课堂教学模式的研究与实践[J].渤海大学学报(自然科学版),2016,37(1):51-55.
[9] 徐洪智,覃遵跃.校企合作共建软件工程专业实践教学体系[J].实验室研究与探索,2013,32(6):128-130.
[10] 吴修国,何丽.校企合作培养应用型人才的研究和实践[J].中国管理信息化,2016,19(19):233-235.
[11] 曾明星,周清平,王晓波,等.软件工程专业“项目化”教学实施体系的构建[J].实验室研究与探索,2013,32(5):158-163.
[12] 文志诚,李建设,曹春丽.以创新创业能力培养为核心的软件工程专业实践教学体系改革研究[J].福建电脑,2015(10):64-65.