APP下载

DevCloud 课程教学强化学生实践能力

2019-10-23张齐勋汪盛田在铭杨志伟

中国教育网络 2019年9期
关键词:部署软件考核

文/张齐勋 汪盛 田在铭 杨志伟

软件工程课程是软件工程专业一门综合性基础课程,对于软件工程专业的其他课程起到穿针引线的作用,是其他课程基础知识的综合应用,包含程序设计语言、数据库、开发工具、系统平台以及软件设计模式等内容,采用工程化的概念、原理、技术和方法进行软件的开发和维护,贯穿软件的全生命周期,包括软件的需求分析、设计、开发、测试、交付以及维护等全过程。

随着IT 技术的不断更新及发展,企业对软件工程人才的需求提出了更高的要求,为了培养符合IT 企业需求的软件工程专业人才,学院在华为公司的支持下,对软件工程实践课程进行了改革,针对课程的知识体系、教学方法、实践项目以及考核标准等进行了重新设计,邀请企业导师参与课程实践项目的指导,按照企业的软件开发模式及开发流程,指导学生完成小组项目,使学生在学校期间真正学习到企业的软件工程能力,为将来实习和就业打下良好的基础。

在实践教学过程中,如何激发学生自主学习的积极性,让学生课后主动弥补自己知识的不足也是本次课程教学改革的一个目标。首先是教师角色的转变,从知识的传授者转变为学生走向知识的领路人。其次要有信息化的手段,帮助教师与学生之间更好的互动,教师需要及时了解学生在学习过程中的更多细节,掌握学生的学习效果和课程项目实践的参与程度。

课程改革思路

针对目前的课程教学内容及教学模式,本课程主要从以下几个方面进行了教学改革的思考和尝试。

课程知识体系的完善

在保持课程内容相对稳定的基础上,补充业界最新的软件工程理念、技术和方法,强化课程实验、创新实践项目与相关知识点的结合。在讲授基础知识的过程中,贯穿教学案例分析与讲解,让学生真正掌握软件工程的相关理论、工程方法以及创新实践技术,训练学生从事软件开发的系统能力,使学生通过学习本课程既掌握理论基础知识,又具备软件创新实践能力。

教学模式的改变

教学过程一方面要发挥教师教学的主观能动性,另一方面也要充分激发学生的学习兴趣,并将之保持下去。这就需要采用丰富有效的教学方式。

本课程将理论、实践和创新的培养结合在一起。通过理论、实践和创新的结合,形成相互促进的螺旋式上升结构,教师与学生能够进行充分的沟通和交流,让教学内容、积极思考和创新思想深入到学生的思维,从而达到良好的教学效果。

在教学过程中,除正常的教师授课外,还采用了课堂讨论的方式,通过交互式的交流和探讨,提高学生的学习兴趣,使学生积极活跃的进行思考。同时,通过交互式的教学,还提高了学生的自学能力和表达能力。

在软件生命周期中,除了设计能力和编程能力外,还涉及软件文档撰写能力、口头表达能力和团队配合能力等多方面素质,进而完成软件系统的构思、设计、实现和实施等全过程。

课程定期邀请企业的专家学者参与课程教学过程,使学生能够更好的了解软件工程领域最新进展。

课程考核方式的改变

作为一门理论与实践并重的课程,课程学习结果的考核综合考虑了理论、实践两个方面。学生的最终课程成绩分布为:理论成绩30%,平时实验20%,综合实践项目30%,课堂讨论20%。通过这种考核方式,同学们不再单纯的关注传统的书面考试,而是将理论、实践、课堂互动交流等综合起来,同时促进学生主动思考,积极创新,从而提高学生的综合素质。

教学效果的跟踪

为了对教学效果进行有效的跟踪,课程组采用多种方法收集课程的教学效果。首先在课程过程中通过对学生在讨论交流中曝露出的问题进行分析,找出问题的主要原因及应对方法,进而反馈到教学中;在课程结束后,进行问卷调查,对学生进行访谈,了解学生的学习效果;在课程结束半年后,进行问卷调查和访谈,收集学生对本课程的改进意见。教学效果跟踪对于改善课程设置,提高教学水平起到了良好的作用。

基于DevCLoud 的软件工程课程实践教学改革

学生创新实践能力的培养主要来源于项目实践环节,除了邀请企业专家参与授课,最重要的是采用企业先进的开发理念、流程以及工具,按照企业开发场景进行实训操作,在课程实践教学中,需求分析、项目管理、软件开发、部署等过程均基于华为云DevCloud,参照企业实际开发流程进行。软件实践过程中,让学生们真正体会把理论知识变成软件产品的全过程。

DevCloud 是华为云提供的一站式云端DevOps 平台,覆盖软件研发过程中项目管理、代码托管、代码检查、编译构建、测试管理、自动化测试、自动化部署、发布管理和流水线端到端的业务过程,让软件开发简单高效,并可以管理和监测软件开发的全过程。在使用DevCloud 进行课程项目实践教学过程中,可以及时了解到每位学生的日常表现。

项目管理:包含多项目管理、敏捷迭代、看板协作、需求管理、缺陷跟踪、文档管理、Wiki 在线协作、仪表盘自定制报表等功能。

代码托管:提供基于Git 的在线代码托管服务,包括代码克隆/下载/提交/推送/比较/合并/分支/Code Review 等功能。

代码检查:基于云端实现代码质量管理的服务,软件开发者可在编码完成后执行多语言的代码静态检查和安全检查,获取全面的质量报告,并提供缺陷的改进建议和趋势分析,有效管控代码质量。

部署:提供可视化、一键式部署服务,支持并行部署和流水线无缝集成,支持脚本部署,容器部署等部署类型,支持java、node.js、python 等多种技术栈,实现部署环境标准化和部署过程自动化。

发布:提供软件仓库、软件发布、发布包下载、发布包元数据管理等功能,通过安全可靠的软件仓库,实现软件包版本管理。

在小组实践项目管理过程中,小组人员进行角色分工,华为专家通过分享企业实际开发过程中所使用的敏捷开发流程,以及企业在软件工程中的不同角色之间如何协同开发,每个角色所需的关键技能,使学生参照企业真实开发流程,讨论需求、分工协作,使用华为云DevCloud 进行敏捷开发项目实践。

在企业中,通常迭代周期为1 周或2 周,在课堂上,同样采用迭代的方式验收小组项目,课程项目采用2 周发布一次迭代的方式,对项目及成员的表现进行考核,为了确保考核标准可量化,也为了使学生能够更加深入的理解敏捷软件项目开发的项目管理和实施细节,课程教师共同针对本课程,制定了表1 的课程项目迭代考核标准,每次迭代验收均按照迭代考核标准对小组项目及组内每个成员进行考核打分。

表1 课程项目迭代考核标准

通过一个学期的课程改革及教学实践,本课程基于软件工程基础知识和DevCloud 开发平台,将教学知识体系与工程技术教学相结合,使教学与工程完美融合在一起。学生反馈通过本次课程的学习,了解了IT 企业真实的工作模式,收获了独立解决问题的能力,掌握了学习新技术的能力,具备了工程实践能力、团队协作能力、交流沟通能力。

软件工程课程教学改革以学生发展为中心,以企业为市场主体,把培养学生创新能力放在软件工程人才培养的核心地位,采取多项课程改革方式,引入企业先进的软件技术及研发经验,调动企业参与人才培养的积极性,构建产学深度融合的多方协同育人平台,强化学生职业素养和工程实践能力的培养。

猜你喜欢

部署软件考核
一种基于Kubernetes的Web应用部署与配置系统
禅宗软件
晋城:安排部署 统防统治
部署
内部考核
创新完善机制 做实做优考核
软件对对碰
公立医院 如何考核?
部署“萨德”意欲何为?
即时通讯软件WhatsApp