张锦 刘宏
摘 要:通过软件工程专业特点分析,讨论目前软件工程人才培养所处的困境,介绍了新工科背景下三阶段迭代式软件工程人才培养模式。该模式在教学安排上分3阶段实施:在教学目标上迭代式推进,在实践教学上以项目为核心,在教学组织上以课程群模式展开。该模式践行了产学合作协同育人的思想,在模式拓展上支持“本硕一体”的自然延伸,并在实际人才培养中得到了较为广泛的认可。
关键词:软件工程;人才培养模式;新工科;软技能;软件工程能力
DOI: 10. 11907/rjdk.192446
开放科学(资源服务)标识码(OSID):
中图分类号:TP434
文献标识码:A
文章编号:1672-7800(2020)001-0011-04
0 引言
软件工程自1968年被提出以来,已经走过50多年的历程[1-2]。国外对软件工程的理论研究、工具开发、产业发展等已相对成熟,特别是在人才培养方面已形成相对完备的培养模式与体系。我国软件产业从零逐步发展为万亿级规模。软件工程专业发展集中反映了一个新专业从无到有、从萌芽到逐步成熟的过程,对该专业发展进行回顾对当下如火如荼的新专业设立与建设极具参考价值。
从1980年中国首届工程研讨会开始,我国软件工程专业发展大致经历了3个阶段。
第一阶段:萌芽阶段(1980-2000年)。1980年代北京大学等部分高校试办了软件工程专业,但并没有大规模设立,有的高校在学科调整时重新将软件工程并人计算机科学与技术专业,此时国内软件工程专业从属于计算机科学与技术范畴;第二阶段:跨越式发展阶段(2000-2015年)。2000年,为适应中国经济结构战略性调整,实现软件产业和软件人才培养的跨越式发展,国务院发布了18号文件《国务院关于印发鼓励软件产业和集成电路产业发展的若干政策的通知》,对软件工程专业发展起到了决定性影响。2001年经教育部和国家计委批准,全国成立了35所示范性软件学院,软件工程教育迅速发展壮大[3-4]。教育部出台了一系列政策,赋予国家示范性软件学院自主招生考试等自主权,软件工程硕士规模迅速扩大,出现了多个学院积极招收软件工程专业硕士的局面。2011年软件工程被列为与计算机科学与技术并列的一级学科,并形成了本、硕、博三级完整的人才培养体系。在此期间,高校在为产业发展培养大量软件高级人才的同时,出现了培养目标模糊、培养质量不高、培养过程混乱等问题,软件学院自主招生权逐步被取消;第三阶段:调整优化阶段(2016至现在)。2016年教育部开展学科评估以来,诸多高校主动优化学科布局,对学位点进行动态调整撤销及增列。软件工程专业自2016年连续三年被撤销数量位居前列(其中2016、2017和2018全国分别有35个、14个、19个软件工程博士/硕士学位点被撤销),引发了社会上所谓“软件工程危机”的关注和讨论。而实际上,这种调整让高校更关注所办专业的质量,综合评估学科现有基础、发展规划后进行的调整是软件工程必经的调整和优化阶段。
实际上软件工程人才需求旺盛,软件工程专业危机是伪命题[5]。统计显示,2018年我国软件和信息技术服务业实现收入超过6万亿元,增速14.2%,居国民经济各行业之首;从业人员超过600万;行业薪酬持续上涨,工资总额增长13.4%。与此同時,大数据、人工智能、物联网等新领域的开辟,为软件工程提供了更加广阔的发展空间,对高素质软件工程人才的需求更为迫切。但现有软件工程人才培养模式与行业需求之间差距明显,亟需从新的视角审视软件工程专业特点,改革软件工程人才培养模式。在该背景下,从3个方面对软件工程专业进行分析:①软件工程专业与计算机科学与技术专业之间的关系;②软件工程专业教育特点;③高校软件工程专业教育现状。在此基础上,提出一种3阶段迭代式软件工程人才培养模式,并对软件工程人才培养模式设计的关键问题进行探讨。
软件工程专业源于计算机科学与技术专业,二者联系紧密。首先是相似之处,软件工程是从计算机科学与技术专业发展而来的,皆属于计算机类下一级学科。同时,计算机科学与技术一级硕士点设置有计算机软件与理论二级学科,与软件工程专业之间重叠明显。此外,软件工程的学科范围从狭义的软件拓展到“计算机硬件之外的范畴”,以及“软件定义一切”的理念,这与计算机科学与技术专业之间有更多交叉之处;其次是区别方面,软件工程是与计算机科学与技术并列的一级学科,拥有完备的本硕博三级人才培养目标,在专业侧重、人才培养、研究领域等方面差异明显。特别是两个专业在硕博阶段具有相对清晰的划分,在人才培养方面具有明显的专业特点,但在本科人才培养方面,相当多的高校或教师并未深入考虑两个专业人才之间的差异,导致两个专业之间相似度很高、专业个性极度缺乏。同时将两个专业融会贯通地糅合起来也是可行的,需要学生具有扎实的基础,教师具有两个领域的背景,从而可游刃有余地使学生培养在两个专业之间自由转换,但相当部分高校或学生难以具备这样的条件。因此明确软件工程专业特点,对于培养计划调整和优化极为必要[6]。
相比于计算机科学与技术专业,软件工程专业教育有两方面的特点:①对软件工程能力要求较高;②对软技能要求较高。软件工程能力可以包括从简单到复杂逐步深入的3个层面能力,即程序设计能力、软件能力和软件工程能力。程序设计能力指在算法层面具备解决复杂问题的算法设计和实现能力;软件能力指具备独立设计和实现小型软件系统(涵盖数据库、软件体系结构、网络服务等)的能力;软件工程能力指在软件能力基础之上,具备组织小规模团队进行协作开发的能力,以及针对复杂问题构建较复杂软件系统的能力。这3种逐层递进的能力是软件工程专业人才应当具备的核心能力要求。软技能可以狭义定义为表达能力、沟通能力、协调能力这3个方面。表达能力指能够清晰、准确、简要地表达自己的思路,能够让别人听得懂自己;沟通能力指能够快速、准确理解对方的意思,并作出合适的响应,能够听懂别人所表达的意思;协调能力指能够组织、管理一定规模的项目团队,让组员各司其职,发挥出“1+1>2”的团队能力,该能力是软件工程专业人才应当具备的内在核心能力。
但目前在高校专业水平评估体系之下,依靠高校现有资源难以有效完成对学生上述两方面能力的培养,其主要困难在于缺乏高素质的师资团队、真实的项目环境。在示范性软件学院设立之初,机制上给予了较高的自由度,软件学院采用多种方式构建具有软件工程能力的教师团队,包括引入一批来自企业的软件专家加入教师团队、外聘企业技术专家主讲部分课程等。彼时软件学院财务独立、教师职称评定可以体现软件工程特点,学生软件工程能力培养较为突出。但当前环境下,相当一批软件学院参考或完全列归信息学院/计算机学院,职称评定转向以SCI论文、科研项目类指标为主,这是软件工程方向教师不太擅长的领域,这些举措不仅导致吸引企业技术专家加盟变得极为困难,而且大幅降低了原有教学团队积极性。此外,软技能培养必须依托真实项目,才能收到最佳效果。而目前高校以课程为主的教学模式,注重理论课堂教学、实践教学从属理论教学的导向,使实践教学效果大打折扣、流于形式。
1 基于新工科理念的三阶段迭代式软件工程人才培养模式
2016年6月教育部首次提出“新工科”,对上述问题的解决给出了信号,随后在“复旦共识”、“天大行动”、“北京指南”系列探讨和推广工作中,逐步明确了新工科应具备的内涵特征,即前瞻性、引领性、开放性、实践性、交叉性、通宽性等。在该背景下,一种三阶段迭代式软件工程人才培养模式被提出[5,7]。针对软件工程专业人才培养存在的问题,该模式进行了较为全面的设计,并在实践教学中进行彻底尝试。该模式包括3个相互衔接的部分:三阶段的本科人才培养计划设计、以课程群为纽带的课程教学控制、以企业实际项目为载体的实践教学探索,如图1所示。
(1)三阶段的本科人才培养计划设计。本科人才培养计划是人才培养依据和基础。三阶段教学目的以软件工程能力和软技能能力两方面核心能力的培养为出发点。在设计培养计划时,从教学时间、教学理念、教学内容3方面着手。三阶段教学时间设计中,将本科四年划分为“1+1+1”3个阶段,即第一阶段的一年是入门阶段;第二阶段的两年是综合提升阶段;第三阶段的一年是效果展现、评估和迭代改进阶段。三阶段教学内容设计中,第一阶段是前两学年的理论准备阶段,第二阶段是第三学年的技术掌握阶段,第三阶段是第四学年在企业的综合提升阶段。三阶段专业理念教育中,第一阶段是大一时进行的专业启蒙阶段,第二阶段是大二和大三时的专业拓展阶段,第三阶段是大四时的专业综合提升阶段。
通过三阶段的分段设计,进一步明确每阶段的主要任务,将人才培养任务进一步细化;同时,将目标的实现落实到具体课程环节、实践环节,通过教学过程管理保证培养目标的实现。
(2)课程群为纽带的课程教学控制[8]。课程质量和效率是人才培养最基础的组成单元。课程教学控制部分包括几个方面。首先,在教学内容上,基于课程群在多门关联课程之间相互协调统筹安排,以实现教学资源、教学效果、教学内容优化配置,提高课程教学质量和效率;其次,在教学形式上,选择特定课程、以软件项目为载体培养学生的软件工程能力。项目式课程教学在教学内容上成为衔接课程群内多门课程的纽带,形成高内聚的大课,提高课程质量,同时可够锻炼学生软件能力及沟通、表达、协调等软技能。在教学考核上,建立以过程考核为核心的评估方式。这种评估方式更符合软件过程原理,将之前重视书面结果的理念更新为重视过程实质的理念。
(3)以企业实际项目为载体的实践教学探索。針对高校难以提供实际项目环境的困境,在人才培养模式中引入企业资源共同进行人才培养。其核心在于3点。首先,基于三阶段教学计划安排,将大四第一学期作为企业实践学期,在实践效果良好时可以将实践环节延长到大四第二学期。在教学安排中,至少需4个月的时间进行企业实践,低于两个月的企业实践基本上流于形式;其次,需有足够的企业资源,使接纳全部学生进入企业成为可能。企业如果让学生真正进入项目,会进行一定筛选,每家企业接纳的学生数一般以10人左右为宜;最后,实际管理以企业为主、教师参与。所谓以企业为主,是让学生融入团队、遵循企业规章制度、感受软件企业氛围,为实际工作作好准备;同时,以企业为主,是希望企业为学生实习提供更多资源支持,包括实习薪资提供、技术培训等。
2 培养成效及潜在问题
2.1 人才培养成效分析
本文软件工程专业人才培养模式已在湖南师范大学软件工程专业实施,并在多个方面取得了较好收效。
(1)在软件工程所有年级同时实施新的专业培养计划,极大提高了培养计划的时效性,这在学校所有专业中是首次。培养计划设计以课程群为单位,模块化特征较好,避免培养计划制定中被具体某一门课限制的问题;培养计划特别考虑了软件领域技术更新快的特点,设置了相对通用的课程,保持培养计划相对稳定。
(2)独立设置的实践环节加强了学生软件工程能力。在大二和大三单独设置以实践为主的课程,集中在每学期最后3周左右以团队形式完成一个具有一定规模的软件系统。在提升学生软件工程能力、软技能的同时,学生也熟悉了常见的软件工具。
(3)企业项目实践提升了学生软技能。企业环境是一个全新环境,学生在这个环境下会遇到之前难以预计的各种问题,这对学生是一个全新体验和挑战。
(4)在该模式下培养的学生在竞赛中取得突破,获得了较好成绩。在2019年8月的湖南省大学生程序设计竞赛中,本校2016级软件工程专业3位学生组团,以企业项目为蓝本参加应用开发类竞赛,获得了省级一等奖。这对软件工程专业是新的突破,而且3位同学可据此进入保送读研的序列,大大激发了其他年级学生的学习积极性。
(5)学生就业机会明显增加。在实习期间,优秀学生可争取到4 000元左右的实习薪资,而且企业主动为学生提供转正机会。
2.2 问题讨论
在人才培养模式的实施与迭代过程中,出现了很多值得探讨的问题。
(1)学生积极性和学习意识不高。培养模式能否成功的关键在于能否真正提高学生能力,而学生积极性不高是教学改革中碰到的棘手问题。在实践环节实施时,学生出现种种状况,包括:平时实践能力差,不敢去企业实习的情况;沉迷于游戏、荒废学业,没有企业接收的情况;试图以考研为由降低实践要求等。以上问题普遍存在,涉及到大学整体培养导向、教学考评、高校就业排名等。就目前情况而言,严格考核、挤出水分,切实提高学生学习自觉性是趋势,也是唯一有效方案。
在推进过程中,项目组采用多种方式共同解决问题,包括:在企业实践环节安排教师团队全程跟进,协调企业和学生之间的问题;在低年级协同学工办推行导师制,挑选教师作为学生在整个大学期间的学业导师,限定一位导师指导不超过5位本科生,加强专业理念教育等。
(2)企业资源支撑问题。2016级软件工程专业接近60位同学分布在6家企业,上述企业均与教师团队有前期各种类型的合作,企业对参与实习的同学提供对应实习薪资,在企业实践方面投入较大,在目前的实习规模方面合作比较顺利。但这种人才培养模式在推广过程中可能存在问题,特别是对于IT产业不发达的城市,难以有合适、数量足够的实践企业,这是制约性因素。
(3)培养模式的长效机制问题。本文提出的人才培养模式需要长期、稳定、足够的教学资源投入才能保证培养模式持续推进,需要在学校和学院层面形成可预期的长效机制。目前培养模式的持续推进依托教学团队多个基金项目支持。整个人才培养过程需教师团队投入大量精力,包括项目选题、需求讨论、设计评审、代码检查等,但这些教学投入在目前的教学评价体系内难以被量化认可,若不能形成长效机制将难以长期持续推进。
3 结语
“软件工程专业危机”引发了一系列社会讨论,促使教育工作者从更理性的视角观察软件工程专业。本文首先简单梳理了我国软件工程专业发展概况,表明软件工程目前发到一定阶段,必然经历合理调整与优化,该专业发展的社会需求依然强劲,前景依然光明。同时,本文分析了软件工程作为一级学科与计算机科学与技术学科之间的区别与联系,特别指明在人才培养方面软件工程关注的核心能力。在此基础上,阐述了一种着眼于软件工程人才核心能力的培养模式——三阶段迭代式软件工程人才培养模式。本文不仅总结了该模式基本理念、实施过程以及实施效果,同时指出该模式实施中存在的核心问题,包括学习积极性和学习意识问题、企业资源支持问题、培养模式长效机制问题。
参考文献:
[1]杨芙清.软件工程教育的思索与实践[C].2007年全国高校软件工程专业教育年会,2007: 9-15.
[2] 杨芙清.中国软件工程历程与发展[R].深圳:深圳大学,第十七届全国软件与应用学术会议,2018.
[3]卢苇,邢薇薇.产学研结合做中學育人——中国示范性软件学院十年巡礼之二[J].高等工程教育研究,2011(5):32-39,71.
[4] GONG S Y,LI D,YIN N. et al.International collaborative programs inSoftware Colleges of China[J]. Computer Education, 2016(8):51-54.
[5]张锦,蔡美玲,窦亚玲,等.面向工程教育认证的三阶段迭代式软件工程人才培养模式研究[J].计算机工程与科学,2018,40(1):118 -123.
[6] 孙艳春,王立福,梅宏.软件工程本科教学的探索与实践[J].计算机教育.2009(16):112-115.
[7] 张锦,刘宏.以项目为核心的软件工程专业人才培养模式研究[J].计算机教育,2019(8):76-80.
[8]张锦,蔡美玲,杨晓春,等.基于课程群的项目式软件工程课程教学模式[J].计算机教育,2019,(8):45-50.
(责任编辑:江艳)
基金项目:湖南省教育厅创新平台开放基金项目(15K082);湖南省教育厅教改项目(湘教通[2018]436号、湘教通[2019]291号);湖南省研究生培养创新实践基地项目(湘教通[2019]248号);湖南省研究生教改项目(JG2018A012);国家教育部产学合作协同育人项目( 201702001043.201801037136)
作者简介:张锦(1979-),男,博士,湖南师范大学信息科学与工程学院教授、博士生导师,研究方向为软件工程、人工智能;刘宏(1963-),男,湖南师范大学信息科学与工程学院教授、博士生导师,研究方向为人工智能、智能家居。本文通讯作者:张锦。