软件工程专业模块化教学课程改革的理论与实践探索

袁暋 檀明[1]

合肥市是国家首批服务外包基地城市之一,软件人才需求空间很大。作为国家软件服务外包特色专业,本专业自2010年入选教育部第一批卓越工程师教育培养计划以来,借鉴教育部高等学校教学指导委员会编制的《计算机科学与技术专业规范(软件工程方向)》,围绕培养能在工程现场从事软件工程技术应用开发工作,工程功底深厚的软件工程师的专业人才培养目标,发挥与德国应用科学大学(Fachhochschule, 简称“FH”)合作共建的优势,着眼于学生能力培养,引入“博洛尼亚进程”后欧洲各国正在实施的模块化教学,重新组织教学结构,根据本专业对学生知识、能力和素质的需要,打破课程之间界限,整体构建课程体系,有针对性地将一个专业内相关的教学活动组合成不同的模块,并围绕教学目标设置教学内容、授课时数、授课形式及自学方式和时间等,避免了教学内容的重复,提高了教学效率,优化了教学内容体系,也使教学更具有针对性。

一、模块课程改革思路

借鉴德国FH工程型人才培养成功经验,围绕模块化教学改革,打破原有的课程体系,构建覆盖本专业卓越工程师人才培养标准的模块化课程体系,并利用模块所具有的能力培养目标的“针对性”、教学内容的“可重组性,非重复性”和教学形式的“多样性”特点,实现对原有课程的整合优化。

() “以能力为导向”,构建“模块化”课程体系

根据培养标准对学生知识、能力和素质等的要求,引入“博洛尼亚进程”后欧洲各国正在实施的模块化教学,通过打破课程之间界限,整体构建课程体系,有针对性地将一个专业内相关的教学活动组合成不同的模块,并使每个模块对应明确的能力培养目标,当学生修完某一模块后,就应该能够获得相关方面的能力。通过模块与模块之间层层递进、相互支撑,实现本专业的培养目标,并将传统的人才培养“以知识为本位”转变为“以能力为导向”。

 () 围绕模块能力培养目标,设置模块教学内容

针对本模块的培养目标有选择性地构建教学内容,将传统的课程改造为面向特定能力培养的“模块”。同时,整合传统课程体系的教学内容,实现模块教学内容的非重复性。另外,充分发挥合作企业所具有的工程教育资源优势,与企业共同开发和建设具有综合性、实践性、创新性和先进性的企业课程模块。

() 融合多种教学形式,使理论教学和实践教学紧密衔接

通过将课堂教学、企业学习、研讨、项目、实验、练习、第二课堂和自主学习等不同的教学形式引入模块化教学环节,实现理论教学与实践教学的紧密结合,强化对学生工程能力和职业素质的训练。

二、模块化课程改革的具体做法

(一)制定专业培养学校标准

我校在国家通用标准的指导下,借鉴教育部高等学校教学指导委员会编制的《计算机科学与技术专业规范(软件工程方向)》,围绕专业人才培养目标,与企业联合组建专业指导委员会,通过在软件行业领域与具有地方产业特色的领军企业中广泛深入地调研,确定本专业适应的岗位群,以及对专业人才知识、能力和素质的需求与企业共同制定了本专业的学校标准。学校标准从科学知识、专业能力和综合素质三个角度全面涵盖了本专业卓越工程师人才培养规格和要求。

(二)构建“模块化”课程体系

根据前期制定的专业培养学校标准,构建适合本专业发展的课程体系。近年来,“模块化”课程体系被广泛应用于德国应用科学大学(FH)较好地解决了课程设置的体系化问题、理论教学与实践教学的衔接问题、工程素质教育与专业教学的关系问题以及学生能力的培养问题。

“模块化”课程体系主要着眼于学生能力的培养,根据专业培养目标对学生知识、能力和素质的要求,整合重组教学内容,有针对性地将一个专业内相关的教学活动组合成新的主题式教学单元-模块。模块作为面向专业能力培养的基本教学构成单位,是围绕特定能力培养对相关教学活动的有机组合,具有可重组性和教学内容的非重复性。同时模块对应能力培养环节的连贯递进,能灵活有效地支持模块互换及学分互认,可以满足学生应用能力和综合素质的培养。

“卓越工程师教育培养计划”对卓越工程师的各种能力提出明确的要求,在课程体系整合重组的过程中,应把能力的培养体现在每门课程之中,贯穿于整个课程体系。因此,德国的“模块化”课程体系改革理念对于卓越工程师人才培养具有积极的借鉴意义,通过推行模块化课程体系,将有助于卓越工程师人才各种能力的培养。自1985年来,合肥学院已与包括汉诺威应用科学大学、奥斯纳布吕克应用科学大学等多所德国应用科学大学建立了合作关系,利用德国优质的教育资源并结合我国实际,共同培养符合地方社会经济发展需要的工程应用型人才,并在“模块化”课程体系构建方面开展了先期的探索,积累了丰富的经验。

针对本专业的特点,在构建“模块化”课程体系时,应根据专业培养学校标准,打破课程之间的界限,对教学内容进行优化、整合、重组,将原有的“偏重知识传授”的层次化课程体系转变为“强调能力培养”的模块化课程体系。首先,根据专业人才培养标准,围绕专业能力培养目标,将抽象的专业能力具体化为能力要素;然后,针对每个能力要素确定其对应的支撑知识点,由相关联的能力要素对应的知识点及知识应用组成模块;最后,通过相关模块的有机搭配,构成覆盖本专业卓越工程师人才培养标准的“模块化”课程体系,如附件所示。

() 整合教学内容

围绕人才培养标准,对原有课程教学内容重新整合、重组,构建出新的模块教学内容。整合后的教学内容面向能力培养,每个模块对应一个或多个相关的能力要素,模块之间内容不重复,消除冗余。

1、数学课程内容的调整与优化[2]

依据“以应用为目的,以必需适用为度”的原则,同时参照国家最新制定的“工科类本科数学基础课程教学基本要求”,根据模块化教学的涵义,确定了大学数学类课程模块化体系改革的总体思路为:“横向分类,纵向分级”。

横向分类是指大学数学教学为专业教学服务,要满足专业课程教学内容的需要。根据工科、经管和文科类专业的需求,将大学数学分为三大类:工程应用数学、经管应用数学和数学素养;纵向分级是指根据数学自身的特点和内在联系,将大学数学课程分成5级模块,其中A包括一元函数微积分、微分方程等,B包括多元函数微积分、矢量分析、级数等,C包括线性代数的基本知识,D包括概率论与数理统计,E包括复变函数与积分变换。

为制定适合本专业的数学模块,专业教师与数学教师按照“材料收集→提取数学知识点→获取知识点纲要→整理成数学模块→数学模块教学大纲→确定教学内容”的流程,共同确定本专业学习工程应用数学A-D4个模块。

在确定了每个模块教学内容的基础上,我们按“能力、知识、素质”三个要素,对每个模块进行分解,将每个模块分解为理论学习、实践学习和自主学习三个环节。理论学习主要是培养学生的数学能力如:计算能力、逻辑推理能力、空间想象能力、数学建模能力等;实践学习主要是培养学生数学创新能力、应用数学软件的能力等;自主学习主要是培养学生的自学能力、团队合作能力等。这三个环节的学习是互相渗透,互相补充,相辅相成的。

以工程应用数学B为例,具体安排如下:

1)理论与实践教学

1 工程应用数学B理论与实践教学安排

内容(88学时)

理论教学(学时)

创新实践课堂(学时)

向量代数与空间解析几何

10

2

多元函数微分学

24

2

多元函数积分学

24

2

级数

22

2

2)自主学习

2 工程应用数学B自主学习安排

学习内容

学习时间

总学时

考核材料

公式编辑器、matlab的使用

4-7周,每周4学时

16学时

提交一份实验报告

案例分析一

(曲线拟合)

8-11周,每周5学时

20学时

以小组为单位,提交案例分析报告

案例分析二

(条件极值)

案例分析三

(二、三重积分的计算与数值积分)

12-15周,每周5学时

20学时

以小组为单位,提交案例分析报告

案例分析四

的近似计算)

模块总结

16-17周,每周5课时

10学时

提交模块总结一份

2、物理课程的打散与融合

传统的大学物理课程内容繁杂,包括力学、光学、电磁学等,与本专业所面向的“能在工程现场从事软件工程技术应用开发工作,工程功底深厚的软件设计工程师、高级程序员和软件质量保证工程师”的培养目标差别较大;且原内容注重理论推导,忽视理论应用,不适应我校“应用型”人才培养规格。因此对原物理课程内容重新梳理,挑选其中与本专业密切相关的电磁学内容,并将其打散融入到电工电子、模电、数电等专业课程的教学中,最终构建出由2个模块组成的电路与数字系统设计系列,使物理原理的讲授与专业知识紧密结合,达到良好的教学效果。

3 物理课程内容打散融入专业课程教学

物理知识点

专业课内容

参考学时

功率

电路中的电流、电压、电位、功率

0.5

电势、电势差与电流

电流、电压参考方向与实际方向区别及联系

0.5

电容、电感系数

无源二端元件

2

电能和磁能密度

无源二端元件

1

能量守恒定律

基尔霍夫定律

1

无源线性二端网络等效电阻计算

直流电路分析方法

2

电磁感应定律

动态电路分析

1

RL电路的暂态过程、RC电路的暂态过程

动态电路分析

2

谐振电路

谐振电路的分析、计算

1

电荷守恒定律

半导体二极管

1

带电粒子在电场和磁场中的运动

半导体二极管的构成、伏安特性及参数

0.5

光电效应

半导体二极管及其应用电路

0.5

……

……

 

3、专业课整合优化

在传统的计算机科学与技术专业中,课程体系兼顾了软件、硬件及网络三个方面,课程较多且不能突出重点。因此对非软件类课程进行合并优化,具体包括:

1)构建分层次的专业技术模块组合

按照现代软件开发企业的专业分工,根据前期调研结果,梳理出各个岗位的核心能力,并以此为基础优化组合专业技术类课程,形成对应中低端技术岗位、中高端技术岗位及管理岗位三个层次核心能力的模块组合,具体构建方案如下图所示:

1 专业技术模块组合

软件实现能力模块组合:面向程序员、测试员等中低端技术岗位,构建培养软件实现能力的模块组合,并按照如下四个类别划分模块:

基础语言类:面向过程程序设计模块、面向对象程序设计模块

Web开发类:Web应用系统开发模块、JavaEE技术模块、.Net技术模块、XMLWeb2.0模块

嵌入式开发类:嵌入式Linux C编程模块、嵌入式软件设计模块

软件测试类:软件测试模块

软件分析设计能力模块组合:面向设计员、分析员中高端技术岗位,构建培养软件分析设计能力的模块,并按照如下两个类别划分模块:

基础类:软件工程、数据库原理与应用

拓展类:软件分析与设计、Oracle数据库、Web开发框架

软件管理能力模块组合:面向项目经理、产品经理、质量经理等管理岗位,构建培养软件管理能力的模块,提供了项目管理、软件配置和软件质量保证等模块供学生选修。

2)优化整合硬件及网络类课程

在传统的计算机科学与技术专业中,课程体系兼顾了软件、硬件及网络三个方面,课程较多且不能突出重点。因此对非软件类课程进行合并与压缩,具体包括:①计算机组成原理与计算机体系结构压缩形成一个新模块:计算机组成与结构,压缩整合原有两门课程的教学内容,同时减少了总学时;②将Linux(也称网络操作系统)教学内容合并到操作系统中,理论讲授学时仍然保持与原操作系统课程一样,采用实践和自主学习方式完成Linux内容的教学。

4、引入行业最新技术及规范

软件工程领域是最具活力、技术创新最多的领域之一,培养软件工程师必须紧密结合工业界的最新发展。通过广泛的企业调研,将行业领军企业认证课程的部分内容优化整合进专业教学中,从而提高学生的软件工程能力,使学生始终站在技术发展的最前沿,具体如下表所示:

4 将认证课程融入到专业模块教学内容

序号

认证课程

专业模块

1

IBM Rational Requirements Composer

软件分析与设计

2

IBM Rational Doors

3

IBM Rational Software Architect

4

IBM Rational Team Concert

软件配置

5

IBM Rational Quality Manager

软件测试

6

IBM Rational Functional Tester

7

IBM Rational Performance Tester

8

IBM Rational Appscan

9

IBM DB2

数据库原理与应用

10

Oracle10g Certified Associate

Oracle数据库

11

Oracle10g Certified Professional

5、增设企业课程

为了增强学生职业素质,提升软件工程能力,本专业与合作企业密切联系,采用邀请企业专家进校和派出学生进入企业两种方式相结合,按照“由浅入深、由单项到综合”的原则,根据各个学习阶段的具体内容,层层递进地实现能力的渐进培养。

1)邀请企业专家上课

大一至大三,逐步邀请企业专家来校参与理论和实践教学。

5 企业专家教学内容

模块

合作企业

教学内容

学时

专业导论

文思科技

IT职业教育

4

科大讯飞

沟通能力

2

工程概论

2

数据结构综合设计

科大讯飞

C语言强化实训

2

软件工程

文思科技

规范化软件开发流程

4

认知实习

科大讯飞

文思科技

项目实战讲解

4

软件质量保证

(双语)

文思科技

IT服务外包英语

8

软件分析与设计

文思科技

UML建模工具使用

8

软件测试

文思科技

测试管理

8

Oracle数据库

科大讯飞

性能优化,数据备份,灾难恢复等

16

JavaEE技术

科大讯飞

SSH框架整合

16

XMLWeb2.0

科大讯飞

AJAXJQuery技术

8

备注:以上具体内容可根据实际情况调整

2)派出学生进入企业学习

大四一年,派出学生到企业真实环境并进入项目组,采用面授、自学、项目实训相结合的方式开展学习。以文思科技为例,企业阶段学习内容如下:

6 文思科技企业阶段学习内容

课程

内容

学时

Android技术简介及简单项目实训

Android应用开发进行相关的系统化课程讲解,并以项目的形式进行训练

6

Flex技术简介及简单项目实训

Flex开发进行相关的系统化课程讲解,并以项目的形式进行训练

6

产品与行业知识、各行业项目实践

了解软件行业特点及不同行业项目要求和特点,学习政府、银行、石化、钢铁、通讯、服务、商贸等各行业经典项目,并进行开发岗位实践

7

SOA架构的讲解

明确SOA相关概念,了解BizTalk的使用,重点从中体会到企业级开发的概念

6

备注:以上具体内容可根据实际情况调整

      剩余时间安排毕业设计(论文)撰写与答辩

三、改革后的课程体系特点 

(一)突出专业特点,强化培养软件工程能力

整合后的课程体系明确了教学重点为软件开发能力的培养,软件课程从原有的13门提高到20门;软件课程的学时比例从32%提高到49%

(二)突出实践训练,强化培养学生动手能力

整合后的课程体系遵循学生认知规律,通过“从校外到校内,再从校内到校外”的方式开展3次集中式实践训练:一是认知实习:在大二与大三之间插入一个12周的认知实习。使学生认知社会、认知专业,初步了解社会和专业公司等社会组织的工作过程及和专业相关的实际知识;比较广泛地接触现场人员,提高交流沟通能力,树立劳动观点,集体观点,培养开拓创新能力和团队合作能力。二是校内工程实践:引入双导师制,模拟企业开发场景,完成一个真实软件项目的开发实训。使学生了解与本专业相关的领域知识;掌握文献、信息、资料检索的一般方法;熟悉软件开发技术标准与规范,初步具备项目管理能力;具备完整软件系统的分析、设计、实现及测试能力;培养开拓创新精神、交流沟通与团队合作能力,初步具备规范的职业素养。三是企业项目实训:全面进入企业,在工程师的指导下,在企业真实生产环境中开发软件系统。

优化整合后课程体系中实践教学学时从35%提高到44%,理论学时从65%降低到56%

(三)引入行业发展的最新技术

整合后的课程体系在5门专业技术课程中引入11项企业认证课程的内容。通过引入新技术,使教学内容始终处于行业发展的前沿,有利于学生毕业后迅速进入工作状态,从事软件开发工作。

(四)校企深度合作

整合后的课程体系从三个层面加强了校企合作:一是与企业共同制定人才培养标准。与企业共同组建专业指导委员会,听取企业意见,引入最新行业标准与规范,制订符合行业需求的人才培养标准。二是课程内容引入行业发展最新技术。融入到具体课程内容中,保证了教学内容的先进性。三是与企业合作开展三阶段集中实践教学,强化学生的动手能力和工程素养。



[1] 本文由合肥学院计算机科学与技术系袁暋、檀明等系教学委员会成员共同撰稿

[2] 本部分内容由合肥学院数学与物理系提供