软件工程专业课程群建设探索

软件工程专业课程群建设探索

摘要:软件工程专业近几年来一直是热门专业,如何培养合格的软件人才也是各个高校研究的重要课题。通过将相关课程建设成课程群,以课程群为单位制定教学大纲、编写教案,实施教学计划,以课程群为单位制定合理的考核方案,通过实践证明能够达到良好的教学效果。

关键词:软件工程;课程群;人才培养

引言

软件工程专业从招生和就业情况来看,近年来一直呈现上升趋势[1]。软件工程的人才培养方案更注重加强学生的工程实践能力,很多专业课程都加大了实践课程的比重,但仅仅这样是不够的。首先,一些理论性较强的学科,鉴于学科特点,本身并没有好的实践方案;其次,课程与课程之间的分散性和低耦合度,使得教师在授课、学生在学习的过程中很难有针对综合实践能力的训练。针对这种情况,如果在制定人才培养方案时注重课程之间的特点和联系,将原本独立的课程划分为课程群,在授课过程中制定有效的授课方案,让学生在学习过程中体会到课程之间的联系,将原来孤立的知识串联起来,综合实践能力将大大提高。软件工程导论课程作为软件工程专业的核心课程,其重要性一直得到大家的认可,但是在实际教学过程中,效果却不尽如人意。课程的主要内容是讲授在软件实施过程中的一系列科学的方法,指导软件开发的有效性和高效性,但是由于课程内容本身太过理论化,向来有着难教、难学、难懂的几个特征。甚至有的学生在学过之后还是不明白此门课程的作用是什么,更别提将其中的知识应用于工程实践中。将这两种特点的课程结合起来,使理论有实践经验,使实践有理论为指导,达到良好的教学效果。本文将以软件工程导论课程为中心建立的课程群的教学方法为例,探讨软件工程专业课程群的实际实践方法。

一、课程群意义及标准

将原本独立的课程建设成课程群,是为了更好地达成学生能力培养的目标。经过多年教学实践证明,单一课程很难独立完成培养学生的能力目标,每门课自说自话,即使在设置课程时考虑到课程前后关联,但是在授课时又完全独立,互不干涉,自己有自己的培养目标,这导致了学生难以对知识进行串联,在头脑中不能形成知识链条,更少有同学将其综合、提升、应用了。课程群将几门相关、能够改变之前每门课程单独作战的局面,对于在授课过程中将各门课的培养目标综合为课程群的培养目标。每门课要针对课程群的培养目标重新安排课时、进度、内容,以便与课程群内的其他课程做好衔接,弱化课程的独立性,强化课程之间的耦合性。课程群的设立标准是课程之间要有关联性、整合性[2],课程之间在能力培养和知识点上能够互补,彼此能够促进,使各课程更具完整性,课程群内课程以两到三门为好,由于专业课特性所限,过多的课程组成课程群,不便协调,也不利于课程讲授。

二、软件工程类课程群

(一)课程设置

软件工程专业的学生不仅要学会相关技术,更应该掌握如何以工程学的标准做软件开发的能力。软件工程类课程群并不是指所有课程都是软件工程类中的,例如:软件建模技术、软件项目管理、软件质量保证与测试等,这些课程虽然相关性极高,但并不符合课程群建设中学生能力培养的互补原则。另外,一些纵向课程确实存在前导后续关系[3,4],教学内容上也会互补,但是由于时间的先后关系,使得两门课程很难实现大量的交流与具体内容的协调,因此我们尝试的课程群建设不是纵向课程群,而是横向课程群的建设,即不是前导、后续课程之间的课程建立课程群,而是在并行课中建设课程群,或者说将适合作为课程群的课程设置为并行课程。软件工程导论课程与同期开设的面向对象语言课程、数据库原理及应用两门课程能够为软件工程导论课程提供实践手段,而软件工程导论课程又为这两门课程提供理论指导。

(二)教学实施

在教学实施前,三门课程确定好课程群的教学目标、实施过程及考核方式,并在实施过程中不断交流,及时修改、调整授课内容和方式。三门课程的教师对班级同学进行分组教学[5]。软件开发工作大多以团队工作为主,分组教学的目的是为了锻炼学生的团队合作能力。在后期的实践中每组中推选出真实项目组的角色:项目经理、设计师、工程师、测试人员,可以一人兼任多角。每组四人,在软件工程实验课中,按照软件工程的方法学,对系统进行分析、设计,课后使用面向对象的语言课程作为前台界面和业务逻辑,使用数据库技术存储数据,完成一个完整的系统。从实施过程来讲,首先,在进度上和课时安排上,三门课程要彼此协调。在课程的前半段,三门课程彼此关联比较小,进行到课程中后段,彼此关联越来越多,教学内容上,教师在授课时以本课程内容为主。理论教学中,每门课程的教师都以本课程内容为主。实践教学中,教学内容的设定将与非课程群授课不同。实践内容对于每位学生并非千篇一律,每组同学选定一个题目,组内每名同学根据自己的分工,确定自己的内容,或者共同商议完成相应内容。理想状态下,教学过程中应有过程考核,可分为:开题考核、期中考核和结果考核,考核形式采用翻转课堂的形式,每组课前准备材料,在课上轮流向老师和同学展示任务进度。展示内容按设计理念、程序设计、数据库设计,每次展示中,学生和老师根据内容、完成进度、展示质量给出分数。过程监督可以督促每组保质保量的完成任务,对于学生也是相互借鉴和促进,同时也锻炼学生的表达能力,增加逻辑性和条理性。但是由于课时、场地、老师的授课时间的冲突,也可以省略开题考核和期中考核,过程由教师在日常课堂中进行监督。

(三)考核标准

在课程群供同学授课的方式中,最后的考核与传统单独授课考核标准的不同体现在对学生实践成果的考核。对于程序设计类课程,考核方式是上机+笔试,而软件工程导论和数据原理课程考核形式则为单一的笔试。课程群建设后,三门课程都可以加入工程的形式来考核,使考核结果更全面。考核中,每门课程需要提交的材料也是不同的。对于软件工程,学生需要提交各个阶段中完成的文档,包括:可行性分析报告、需求分析报告、设计文档。程序设计课程则需要提供一个完整的程序。对于数据库课程,需要提供数据库(和程序一起运行),数据库设计可以写在设计文档中。考核中,不仅要参考教师的意见,也要参考同组同学与其他组同学的意见,最后实践成绩的组成是由组内互评(20%)+小组互评(30%)+教师评价(50%)共同组成。因此制定了具体的考核标准,以对学生打分。组内互评的打分标准如表1所示。小组互评的打分标准如表2所示。组内互评和小组互评的成绩是每一门课程都采纳的,教师的打分依据的是课程的具体要求。

三、结束语

实践过程中,我们也发现了一些局限性,例如,并非所有课程都可以建设成为平行开课的课程群,另外,可以建设课程群的课程,在课时的安排、进度的安排上、实践的安排上都会有一些困难。但同时也看到采用以软件工程课程为核心的课程群授课方式,学生的工程实践能力得到了提升,对软件工程这门理论课的认识加深了,对于数据库如何与程序结合做出完整的系统有了认识,从实践上认识到数据库设计的原理。对于程序设计语言,更是脱离了之前盲目做程序的状态。由此可见,以课程群为单位进行教学还是可以取得良好的教学效果的。

参考文献:

[1]金英,马吉权,青巴图.软件工程人才培养的创新与实践———以黑龙江大学软件工程专业“顶石”课程设置为例[J].黑龙江教育(理论与实践),2018(09):52-53.

[2]毕津源.毕业生就业情况研究———以软件工程为例[J].中国市场,2017(09):31-32.

[3]孙琦龙.创新型软件工程人才培养体系研究与实践[J].软件工程师,2015,18(10):63-64+62.

[4]龙陈锋,贺智勇,傅卓军,等.软件工程方向课程群建设探索[J].计算机教育,2012(22):72-75+82.

[5]吕会庆,张巍.软件工程专业课程群建设教学实践[J].计算机教育,2012(14):27-29.

作者:赵立波 单位:哈尔滨金融学院