软件工程创新实践班“五位一中心”育人模式探究

2022-03-23 06:42梁旗军王凤斌
实验室研究与探索 2022年1期
关键词:竞赛软件学科

梁旗军, 王凤斌, 樊 鑫, 郑 巍

(南昌航空大学软件学院,南昌 330063)

0 引 言

我国正处于科技实力和经济实力稳步上升的新时代,创新是驱动经济和科技发展的主要源动力,青年尤其是大学生是创新创业的主力军。国务院办公厅以国办发〔2015〕36号印发的《关于深化高等学校创新创业教育改革的实施意见》中主要任务和措施部分明确指出“强化创新创业实践”“各高校要加强专业实验室、虚拟仿真实验室、创业实验室和训练中心建设”[1]。陈宝生部长2016年在新时代全国高等学校本科教育工作会议上的讲话中也指出“持续深化创新创业教育改革,推动创新创业教育与专业教育紧密结合”“让学生尽早参与和融入科研,早进课题、早进实验室、早进团队,提高学生科研实践能力和创新创业能力”[2]。2020年,人民日报报道中指出“高校进一步加强创新创业教育,需要找准突破口”“以培养学生的创新精神、创业所需要的能力素质等为重点,让更多学生接受创新创业教育,更好激发学生的创新精神和创业意识,提高学生的创新创业能力”“促进创新创业教育与专业教育融合”“丰富实践教学方法,支持学生以科技创新成果、创业项目等形式申请学分”[3]。可见,长期以来,党和国家对大学生创新能力培养的重视。

高校作为人才培养的主阵地,担负着推动高等教育改革,培养创新型人才的重要任务。然而高校的主要教育途径是专业教育,传统上表现为一门门理论原理性较强,实践创新性较弱的专业课。即使注重实践创新性教学的工科类软件工程专业,课程内的实践性创新内容不论是深度还是广度仍表现不足。因此,需要对现有的课程体系进行改革。此背景下,以学科竞赛为牵引的软件工程创新实践班承担了探索创新人才培养模式实践的重任。

软件工程创新班是在不改变原有软件工程专业培养方案和教学计划的前提下,利用课余时间结合专业特色通过招募成员的方式组建而成。如文献[4]学科交叉融合的复合型培养模式,文献[5]机器人专业特色的创新班。软件工程创新班着重学科竞赛特色,与独立设立的“精英班”相比较,育人模式不是对原有专业培养方案和教学计划的颠覆,而是在现有的专业课程和专业课程群进行的创新创业教育改革基础上并行开设[6-7]。与短期“培训班”或者实习实训小学期相比较,不同在于以培养创新意识和能力强、实践能力过硬的创新型人才为最终目标,是实现提高具备参加学科竞赛能力创新人才培养质量的一个途径[8]。目前,软件工程创新班已经开设2期,并在实践中探索出以竞赛为牵引的“五位一中心”的育人模式,来进一步完善培养体系,培养创新型人才。

1 软件工程学科竞赛对软件工程创新班的牵引作用

学科竞赛是学生对知识的深度理解、消化吸收并再创造,从而创新的实践过程,是创新人才培养的重要载体,起到融合牵引的作用[9-11]。软件工程创新班的开设需要通过软件工程学科竞赛作为牵引,来实现创新型人才培养的目标。

1.1 软件工程学科竞赛特点分析

软件工程学科竞赛属计算机类竞赛范畴,如全国大学生软件创新大赛、中国大学生计算机设计大赛、中国大学生服务外包创新创业大赛、中国高校计算机大赛的国赛和省赛等。它们多是以软件类作品为主,以发掘社会生活热点,解决实际问题为核心,利用软件工具和技术构造可以运行于计算机设备的创新型应用。其需要提交的比赛材料多数包括软件需求或者软件开发(设计)类文档、程序源码及可运行程序、PPT、视频简介等,大部分竞赛在入围国赛后,还需要现场演示应用,进行问题分析和解决方案的讲解等。考察以上学科竞赛,以中国大学生计算机设计大赛为例,可以得到软件工程学科竞赛的主要特点有[12]:

(1)相对于ACM/ICPC,软件工程学科竞赛的作品更能体现综合性、创新性、实践性、持续性。作品根据学习生活、研究实践的感悟提出创意直到效用和场景的完全完成。

(2)软件工程学科竞赛作品与教学相关且具有客观可操作性。竞赛包含的技术和工具几乎涵盖了软件工程教学的全部内容,最后的成果也要经过生产生活的实际检验。

(3)软件工程学科竞赛可更好地检验学生项目能力、应用创新能力、团队协作能力等。软件工程学科竞赛题目不是简单的加强基础、拓宽口径或增强单项实践能力就可以完成,它往往需要一个具有多项技能的团队在较长的时间完成,少则几个月,多则几年。

从以上特点分析可见,软件工程学科竞赛是软件工程专业创新能力、应用能力、团队能力的综合体现。

1.2 软件工程学科竞赛对软件工程创新班的牵引

(1)软件工程学科竞赛是软件工程创新班软件项目源源不断的的重要来源。通常绝大多数软件工程学科竞赛的最终交付物必定包含与软件工程技术相关的可运行程序,大赛的命题也是以项目的形式展开的。如中国大学生服务外包创新创业大赛,企业命题A类可以细分为应用类、计算类和商业类。近3年该赛事企业命题A类类别统计情况如表1所示。

从表1来看,近3年应用类、计算类的题目占比为93%~96%,它们可以作为软件工程创新班参赛题目,也可以作为训练题目。因此,学科竞赛赛题极大丰富了软件工程创新班的项目题源。

表1 近3年企业命题A类题目类别统计表

(2)软件工程学科竞赛为软件工程创新班指明最新学科前沿技术和工具。竞赛包含的技术和工具不仅几乎涵盖了软件工程教学的全部内容,而且提出许多前沿知识和工具的应用。如全国大学生软件创新大赛,其命题围绕主题自主选题。近3年该赛事主题和技术工具如表2所示。

表2 近3年学科竞赛主题和技术工具表

从表2来看,竞赛主题紧紧围绕利用前沿的人工智能、深度学习、大数据等技术解决实际问题并采用企业界新的工具开发应用软件。由此,学科竞赛的技术和工具要求为软件工程创新班指出了学习方向。

(3)软件工程创新班通过软件工程学科竞赛可检验学生的创新素质和能力,学生在学科竞赛中的参与度和获奖等级是考核学生的重要标准。由于软件工程竞赛的自身特点,如团队型的参与形式、新技术工具的应用、创新意识和服务的要求等,和创新型人才培养的目标要求一致,因此,软件工程学科竞赛是检验软件工程创新班学生创新素质和能力的重要途径。

2 软件工程创新班对创新人才培养的支撑作用

以软件工程创新班为支点,通过明确培养目标、丰富实践内涵和鼓励教学相长的形式,对培养创新型人才起到支撑作用。

2.1 明确培养目标,突出软件工程专业创新特点

通过软件工程创新班的教与学,明确培养目标如下:

(1)切实提高学生对软件工程背景下各类项目开发的认识,深刻理解软件开发的内涵及其软件对社会的影响,激发学生参加软件项目工作的兴趣,并养成快速学习的习惯,基本形成软件开发的意识。

(2)促进学生找到适合自己的软件开发方法,较熟练掌握一项以上主流开发工具的基本方法和技能,为终身学习打下良好的基础。

(3)根据不同软件作品类、设计类竞赛的特点,帮助学生在学科竞赛上找准目标,可以独立进行一般项目的管理和项目设计工作。同时,通过团队合作,培养学生的团队精神,学会正确处理竞争和合作的关系。

2.2 丰富应用内涵,融合专业课程实践环节

软件工程创新班的教学以实践应用为主,在充分考虑本校工科类大学本科生的知识体系和结构,设定以下内容充实实践,拓展学生知识面,提高实践应用能力。

(1)互联网项目敏捷开发模型的应用。互联网项目追求创新,需求不确定性高,关注用户行为,需要根据用户体验和反馈,通过反复小迭代来优化。敏捷开发模型容易出成果,可以快速提高软件发布周期,可以将测试人员能够尽早参与进项目中来,及时地处理需求变化和用户反馈。

(2)以用户为中心的产品设计思想的应用。完成从软件开发为中心到用户为中心产品设计的转变,从作品提升到产品,通过产品设计的3个关键环节,用户分析、功能分析、流程分析来挖掘软件项目创新点和实用性。

(3)软件项目类文档的写作。文档编写是软件开发过程的一个重要工作,对软件工程来说具有非常重要的意义。它是软件开发人员、管理人员、维护人员以及用户之间的桥梁。以竞赛项目的文档写作为基础,分析必要的文档、文档格式和文档内容。

(4)与专业课程(群)实践环节的有机融合。单个课程(群)的教学案例往往拘泥于该课程的教学知识点,或者几个知识点的串联,往往不具有较全面的应用代表性。单纯依靠专业课程(群)的实践环节做实践类创新教育,显然是无法在短期内形成教育效果的。软件工程创新班注重对专业课程(群)的实践环节和实际问题的粘合和扩展,使之真正落到实处,解决应用落地的问题,实现两条腿走路,互为依托,有机融合。

2.3 鼓励教学相长,导师保障快速自我学习

软件工程创新班以项目为载体,以导师为保障,以成果为目标,导师和学生共同成长,提高学生的自学和动手能力。

(1)以讲授引导项目方向。通过教师的讲授,将教学内容作为基本点,引出学生的求知欲,带动学生从一个点扩散到面的方式,制定项目方向,围绕项目核心内容,快速制定项目目标和范围。

(2)以项目带动快速自学。通过项目形式,将每个学生都投入到一个项目实践中,通过项目的设计、开发、测试和上线,掌握快速学习的能力,训练团队合作意识,以及新技术和方法的应用。

(3)以竞赛带动实践教学。通过参加专业竞赛给学生提供了较大的自主学习的时间和空间。分析计算机(软件)作品类、设计类竞赛的特点,让学生掌握相应的编程和实践技能,达到竞赛所要求的技能。

3 “五位一中心”育人模式设计

在软件工程创新班的育人实践中,提出了以学生为中心,项目孵化驱动的运行模式、敏捷开发的开发过程、产品导向的设计思想、混合组队的团队建设和软件创新大赛为核心的竞赛群建设的“五位一中心”育人模式。这5个方面将紧紧围绕以学生为中心通过一系列的教育理念和举措活动,来培养学生的创新意识、创新思维、创新能力。该育人模式体系如图1所示。

图1 “五位一中心”育人模式体系

3.1 以学生为中心的教育理念

以学生为中心的教育理念对于当代教育,特别是高等教育的改革具有很强的指导意义[13-14]。目前,我院的专业课都实现了基于产出导向的从“以教师为中心”向“以学生为中心”转变。软件工程创新班亦然。贯彻以学生为中心的教育理念可操作性的核心关键在于调整并处理好师生关系,满足师生的共同需求。在软件工徎创新班实践教育教学的过程中,坚持从以下3个方面做起。

(1)理解尊重学生。教师应当理解并接受学生的优势与弱点,特长与不足,情感和追求。当代大学生往往见多识广,思维敏捷,勇于并善于接受新事物。教师应该与时俱进,与自己的学生同步成长,尊重学生,发挥他们最大的潜能。

(2)关爱服务学生。从学生的需求出发,换位思考,优化教育环境,为学生排忧解难。坚持言传身教,启迪学生,培养学生的自觉性,坚持杜绝部分学生懈怠和抄袭的不良习惯。

(3)启发激励学生。教师应因材施教,释放学生的潜能和才华,不能用标准化的指标去评价,从而扼杀学生的个性。而应该激励学生各尽其力,各显所能,做好结果。为学生的创造力和和想象力释放施展的空间。

3.2 项目孵化驱动的运行模式

以项目孵化形式驱动软件工程创新班是最基础的运行模式。具体包括以下3个方面:

(1)强调创新,精选项目。项目选择应以应用性、创新性较强的,能够解决社会和生活的实际问题或者某一个领域现实问题为指导,可以选择往年的命题式竞赛的项目题目、教师科研教研项目、企业实际项目作为项目来源。将之做精、做细、做到实处,项目强调文档化和传承性,使之能够长久做下去,避免项目的中途夭折。

(2)以“三小”作为孵化器。“三小”项目是我校面对全体同学的特色项目,是学生进行创新创业的重要孵化平台。经过“三小”项目立项,通过1年期的项目实施,强化创新特性,完成项目的整个生命周期。

(3)选择赛道参加竞赛。分析项目类型和特点,匹配软件工程学科竞赛赛事的特点,选择1~2项目作为参赛赛事。依托该赛事的具体评分要求,梳理完善项目功能和应用文档。

3.3 敏捷开发的开发过程

敏捷开发模型容易出成果,可以快速提高软件发布周期,可以将测试人员能够尽早参与到项目中来,及时处理需求变化和用户反馈。每个学生都投入到一个项目实践中,通过反复小迭代来优化,可以有较好的成就感。

软件工程创新班项目开发过程抛弃需求分析、设计、编码实现、测试、交付这样的一个完整链条,转而选择初始、评估、双迭代、交付4个阶段的“双迭代过程”[15]。测试组和开发组各自执行自己独立的迭代过程,前后依托,注重需求,多数情况下,两个迭代的周期不需要严格的同步,完成当前的迭代周期就可以自行进入下一个迭代周期。双迭代的敏捷开发可以有效提高项目组人员效率。

3.4 产品导向的设计思想

在项目开发过程中,以用户为中心的产品设计思想,完成从软件开发为中心到用户为中心产品设计的转变,从作品提升到产品,通过产品化的3个关键环节,用户分析、功能分析、流程分析来挖掘软件项目创新点和实用性[16-17]。

以中国高校计算机大赛-微信小程序开发赛为例,其对软件应用的产品特性是:使用体验要求流程逻辑清晰,设计合理,重点突出,标识清楚,操作简单,易懂易用;界面设计要求UI设计美观,设计风格一致,核心功能突出;产品运营要求具有详细、合理、可行的运营方案,运营方案符合微信平台的运营规范。由此可知,项目产品化是提高项目质量的必由之路,也是实际应用的真实需求。

3.5 混合组队的团队建设

团队人员应包括大一到大四不同年级的同学,以大二、大三的学生为主,大一、大四的学生为辅,每1年完成正常的新老交替,完成团队的梯队建设,在补充新生力量的同时,欢送老队员的离队。大二、大三的学生作为主力,应该作为核心中坚力量,大四的同学应该充当半个导师的角色,指导其他同学。

同时,团队成员依据双迭代敏捷开发过程分别担任不同角色,如项目经理、产品经理、测试人员、开发人员等,形成测试组和开发组。一人多个角色,各尽其力,充分发挥团队力量,同时,利用大学生利他协作学习模式产生激励和评价。这也是软件项目管理中最基础的人力资源。

3.6 软件创新大赛为核心的竞赛群建设

以全国大学生软件创新大赛为核心构建竞赛群。在水平方向上,坚持以参与学校认定的学生水平高、含金量高、难度较大的中国大学生服务外包创新创业大赛、中国高校计算机大赛、全国高校大数据应用创新竞赛为边界,在垂直方向上,以各级大赛的省赛或者区域赛,如江西省计算作品等为依托,形成有所侧重,但相互互补的竞赛群格局。

依托竞赛群,即为软件工程创新班的项目提供出口,也可以检验软件工程创新班的培养效果。建设多层级阶梯状的竞赛选择路径,不仅是优中选优,更多的是对全体学员不同层次实践能力的锻炼。

4 Attack足球项目实例分析

在软件工程创新班中,从最初的项目创意、项目团队建设,到双迭代敏捷开发过程、项目产品化、再到项目文档化和参赛准备以及后续对项目的应用和推广,整个过程中,不仅可以启发学生创新意识、激发学生软件开发思维,而且可以锻炼团队合作、解决实际问题的实践能力,提高创新创业精神。Attack足球项目是软件工程创新班在中国高校计算机大赛-微信小程序应用大赛国赛中获得一等奖的作品。以此为例,进一步说明竞赛牵引的“五位一中心”育人模式对创新人才培养的促进作用。

4.1 创意的由来

Attack足球的创意来源于我院学生足球队和教工足球队的一场比赛。比赛期间,教练使用实体战术板做战术指导和安排,但由于球员人数众多,出现“拥不进、听不清、板子小、看不见”等问题。球队同学提议如果可以在各自手机上看到电子战术板就好了。沿着该思路展开,结合移动端微信小程序“无需安装、用完即走、随时可用”的特点,从而确定了微信小程序应用项目--Attack足球。

Attack取其“进击”之意,鼓励人们无论是在球场上还是生活中,都应该拼搏向前,锐意进取。该项目经过同学申请,进入软件工程创新班进行孵化,且顺利入选“三小”项目。

4.2 定位和团队

Attack足球项目经过软件工程创新班师生对全校多个学院足球队的需求调研,召开“头脑风暴”会议,确定了项目的定位。如表3所示,定位描述分为实用需求、目标用户、使用场景和功能简述4部分。

表3 Attack足球项目定位

特别需要说明的是功能简述中的“排兵布阵”是指挑选预设阵型或自定阵型,将队员安排在合适的战术位置;“实时演练”是指在球队内的队员可以利用手机实时在线,同步观看已制定的战术或者录屏;“讲解投屏”是指教练可以将战术讲解过程通过互联网投射到网络电视等大屏幕上,方便多人观看;“球队管理”是指球队创建、增减队员等基本管理功能。

贯彻“混合组队”的团队建设方案,经过内部遴选,自我推荐后由4名同学组成了“NCHU_文体两开花”队,取其“编程是世界级的艺术,足球是世界级的体育,文娱与体育,两面皆开花”之意。同时,依据“双迭代”敏捷开发过程,以及组员的技术特点,分为测试组和开发组。团队人员和角色分配如表4所示。

表4 团队人员和角色分配表

4.3 产品和设计

软件项目产品导向的3个关键环节是用户分析、功能分析和流程分析,具体体现为使用体验、界面设计和产品运营。Attack足球项目以产品导向为设计思想,以用户体验为中心进行产品设计。产品运营按照微信平台的运营规范,依托微信小程序管理后台做实施。下面主要从用户体验和界面设计展开。

用户体验的点睛之笔在于情感化设计。如图2所示,在logo的设计部分融入足球元素,包括运动员、奖杯、计分板、足球和角旗等物品的设计布局,符合足球运动员本能的视觉感受。可以唤起参与足球运动的记忆、情感,从而对APP产生认同感。

图2 小程序logo的设计图

界面设计是功能分析和流程分析的用户层呈现,尤其注重感官体验和浏览体验。如图3所示,Attack足球主界面从V1.0版到V3.0版,完成了从功能堆叠到结构清晰,再到美感设计蜕变。又如图4所示,将交互体验的主要功能统一集中在主界面,通过扁平化,色彩比对,突出重点功能,适合用户的感官体验。

图3 用户界面迭代过程图

图4 主界面设计图

4.4 技术和文档

Attack足球是一个典型的具有前后端的微信小程序项目,具有数据层、服务层、控制层和表现层4层系统结构。后端服务层技术选型使用Spring Cloud Eureka+Feign的微服务架构,数据层采用分布式的MySQL和Mybatis+Druid连接池。前端控制层和表现层技术选型人机交互采用wxml+wxss+JS,前后端的通信采用官方API+WebSocket,数据的存储采用云开发+云存储。在研制过程中,前后端出现的主要技术难点及其解决方案如表5和表6所示。

表5 前端技术难点和解决方案简表

表6 后端技术难点和解决方案简表

软件文档是软件定义的重要组成部分,是软件项目管理和软件开发过程中阶段性交付物和里程碑,是项目进度、质量保证和管理的保障措施之一。Attack足球项目从“三小”项目中孵化,从微信小程序赛网赛起步、以第一名的成绩冲出区域赛直到获得国赛一等奖,每一个阶段(里程碑)都有软件文档作为交付物。如表7所示。

表7 各阶段软件文档列表

综上所述,软件工程创新班以学科竞赛为牵引,项目孵化驱动的运行模式下,从项目孵化、成形、产出直到检验整个过程中,极大地考验了学生在生产生活中发掘热点,解决实际问题的创新意识、团队合作开发、软件项目管理、新技术应用、文档写作以及语言表达等能力。尤其是产品设计、技术难点解决、各级比赛答辩等环节,是学生的创新能力整体提升的关键实践,可见软件工程创新班对学生创新能力培养的促进作用。

5 软件工程创新班育人模式实施成效

经过两年的建设和培养,软件工程创新班取得了阶段性的显著成效。

(1)促进学生创新实践能力的成长。软件工程创新班两期学员共74人,营造了创新和实践的氛围,在项目申报、竞赛成绩和推免进学上都取得了显著成绩。2019年春季开班的软件工程创新班学员积极申报,学院“三小”项目成功申报数量从2018年的45项,提高到了2019年的近80项,2020年基本和2019年持平,位于全校前茅。全体学员“三小”项目的主持或参与做到了全覆盖,其中主持58人次。在学科竞赛上,获得省级竞赛奖项的55人次,国家级竞赛奖项的28人次。值得一提的是,2019年中国高校计算机大赛-微信小程序应用大赛中,“Attack足球”项目和“我去哪”项目在赛区比赛中以总分第一和第二的成绩直接晋级国赛并在国赛上强势获得一等奖和二等奖。这是我校在该赛事上的第一次重大突破。在推免进学上,软件工程创新班2019年和2020年各有1名同学因为学科竞赛的加分,分别推免到江南大学和西北工业大学攻读硕士学位。软件工程创新班在促进学生个体创新实践能力的提高上效果显著。

(2)助推专业课程的创新教育改革。在软件工程创新班的项目运行过程中,串联了许多专业课的知识点和实践内容,从而倒逼专业课程的创新教育改革。先后有6门专业课程申报为校级创新创业课程,既有学科基础课,如程序设计基础、面向对象程序设计基础,也有学科核心课,如移动终端编程技术、Web技术基础等。软件工程创新班既从专业课程中汲取实践经验,又通过项目实施反哺专业课实践环节,形成了良好的循环。

(3)补充完善现有实践培养体系。我院现有独立实践环节包括大一到大三3个2周的课程设计、大一大二2个4周的小学期、大四3个6周的实习实训和16周的毕业设计。课程设计基本在学期头2周,小学期在7月暑假,以训练单一能力为主,而到大四突然变成全栈全流程的毕业设计,中间缺少从点到线到面的训练过程。软件工程创新班的育人模式弥补了这一缺陷,从项目立项到竞赛产出,是一个完整的闭环过程。经过软件工程创新班的训练,可以使学生顺畅地进入大四的毕业设计环节。

虽然取得了比较显著的成效,验证了软件工程创新班育人模式的可行性。但在人员、环境、投入、教学方法、教学内容等方面仍然存在很大的改进空间。如还需继续改善实验室环境,加大双师型教师人数的投入,持续创新教学方法,优化教学内容,加大引入产研科研项目等。这是一个持续改进的过程。

6 结 语

从软件工程学科竞赛特点入手,以软件工程创新班作为平台,提出了以学科竞赛为牵引的“五位一中心”的育人模式。该模式从运行模式、开发过程、设计思想、团队建设和竞赛群建设5个方面围绕以学生为中心,形成了一个有机关联的整体。从软件工程创新班连续两年的实践上看,有效地增强了学生创新意识、创新能力和实践水平,也为其他创新班提供思路。下一步的工作将主要集中在多维度的创新班建设上,结合课程思政、产研科研,进一步提升软件工程创新班的内涵,持续提高学生的创新能力和素质。

猜你喜欢
竞赛软件学科
【学科新书导览】
2020丝绸之路数学竞赛
禅宗软件
土木工程学科简介
软件对对碰
创新思维竞赛(3)
“超学科”来啦
创新思维竞赛(6)
即时通讯软件WhatsApp
借问学科哪家强?尽言洄服有良方