施冬冬
(安徽大学江淮学院 安徽 合肥 230039)
新形势下软件工程教学改革探讨
施冬冬
(安徽大学江淮学院 安徽 合肥 230039)
《软件工程》是计算机软件专业的核心课程,传统的板书式理论教学已经跟不上时代的节奏。今年来随着国家对三本院校提出建设“应用型本科教学”,许多高校都在探索《软件工程》这门课的课程改革,本文从教学目的、教学手段、教学内容、师资培训四个方面提出了基于学生,教师,企业“三位一体”的教改方案,并通过实践证明方案的可行性。
《软件工程》;改革;三位一体
在计算机专业中,《软件工程》是专业必修课。在此课程中主要介绍使用工程化的管理来指导大型软件的开发,从而降低软件的成本提高软件的质量。大多数本科院校开设这门课都是采用理论+实践的方式教学,但是一般院校本身欠缺开发大型软件的条件,导致这门课的开设出现理论大于实践,学生感觉枯燥乏味,难学难懂,教师普遍感觉难教,此外软件工程又是一门发展迅速的学科,新的技术方法和工具层出不穷,书本上的知识有一定的滞后性。
近年来,社会对应用型人才的需求越来越大,国家对高校提出建设“应用型本科教育”口号。[1]许多三本院校都在向应用技术型高校转型,传统高校计算机软件专业毕业的学生只有理论知识缺乏实践经验,但众多软件招聘企业规模较小,没有能力对毕业生进行岗前培训,一些大企业即使有能力对毕业生进行相关技术专业培训,但到达到企业的要求还需要时间的积累。高校的软件人才方案培养与企业需求的脱节,严重降低了社会的生产率。因此,如何让学生在《软件工程》课程学习中在掌握理论知识的同时,还能训练其实践动手开发软件的能力是当今《软件工程》教学研究的一个热点问题。
随着计算机技术的飞速发展,软件开发领域中新技术、新方法、新思维层出不穷,目前在众多软件开发公司都采用流行的面向对象开发方法开发软件,而大多数高校在软件工程教学中还停留在落后的面向过程化的结构化开发方法的教学,并且因为编写时间原因有的教材对软件的构架、风险分析、成熟度等软件开发中十分重要的内容涉及很少[2]。使得正常的教学与实际的应用存在严重的滞后性,经常有学生在学完《软件工程》课程后还得自己重新学习面向对象的开发方法。
在独立学院中,因为办学条件受限于母体高校,《软件工程》此类专业课程的授课都来源于母体高校的教师,但目前母校的师资基本上都是从事教学工作有几十年的资深教师,在理论教学中并不存在什么问题,但是这些教师一般没有在企业的实践开发经验,在实践教学方面没有大型系统分析能力,很难胜任实践教学任务,这将影响实践教学计划的实施和合格人才的培养[3]。
在传统的软件工程理论教学过程中,往往是这种现象:老师在讲台上高谈阔论,学生对黑板上或书本各个阶段出现的抽象的概念、理论和方法普遍感到难于理解。由于课本上只是对软件生命周期的各个阶段进行解读,往往都是大段文字的描述,并没有涉及到具体项目的开发,不少学生认为软件工程的学习就是完成每个阶段的文档报告书[4]。由于缺乏实际项目开发经验,学生不能够深切体会到每个阶段对软件开发的重要性以及缺乏团队协作意识,导致很多学生不能够区分什么是软件开发什么是程序设计,不能将抽象的理论与实践应用联系在一起,因此学习的主动性越来越低。此外在实验课程中,很多高校缺乏相应的软硬件环境,教师在布置任务是只能让学生完成最基本的软件分析与设计CASE工具的使用和每个阶段文档报告的撰写,学生在实验课程中也体会不到软件项目开发的具体过程,最终实验课也变成了程序设计训练。
传统的软件工程教学主要以理论教学为主,教师上课时就靠粉笔,多媒体课件进行近乎照本宣科的教学,讲台下面的学生只能被动的接收知识,逐渐失去听课兴趣。此外,《软件工程》这门课包含了众多计算机专业课程的知识,涉及面非常广泛,其中很多知识又是来源于实际的项目开发,这种被动式的教学方式,对于没有任何项目实践经验的学生而言很难深入的理解软件工程开课的目的和思想,从而经过一个学期的学习,学生有可能学到的只是按照规范画出每个阶段的流程图,认为这门课就是学会如何撰写文档报告的一门课程[5]。但是实际上,软件工程来源于实际,里面的众多理论,各种文档报告,都是前人的经验总结,这门课的教学目的是培训学生能够按照工程化的思想开发一个真实的软件项目,通过学习,学生不仅仅能有写出各个阶段的文档报告,还能够应用已经掌握的计算机知识开发和管理一个项目系统。因此这门课需要教师将基本的理论知识和实际的软件项目结合在一起教学,以便增强学生对项目开发的理解。但是在当前教学中,普遍存在理论与实践脱节,有的学校还缺少相应的实践教学场所和开发环境,这样培养出来的学生很难学以致用,也满足不了当今社会对软件人才的需求[6]。
针对以上提出来的若干问题,结合独立学院的特点。在充分利用学校和社会上的已有的资源,我们在本文中提出了一套“三位一体”的软件工程教学模式。把企业引入到课堂中去,使教师和企业工程师结合起来,让学生深入企业,了解实际项目开发流程。我们从教学目标,教学手段,教学内容,师资培训和考核方式五个方面进行全面改革。使传统的重理论轻实践的教学改变成理论与实践同等重要的教学方式。
为了符合独立学院提出的“应用型本科教育”这一口号,结合软件工程这门课本身就是基于实践的一门课程。在要求学生牢固掌握软件开发中的问题定义,可行性研究,需求分析、概要设计,详细设计,编码与单元测试,集成测试,运行维护等相关理论知识的同时,还要锻炼学生实际软件开发和管理软件能力,把教师、企业、学生三者结合在一起,增强学生动手能力和团队协作能力。最终把学生培养成符合社会要求的应用型人才。
在教学中,改变传统的单纯课堂中学习模式,把老师的书本枯燥乏味教授和学生被动的听讲进行了重大调整。在这里引入企业元素,形成企业—教师—学生“三位一体”的教学模式,通过校企合作,将合适的企业引入到学校参与教学,首先,在教学初期,以学校教师授课为主,企业派来的人员为辅,对学生进行基本的理论教学,在此期间,企业工程师根据学生掌握的理论知识情况制定后期的实训计划;在教学中期,根据学生对理论知识的掌握,通过学校教师的带领深入到企业,由企业工程师对一个已近完成的项目按照软件工程的流程进行分解再次开发,在企业工程师的指导下让学生熟悉软件开发的每个步骤;在教学后期。以企业工程师为主,学院教师为辅,采用“项目团队”的组合方式,模拟企业软件开发小组构成,每组学生有人员限制(不超过7人),每个小组选出项目组长,由其对其他小组成员进行分工。完成由企业结合学院教学的实际情况制定的项目,通过学习,一方面锻炼了学生开发软件及项目管理的能力,一方面也增强了学生团队协作的意识。图一是教学流程。
图1 软件工程教学流程
在软件工程教学内容设计中,按照CDIO的思想对整个教学安排规划进行设计,课程的教学分2块来完成,首先,学院选取合适的教材让有丰富理论经验的教师完成理论知识的讲解,接下来,企业工程师完成教学计划中的实践指导工作。但是这2块之间存在以下几个问题需要解决。
2.3.1 教师和企业工程师沟通
在上文中已经提到高校教师在教学中普遍存在缺乏实践经验的问题,而企业人员虽然有着丰富的开发经验,但存在着设计过程不够严谨,按照企业的思想进行教学导致学生跟不上上课的进度,听不懂等情况,针对这些问题,我们实行校企协作,取长补短,让教师与企业工程师在开课前一起制定教学计划,把双方的分歧在课前通过协商手段进行解决。
2.3.2 学生和企业工程师沟通
企业工程师在为学生上课往往把企业的一些习惯带到实践教学中去,在指导学生软件开发的细节中往往不是太重视甚至和书本上的内容相反,并且企业人员在授课时有可能存在进度过快或过慢的问题。这时我们需要让授课教师参与到实践教学中去,在不影响整体教学的进度情况下,对学生有异议的地方加以补充解释。
2.3.3 案例设计
在实践教学中,企业工程师设计的案例都是来源于实际项目,但又不等同实际项目,实际项目受到客观环境或主观环境的影响,企业在追求有效解决问题的同时,有可能忽略了个别模块高耦合低内聚的问题,和书上的理论知识不符,这时教师应该配合企业工程师重新对项目进行修改,按照软件工程开发流程进行规范化处理,完善每个阶段的文档,使教学素材符合教学要求。
在案例的设计过程中为了使学生更加深刻的理解软件开发的真实流程,我们在这里使用了录屏模式,在企业工程师设计案例的过程中,我们把整个设计的过程通过录屏记录下来,之后,在实践教学时发给每位学生,让学生在进行自己的实践项目中可以进行对比,从而发现自己的问题和不足,并且也可以作为课后学生学习的工具。
案例设计要突出待解决的实际问题,围绕如何解决关键问题引出软件工程的相关知识点,然后在软件工程相关理论的指导下,使用具体的技术工具解决问题。另外,案例设计还要覆盖软件生命周期的各个阶段,并且各个阶段的案例要具有连续性,让学生更好地理解软件开发周期的各个阶段之间的衔接关系。
现在国家一直在提倡培养“双师型”教师。在《软件工程》这门与实际生产密切相关的课程,我们可以进行以下安排:
(1)安排代课教师走出去,让教师暑期或寒假到国内外软件公司进行参观,培训,使教师了解到现在软件行业最新的技术,最新的方法,未来发展的趋势,以便在教学中对现有的知识进行补充教学。
(2)把校外的“双师型”教师引进来。目前社会上有很多软件的培训机构,其中就有一批高素质的“双师型”教师,学院可以把这些教师聘请过来从事《软件工程》教学,并让本院教师随堂听课学习。
在传统的软件工程课程考核,一般都是采用闭卷笔试,但是笔试只能考核学生理论知识掌握的情况。为了考核学生实践动手能力,我们对考核方式进行多样化调整,我们把平时成绩占总成绩的比例从原本的30%提高到40%,在平时成绩中包括学生的作业、课堂回答、每次课程实践的表现,而期末考试分成2个部分,一部分依然通过闭卷考试考查学生的理论知识掌握情况,另外一部分对学生在实践项目开发中项目完成的情况进行打分,最后对卷面成绩和项目打分进行合成。同时我们也强调期末考试的重要性,课程成绩是对学生学习改课程知识成果的直接反映,为了防止学生在平时上课,实验课因人数过多导致平时成绩和实验成绩蒙混过关的不公平现象,我们在最后强制规定软件工程课程的期末卷面成绩不足50分则该课程成绩不及格。
安徽大学江淮学院通过软件工程教学改革与实践,取得了显著的教学效果。学生对软件工程这门课的态度有了极大的转变,学习主动性有所提高,课外自主学习和创新能力得到锻炼;通过校企合作,学生能实地感受到软件开发的流程,将书本上抽象的概念和方法具体化、实例化,并且通过实践项目开发更能理解软件工程基本原理和方法,提高动手能力;通过团队合作项目开发,也懂得了团队协作的重要性。总体来说,此次课程改革是成功的。
[1]叶俊民,胡金柱,李蓉,周伟.软件工程案例教学研究[J].计算机教育,2007(14).
[2]潘娅.软件工程教学方法探索[J].西南科技大学高教研究,2006(02).
[3]彭佳红,彭佳文,曹晓兰.基于案例的软件工程课程教学研究[J].高等农业教育,2009(11).
[4]李知菲.CDIO模式在数字媒体课程群教学改革中的应用[J].计算机教育,2013(10):23-26.
[5]李锋,夏小玲.计算机软件工程专业卓越计划实践教学[J].计算机教育,2013(13):18-21.
[6]徐世军,范伟,黄贤英.面向卓越工程师培养的专业课程教学实践[J].计算机教育,2013(13):22-25.
G642.0
A
2095-7327(2017)-12-0009-02
施冬冬(1984.7—),男,汉族,安徽合肥人,安徽大学江淮学院讲师,硕士研究生,研究方向为数据挖掘。