软件工程课程教学人才培养研究

前言:寻找写作灵感?中文期刊网用心挑选的软件工程课程教学人才培养研究,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。

软件工程课程教学人才培养研究

1软件工程系列课程教学中存在的问题

1.1教学理念

传统软件工程教学比较注重理论教学、教师讲授为中心的教学理念。在课程教学中,教师往往会花费大量时间与精力把统一、规范的软件设计与开发理论、方法及技术教授给学生,力求让学生形成良好的软件设计与开发思想与习惯。在此情况下,学生可能对整个软件设计及开发流程有了“理性”认识,但却缺乏真实软件系统实践开发的“感性”认识。实际上,理论指导下的具体的软件系统开发案例及经验介绍更为重要。

1.2教学内容

国内一些学校的软件工程教学仍然是以传统的软件工程理论及技术作为重点,教学中讲解的内容以“需求分析—总体设计—详细设计—编码及实现—测试维护”这种从顶向下、逐步细化的思路为教学线索。在实践中,主要以开发图书馆管理系统、人事管理系统等MIS系统作为课程的实践内容。实际上,软件设计及开发技术发展迅猛,特别是近年来的云计算、移动互联网及大数据等新技术不断涌现,必然要求在软件工程教学中注入新的知识元素。教师必须对教学内容及时更新与补充,否则学生所学知识将严重滞后于技术的发展。

1.3教学方法

软件工程课程的理论性与综合性强,必须具备许多的先导课程知识(如程序设计语言、数据结构与算法等),一般是在大学四年级才开设。在教学中,如果只采用单一教学方法或者过于注重理论教学而轻视实践教学,时间一长,学生(尤其是大四学生)很容易产生厌倦的情绪,影响教学效果。此外,该课程的授课对象为即将毕业的大四学生,如能运用一些实际的软件开发系统或启发式案例进行教学,讲透系统中的一些重要知识点、核心算法以及关键技术,不仅能够充分发挥多种教学方法的交叉优势,更能够对学生毕业设计以及就业产生积极影响。

1.4课程考核

目前,一些学校的软件工程课程采用的是传统的笔试加平时成绩的考核方式。笔试主要考核学生对软件工程基本理论及知识点的掌握程度,比如瀑布模型、数据流图、耦合与内聚、详细设计工具(程序流程图、N-S图、PAD图)以及CMM等。这种考核方式能够增进学生对软件工程概念性与原理性知识的记忆,却不能促进学生软件设计与开发能力的提高。

2引入MOOC的软件工程系列课程教学改革

MOOC(MassiveOpenOnlineCourses),即大规模在线开放课程。2012年以来,美国一些顶尖高校陆续开发了网络学习平台,如哈佛大学与麻省理工联合发起的edX、斯坦福大学创立的Udacity和Coursera,以及可汗学院(KhanAcademy)。这些MOOC学习平台能够提供免费网络课程,教学效果明显,热遍全球。我国的北大与清华于2013年5月加入了edX,并上线了多门课程;北大、上海交大与复旦加盟了Coursera。我国一些重点大学也正在利用MOOC方式进行教学方法改革。MOOC中很多课程始于计算机专业,MOOC对计算机及软件工程专业的影响也是最大的。在现行的各个MOOC平台中,计算机与软件工程课程的比例是最大的。例如,Coursera平台上现有计算机类课程94门(其中软件工程课程为55门);edX平台上现有计算机类课程21门(其中软件工程课程为10门);Udacity平台现有计算机类课程23门(其中软件工程课程为18门)。因此,在传统软件工程系列课程教学中引入MOOC进行教学改革,势在必行。

2.1形成“以学生为中心”的教学理念

在软件工程教学中,可将MOOC作为课堂教学的强化与补充,形成混合式课程,采取传统教师课堂讲授与学生MOOC在线学习相结合的混合教学模式。同时,应改变注重理论教学、教师讲授为中心的传统教学理念,变换教师与学生角色,切实形成以学生为中心的新的教学理念。MOOC将充分体现以学生为中心的教学理念,可以重新构造软件工程个性化学习轨迹,实现师生及学生之间的互动讨论与协作、即时的系统测试以及学习反馈与评价。

2.2设计“传统知识与新理论及新技术”相结合的教学内容

在教学过程中,在传统课本知识基础上,需要引入一些新的软件设计、开发模型及技术。一方面,建议同学们参考新版书籍或MOOC上的电子资料;另一方面,及时补充当下流行的软件设计与开发方法及热门技术。例如,在云计算SaaS模式中,以Blog,SNS,RSS等为特征的Web2.0服务方式造就了数量众多的服务资源,包括WebServices、WebAPI等,使得没有或较少编程专业知识的终端用户能够实现面向服务的软件设计与开发工作。像类似于SOA架构,WebServices与组合,RSS技术,企业Mashup技术等内容需要补充到课堂内容教学中。

2.3发展“以案例为驱动”的理论及实践教学方法

教师将MOOC作为软件工程教学线上环节,提供以案例为驱动的理论及实践教学微视频,让学生提前自主预习课程知识。教师在课堂上重点讲解具体案例,梳理各个理论知识点以及核心的算法及关键技术。其中,案例的选择非常重要,可以选择教师自己科研工作中实际开发的软件服务系统或者开源的软件系统,制作成微视频,结合自己的切身实践经验,把宏观的理论知识以及微观的具体技术细节教授给学生。

2.4采用“引导和激励”的课程考核方式

MOOC支撑下的软件工程课程考核,应以软件设计与开发能力为目标,将课程考核分成平时考核、期中考核与期末考核3种方式。借助MOOC,根据学生的在线学习轨迹,汇总学生的在线学习情况,加大平时成绩考核力度。在课堂教学中期,引入具体项目设计与开发任务,以项目开发的完成情况作为期中考核标准。期末考核采用课程论文形式,对给出项目要求书写需求文档、总体设计与详细设计方案,以及数据库设计说明。

3构建以“就业”为导向的软件工程人才培养新模式

1)国际知名IT企业尤其注重扎实的数据结构、算法和代码以及软件设计能力;良好的英文读写以及听说能力。2)8家IT企业都要求熟练掌握一门或以上的程序设计语言,C\C++\JAVA仍然是主流的软件开发语言,而像python、.NET、PB、VS2008等也受欢迎。3)8家IT企业基本上都要求熟悉数据库理论及技术,尤其是MySQL、SQLServer以及Oracle数据库。4)一些流行新模型及新技术,比如Hadoop云模型、Android应用开发系列技术,也是目前企业所急需的。根据以上的总结,在软件工程人才培养的过程中,应以“就业”为导向,以培养符合市场需求、受欢迎的软件工程人才为目标,具体建议如下:1)必须加大与软件工程相关性非常强的先导课程的教学与实践能力培养。尤其需要投入大量时间与精力到数据结构、算法设计以及数据库理论与技术这3门课程的教学中,使学生具备扎实的软件设计与开发基础能力。2)务必培养学生精通至少1门程序设计语言,熟练使用至少1种开发工具,并在此前提下,以开发出一个在一定代码量(万级)以上的自己的“软件作品”为大学四年的实践目标。3)教师要及时引导学生了解并掌握一些软件新理论、新模型与新技术,鼓励学生参与学术活动,并邀请公司技术主管或教师以及高年级学生中的技术达人定期举行技术讲座。

4结语

软件工程增设为一级学科,突显了它在整个计算机学科中的重要地位,其教学与人才培养也将面临更多的机遇与挑战。本文分析了目前软件工程中教学所存在的问题,并探索引入MOOC的软件工程系列课程教学改革措施。同时,调研了2015年国内外8家主流软件企业软件工程人才的知识需求及其技术要求,并给出了具体的人才培养建议。

作者:曹步清 肖小聪 单位:湖南科技大学计算机科学与工程学院