张 锦,刘 宏
(湖南师范大学 信息科学与工程学院,湖南 长沙 410081)
自从2016年教育部发布每年的动态调整撤销和增列的学位授权点名单以来,软件工程屡次引发社会关注和讨论。2016年,全国共有35个软件工程博士/硕士学位点被撤销,是撤销学位点最多的专业;2017年,全国有14个软件工程学位点被撤销;2018年,全国有19个软件工程学位点被撤销,是撤销学位点第二多的专业。所谓软件工程专业危机,是由于担心软件工程专业可能会被取消所引发的争议而提出的概念。这引起了“软件工程专业危机”业内的讨论,实际上该问题自软件工程专业被设立就存在,而且教育界和产业界对该问题的理解明显不同[1-2]。高校主动撤销软件工程专业源于专业评估的压力,目的是集聚资源着力发展主流专业;产业界之所以批评软件工程专业源于高校难以培养符合企业需要的软件工程人才。实际数据表明,软件行业发展迅猛,急需大量高素质的软件工程人才,从这个角度来看,软件工程专业危机是伪命题,核心在于如何解决人才问题。根据工信部统计数据,我国软件和信息技术服务业2018年实现收 入63 061亿元,增速14.2%居国民经济各行业之首;从业人员643万人,同比增长4.2%,工资总额增长13.4%。
这种反差现象说明,软件工程专业的发展空间是广阔的,但人才培养模式与预期相比有明显差距,亟待从新的视角提出解决思路。软件工程专业自从提出以来就一直面临种种争议,业内学者同样在持续结合不同阶段教育教学的新思路推进软件工程专业的教育教学研究。在大规模开放在线课程(massive open online course,MOOC)阶段,软件工程专业由于其特点较早就开始借助MOOC促进教学改革[3],文献[4]提出在软件工程专业结合MOOC与传统教学构造课程体系与培养方案,建立混合式教学模式的保障与质量评价体系。在工程教育认证日益受到重视的背景下,成果导向教育(Outcome-Based Education,OBE)理念得到了广泛认同,以工程能力为核心的教育产出成为评估工程教育质量的重要标准。文献[5]基于OBE理念对清华大学软件工程专业教学方案进行了改造和优化,特别给出了具体到课程层面的教学设计;文献[6]探索了在软件工程专业基于OBE进行一体化实践教学体系改革的尝试;文献[7]探索了基于OBE理念在软件工程专业进行集中实践教学的实践。正在如火如荼推进的新工科建设中,软件工程专业同样应当走在前列[8]。文献[9]在新工科建设中强调企业的作用,提出深度校企融合才能培养出实践能力强并具有创新意识的软件工程人才,因此需要企业在人才培养目标定位、教学实施、就业等育人过程中充分发挥作用。
本文提出以项目为核心的软件工程专业人才培养模式,该模式契合工程教育认证的基本理念并结合软件工程自身的专业特点,以软件工程综合能力培养为核心,能为工程教育认证提供坚实基础,符合新工科专业建设的内在要求;其核心特征可以归结为“理念坚实、项目为核、实践为体、本硕一体”这4个方面。本文应用该模式的理念对湖南师范大学软件工程专业进行了教学改革与实践。结果表明,该模式有效提高了软件工程专业的吸引力,同时学生的学习积极性、实践能力等都有明显提升。
软件工程人才培养模式是一个复杂而多变的课题,其内涵会随着多种因素而变化。就目前专业发展的整体环境而言,以下3方面认识是学界和业界较为一致的观点,即软件工程人才培养应当关注实践能力培养,特别是团队合作所需要的软技能;注重校企合作,紧跟业界最新进展;具备扎实计算机基础,能迅速适应和融入不同行业。当然构建各类软件工程人才培养模式的目标是满足不同阶段的需求,其中:短期目标是以企业为主,培养高质量软件工程人才满足产业需要;中期目标是满足工程教育认证要求,提升专业水准;长期目标是培养软件工程能力,满足新工科建设需要。
以项目为核心的软件工程专业人才培养模式具有如下4方面核心特征。
(1)理念坚实,即在培养体系设计时强调软件工程专业理念,传递准确而深刻的专业理念,并让其跟随学生的整个职业生涯。这与之前学界所强调的“宽基础、淡化专业”的理念不是背道而驰,而是互补关系。首先,专业理念教育强调专业能力培养,源于专业但不拘泥于专业,更强调学生基于专业能力迅速适应所从事的行业,一通百通;其次,技术更新速度加快,但专业理念相对稳定,更能适应长期的从业需求。
(2)项目为核,即在培养体系中设计不同的项目贯穿整个培养阶段,依托项目培养项目能力。实际上,小到个人每日工作安排、大到探月工程,均可以项目为单位。项目是IT行业的常见的基本单元,或大或小或简单或复杂的项目将伴随着IT从业人员的整个职业生涯。毫无疑问,在工作中将项目做到优秀,将是对个人能力的极大肯定;同样,培养项目能力是最自然的人才培养要求,而通过项目本身来培养将是最为直接和有效的培养方式。
(3)实践为体,即将实践环节提升到与理论教学同等重要的程度形成理论与教学相互支撑的平衡局面,恢复实践在软件工程学科中载体、实体和主体的地位。软件工程专业自身是从实践中发展而来的,实践是软件工程专业的核心与灵魂之一。实践是检验软件理论、方法和工具是否有效的途径,“最佳实践”这一名词是对软件工程实践性的简要而准确的概括。在培养计划设计中,需要考虑不同层次、不同目标、不同难度的实践,并考虑与相关理论课程进行融合。
(4)本硕一体,即贯通本硕界限,构造“教学与科研一体、本科与研究生一体、理论与实践一体”的互动形态。高水平科研与高质量本科教学是相辅相成的,对于软件工程这一实践特性突出的学科而言更是如此。高效实用的软件工具、软件系统、软件方法既是研究的范畴,也自然能为本科教学所用。形成教学与科研、本科与研究生、理论与实践的有机融合是提出教学模式的核心和目的之一。
专业理念相关的教育,不只在软件工程专业极为缺乏,在许多其他专业均是如此。其原因是多方面的,包括对立看待“宽基础”和“精专业”二者之间的关系;不在低年级开设专业导论课程;对专业特点认识不足,将其与计算机专业混淆在一起;缺乏专业自主性,专业基础薄弱等。同时存在计算机和软件两个专业的高校中,上述问题相当普遍。
为此,课题组从3个层面构建专业理念教育体系:①在时间上,建立从大一到大四贯彻始终的专业理念内容体系,保证在每个学年都有专门课程承载专业理念教育。②在内容上,根据专业理解程度对应的专业理念教育内容逐步深入。大一侧重理解软件工程自身内容;大二侧重理解软件工程对个体的要求;大三侧重软件工程对团队的要求;大四侧重软件工程对从业人员的要求。③在形式上,采用专家讲座、企业实习、专业课程等多种形式,让学生从更多的维度、不同的视角理解软件工程。
项目是该人才培养模式的核心,需要以项目为载体提升学生的工程能力,包括团队协作能力、软技能、独立解决问题的能力等。为了满足不同年级、不同水平的培养需要,需要多层次的项目群。①针对年级不同,项目侧重各不相同,大一项目以个体程序设计能力为主;大二项目以小规模软件设计实现能力为主;大三项目以具有一定规模和难度的软件系统设计实现为主;大四项目以具有实际项目背景的软件项目为主。②针对项目类型,建立了多种形态的软件项目以适应不同水平和需求的学生。比如在大三年级可以设立具有一定复杂度的软件项目,如传统软件系统开发项目;具有实际需求的软件项目;结合算法研究类软件项目;基于开源代码标注与提升的软件项目。为了提升学生的沟通能力、表达能力、协调能力等软技能,要求学生组成项目团队共同完成具有一定难度的项目。项目团队必须分工明确、相互协作,在有限时间内完成具有一个质量要求的项目,在此过程中培养在课堂理论讲述中无法锻炼的软件工程能力。
实践既可以是一种方式,也可以是一种能力。无论是工程教育认证,还是新工科建设,都高度重视实践环节。由于软件的特殊性,实践在软件工程中的重要性更为凸显;相比于其他工科专业,如何强调实践在软件工程中的重要性都不为过;很难想象不具备基本编码能力的人被称为软件工程人才。由于软件的抽象性和不可见性,类似于操作系统、编译原理、网络等课程中的基本原理,如果不通过实践是很难深刻理解和掌握的。
因此,提出的人才培养模式特别强化在软件工程人才培养中,恢复实践的主体地位;更进一步,课题组将探索以实践为核心、理论为辅助的教学模式。为了恢复实践的主体地位,在培养计划中调整如下:①在覆盖度上,对所有专业课程均设置实践环节,按照两倍的理论课时安排实践内容。②在集中度上,以课程群方式组合相关课程,同一课程群可以共享同一个实践项目。③在重视程度上,在计算工作量时,将实践课时和理论课时同等对待,激发教师积极性;同时将实践分数占比提高到不低于50%,强化学生对实践的重视度。④在形式上,设计了分散实践、集中实践、企业实践等形式以适应不同阶段的实践需要。集中实践是在每个学年的学期末安排至少3周的实践时间,全部用于单独实践;调整教学计划,将大四一整年空出来安排学生到企业参与实践。
对于软件工程专业而言,教学与科研是自然互通的,但相比于国外,目前国内软件工程的科研水准滞后于软件行业发展,难以为软件产业发展提供足够的支撑;这也在相当程度上影响了软件工程教育水准的提升。同时,国内目前软件工程专业的硕士研究生有一批是跨专业考生,或者调剂生,其基础距离软件工程研究有一定差距,需要尽快补足短板才能为研究提供基本能力支撑。在培养模式设计时考虑采取如下措施:①将科研课题以项目形式引入本科教学,以项目为载体将研究生和本科生搭配,增加项目的研究性。②要求跨专业研一学生参与本科的集中实践,与本科生组成项目组补足软件工程能力训练。③选拔部分优秀生进入单独组建的本科创新创业实验室,与研究生一起组队参与相关竞赛,以赛代练。④依托企业共建产学研究基地,派驻本科生和研究生进入企业完成相关项目。
基于本文提出的软件工程专业人才培养模式,项目组在湖南师范大学软件工程专业进行了实践验证。为此,项目组对软件工程专业2016级培养计划进行了全面修订,以保证人才培养模式的顺利实施。同时,课题组解决了诸多教学协调问题,在2016、2017、2018 3个年级同时实施了新的人才培养模式。表1是2016级培养计划在课程方面进行的修订,不同学校可以根据各自特点进行有针对性的调整。需要指出的是,学校一般4年左右对培养计划做一次全面更新,以保证教学稳定性;但对于软件工程专业并不适合,其原因主要是软件技术更新速度很快,4年时间一般都更新了一代,容易导致学校所学技术已经被淘汰这类问题。
通过培养计划等调整一系列教学调整重组,湖南师范大学软件工程专业在各个年级、分阶段实施了所提出的人才培养模式,并取得了预期成效,具体包括如下4个方面。
(1)实现了从大一到大四全程贯彻软件工程专业理念教育。在培养计划中,4个年级根据学生所处的不同阶段,设置对应的专业理念教育课程,让学生逐步明确软件工程专业的内涵和本质。其中:将软件项目管理/C++(12160157,48课时)拆分为两门课,即软件项目规划与实践(16课时,计划在第2学期开设)和IT项目管理(32课时,仍然在第6学期开设),分别对应大一和大三年级的专业理念教育的载体课程;大二学年第三学期开设计算机系统基础(二)(将原第七学期开始的云计算理论及应用课程调整而来)作为专业理念教育的载体课程;大四学年通过完整的企业实践落实专业理念教育。通过完整的专业理念教育让学生初步理解软件工程的基本概念、知识体系与学科范畴,理解软件工程技术与过程管理,以及软件工程专业的职业素养和要求,为从事软件行业相关工作打下坚实基础。
表1 培养计划异动申请
(2)突破原先从属于理论的实践教学模式,切实加强实践教学的主体地位。在每个学期均选择一门或几门课程构成课程群(大三将软件工程、系统分析与设计、软件综合实践(二)3门课组合为课程群),集中一个月进行以项目为载体的软件工程实践教学。在内容上将关联课程组合为项目实践提供支持;在考核上将实践权重增加到不低于60%;在形式上,团队考核和个人考核相结合。根据培养计划安排,在第三学期和第五学期将专业课考试提前,分别为软件综合实践(一)和软件综合实践(二)预留4周时间进行集中工程实践,切实提高实践教学质量,为第七学期的企业实践训练提供支撑。
(3)深度贯彻产学合作、协同育人思路,切实提高学生综合素养。调整培养计划,将大四学年全部用于企业合作,展开全面深入的产学合作协同育人行动。与国内知名软件企业合作,通过面试、笔试等环节让本科生和研究生直接参与企业的真实项目实践,在真实工作环境中提高综合素养,解决目前大四学年的课程教学质量差、教师教授热情不高、学生难以集中精力学习等实际问题。通过实际的企业实践,让学生提前熟悉职场、适应工作氛围,锻炼沟通、表达等软技能,解决理论与实践分离的问题,破解学生动手能力差、大四理论课程质量不高等问题。
(4)建设以软件工程能力培养为目标的项目群。课题组建设了多层次的项目群,以适应不同年级、不同水平的学生。同时,以项目为核心和载体,让学生在项目进行过程中充分理解软件工程的专业理念、实践在软件工程中的核心地位以及团结协作能力,在组成项目团队完成项目的过程中全面提升软件工程能力。
基于所提出的人才培养模式进行的初步实践取得了明显效果。2018年下半年全校性的专业互转中,软件工程专业首次成为所有信息类专业中申请转入人数最多、转出人数最少的专业(2018级新生60人,实际转入学生共计15人,湖南师范大学转专业公示名单,http://jwc.hunnu.edu.cn/article/?type=detail&id=2014);其中申请转入人数超过学校分配指标。这充分说明,所提出的人才培养模式和专业理念得到了学生的充分认可,专业吸引力明显增强。同时,在2016级软件工程专业贯彻该教改理念之后对学生进行的教学调研数据表,学生对教改的满意度、以项目为核心的团队形式的实践方式以及个人能力提升度等方面的评价有明显提高。
以项目为核心的软件工程人才培养模式的特点可以归纳为“理念坚实、项目为核、实践为体、本硕一体”,通过该模式在湖南师范大学软件工程专业的实施,初步实施并取得了较好的效果,得到了学生的认可和关注。在后续实施中,将着重从如下几方面着手:①进一步强化科研与教学的紧密度,探索更有深度的培养模式并融合科研因素;②加强项目的引领作用,考虑将IT项目管理课程覆盖到大一到大三,提高项目管理能力;③拓展校企合作,充分发挥大四一年企业实践的价值。