软件工程专业实践教学改革探究

软件工程专业实践教学改革探究

摘要:

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科,具有较强的实践性。传统的实践教学方式由于缺乏系统性安排,存在学生综合实践能力较弱,无法独立完成大型实践任务的缺点。通过分析软件工程专业的特点及传统教学方式存在的显著问题,提出一种新的综合实践教学方案,取得一定的效果。

关键词:

综合实践教学;软件工程;项目教学法

1传统实践教学方法存在的问题

目前各大高校软件工程专业培养方案虽然具体有所区别,但其核心课程体系一般都包含如下方面的教学内容:面向对象思想、2门或2门以上高级编程语言及相应的开发环境、软件工程思想和软件开发课程实习[1]。其中的实践课程主要包含每门课程的课内实践以及综合课外实践两部分,课内实践教学与对应的理论课程同步进行,课外实践课程会在寒暑假期间集中进行,这种实践教学方式存在一定的弊端。(1)传统的课内实践教学采用大班制教学,教师无法顾及到每个学生的实际情况,所以效果并不理想,虽然后期添加了采用小班教学制的综合课外实践,但由于在前期的课内实践中大部分学生未打下良好的综合编程基础,所以后期的小班教学对部分基础较好的学生有较大提高,但对基础较弱的学生并未产生实质性的帮助,这与软件工程专业对实践能力的普遍高要求相冲突。(2)课内实践教学安排缺乏系统性。一方面,在大多数的课内实践教学中,教师通过教学大纲和教学内容编写实验指导书让学生上机编写小程序,从而对一些知识点加以验证、理解和吸收,但这些知识点是相对独立,缺乏关联的,不利于学生实践能力的培养,也不能激发学生的学习积极性、自主性和创造性。另一方面,后期的课外大型实践课程中,学生不仅要综合运用一门课程的知识,甚至是多门课程的知识结合使用,这让缺少综合性训练的学生普遍感到很吃力。(3)实践能力的考核目标是多方面的,而目前很多的实践成绩仅仅根据学生的编程能力,甚至程序阅读能力给出评分,这是不够全面的。

2解决方案

针对软件工程专业实践教学中的问题并结合软件工程专业实践教学的特点[2],我们提出一种新的实践教学思路。该思路对软件工程专业的多门核心课程进行了重新规划,具体方案如图1所示。学生在一、二年级阶段通过C语言、面向对象编程、数据结构等专业课程的训练打下良好的编程基础后,三年级从实际开发的角度入手,为锻炼其大型软件开发的实际经验,安排相应课程。在第5个学期后半段安排Java程序设计(32+16)、数据库系统概论(48+16)课程并在该学期结束后安排为期约一周的信息系统设计综合课外实践;第6学期前半段安排J2EE编程技术(32+16)、软件工程(40+16),并在这两门课程结束后的第6学期后半段安排综合软件开发实习及相应的软件测试课程。与传统方案相比,该方案有如下改进:

(1)统筹规划实践教学内容

①提前引入项目教学法。项目教学法通过实际的工程项目锻炼学生的实践动手能力,是目前较为热门的实践教学方法[3]。但在传统的教学方式中应用项目教学法存在实践学时不足以支撑、涉及知识面过广等问题难以有效实施,一般仅在高年级的部分专业课程中采用。本方案中的涉及的多门课程几乎包含了大型大型信息系统建设的所有技术内容,具有实践学时长、内容广泛的特点,因此本方案中的所有课程均采用项目教学法进行实践教学。②实践分级分组。一方面,不同学生的学习能力、实践能力存在较大差别,若对所有学生采用同样的标准,则很难选定一个难度适当的实践内容,若内容过于简单,则部分动手能力较强的学生难以通过实践课堂得到锻炼和提高;若内容过于复杂,则部分动手能力较差的学生就会产生畏难情绪,进而放弃整个实验。另一方面,一个大型实验的所涉及的各个环节相互关联,若学生在某一环节出现问题,则后续环节无法进行,将严重影响实践课程的进度。本方案中对实践课采用分级分组的方式进行,每次实验设定难、易两个等级,学生根据自己的基础和兴趣选择后教师根据上次实践课成绩及表现适当调整,每个学生都能通过实践课程得到锻炼。分组则由教师综合考虑前期自由小实验中各学生的表现进行组合,每组3-5人。④课程混合、多个课程统一安排实践内容,提高学生的综合应用能力。大型信息系统的开发过程几乎包含了本方案中涉及的所有课程的内容,一般在这些课程结束后会安排为期约2周信息系统开发综合实践课程,让学生灵活运用课程知识完成开发,但效果普遍不好。主要原因在于:上述课程分散在不同学期分别学习,时间跨度大;学生未进行过相关综合训练,难以在短时间内快速适应。本方案中的课内实践会在后期安排简单的多学科综合实践训练,例如在第5学期结束时安排Java+数据库综合实践,并在其后进行为期约1周的课外综合实践强化学生的综合运用能力,这样第6学期后半段的软件开发综合实践中多数学生表现较好。⑤新的实践考核方式。成绩考核是实践教学的重要环节,他不同于传统的考核方法,更侧重于对学生的实践动手能力、综合运用能力、文档写作能力、团队协作及创新能力的考核。本方案中通过如下表1格对实践成绩进行综合考核。

(2)优化教师团队

双师培养一直是高校师资培养的难点[4],目前绝大多数高校教师都从应届博士中直接招聘,普遍缺乏工程实践经验,而繁重的教学科研任务使得双师培训实施难度较大。本方案中积极聘请企业工程师参与实践内容的制定、实践教学的指导工作。其中课内实践的综合实践内容与企业外聘教师共同制定,实践内容更贴近实际的生产环境;课外实践部分外聘教师与相关理论课教师共同进行指导(其中第6学期后半段的软件开发实习以企业实际项目为实践内容,企业外聘教师全面负责),外聘教师与理论课教师在指导过程中相互提高。

(3)制度安排向实践课程倾斜

目前计算机教学中普遍存在的“重知识传递,轻能力培养”问题的一个关键原因在于教学评价体系都偏向于考核理论课程内容,课内实践课程大多依附于相应的理论课程,对其考核指标也多流于形式;而课外实践课程设置相对较少。针对上述问题,本方案增设了相应的课外实践课程,同时课内实践增加了多门课的综合实践内容进行强化并适当增加了学时和实践评分占比。通过多种渠道让教师和学生重视实践课程教学。与传统方案相比,上述方案具有如下优点:(1)强化理解。传统教学方式中这些课程独立进行,因而学生的实践内容也局限在一个较小的范围,这就导致相关内容的内在联系和意义很难被学生充分的体会和理解,进而导致失去学习兴趣。我们通过分析发现,上述课程的主要内容可融合到一个大型信息系统的创建中,几乎涵盖了大型信息系统建设的所有技术内容,因此以实际生活中常见的系统为例进行实践能够强化理解、提高兴趣。(2)提高学习效率。目前的计算机课程普遍存在“重知识传递,轻能力培养”的问题,实践学时一般安排在理论课开始后4-6周左右的时间,并且不同的教师指定的实践环境不同。首先,理论课堂的知识点无法立即在实践课堂进行练习,学习过程会产生相对中断,导致效率低下;其次,不同的课程中教师指定的实践环境不同,对于初学者来说,熟悉实践环境需要浪费较多的时间,对相关知识点也是浅尝辄止,不能够牢固掌握。本方案对课程的实践学时、内容和环境进行了统一安排,实践学时从开课第一周即开始,有效解决了理论、实践不同步的问题,多门课程选定统一的开发环境,减少熟悉环境的时间;同时暑期的实践课程保证了不间断的强化练习,有助于实践能力的提高。

3结语

效果是检测一项改革成功与否最为核心的一项指标。本改革方案在本校软件工程专业的一个教学班实施后,我们通过校内的督导信息反馈、学生信息反馈、专题调查、成绩监测和学科竞赛等多个渠道对该方案的实施过程进行了实时监测。监测结果显示:该方案培养的学生虽然在理论课考试方面没有明显进步,但实际动手能力有了全方位的提高。我们将该班级与一个普通平行班级在理论课考试成绩、课内实践成绩、课外实践成绩、竞赛获奖率等指标进行对比。对比结果入下表2所示:通过表2的数据可知,改革方案实施后学生的动手实践能力显著提高。不仅上述可量化指标,教学督导和外聘双师对实施改革方案班级的学生的实践能力也给予了高度肯定。

参考文献:

[1]陈志刚,刘莉平,沈海澜.软件工程人才“一点两翼”实践教学体系的研究[J].高等工程教育研究,2013(5):173-176.

[2]徐玲,高旻,文俊浩,等.软件工程专业实践教学质量保障体系探索[J].实验室研究与探索,2015,34(8):205-208.

[3]曾明星,周清平,王晓波,等.软件工程专业“项目化”教学实施体系的构建[J].实验室研究与探索,2013,32(5):158-163.

[4]杨姸旻.多维视域下“双师型”教师队伍建设路径研究[D].湖北工业大学,2014.

作者:杜小坤 徐胜舟 涂韬 单位:中南民族大学计算机科学学院 湖北广播电视大学导学中心