1. 秉承“卓越工程师教育培养计划”理念,遵循理论教学与实践教学一体化设计的原则,建立实验、实训、实习循序渐进的工程能力训练体系;
软件工程人才的培养要着眼于创新精神和实践能力的培养。在理念上,结合南京大学正在申报的“卓越工程师教育培训计划”,采取构思(Conceive)、设计(Design)、实施(Implement)和运行(Operate)能力分层次、一体化培养的工程教育模式来设计实践体系。在实践上,结合软件工程学科特点,对人才培养标准进行分解,构建人才培养标准实现矩阵,以构思、设计、实施和运行的全过程为载体,培养学生的工程能力。该能力不仅包括理论知识和专业技能,而且包括终生学习能力、团队交流能力和大系统掌控能力。
软件工程实践性很强,如果将理论、实践教学体系分开设计,难以避免知识点的重复和遗漏,即使设置几门纯实验课程,效果也不理想。因此,软件工程专业通过知识点分解,联合设计理论教学体系与工程能力训练体系,确保了理论与实践教学的一体化。
在软件工程专业工程能力训练体系中,整体规划与实施验证性实验、设计性实验、实训和实习,展开培养过程。通过同步安排在专业课程中的验证性实验巩固和加深学生对于特定理论知识点的理解程度;通过设计性实验循序渐进地对学生构思、设计、实施和操作的能力加以强化;通过与企业共同设计实施的实训课程培养学生的综合能力;通过为期半年的全时制实习使学生体验业界氛围和一线开发人员的工作环境,并进一步锻炼其工程能力。
图一 与理论教学联合设计的四阶段工程能力训练体系
图一给出了与理论教学联合设计的四阶段工程能力训练体系,它以软件工程方法为指导,以验证性实验(结构化程序设计实验、个人级小规模软件系统构建实验、小组级中规模软件系统构建实验、大规模软件系统重构模拟实验)、设计性实验(团队级中规模软件产品构建综合实践、与应用相结合的团队级软件工程课程实践)、实训与技能课程、实习等阶段为主线,以特定软件工程方法系列实验和特定软件系统/技术系列实验为两翼,以前沿技术和学生创新为补充,全面提高学生的工程化实践能力。
在工程能力训练体系中,系统而全面的实验课程和实验项目尤为重要,在建设过程中,软件工程实验教学中心计划将现有的38门实验课程(包含192个实验项目),扩展为49门实验课程(包含261个实验项目)。具体实验设置如下表所示:
专业基础课程 |
||||
序号 |
课程名称 |
实验项目 |
课程性质 |
课程特点 |
1 |
计算系统基础 |
3 |
基础课程 |
采取自底向上的教学模式,围绕一个简单的计算机(DLX)进行从比特到高级语言(C语言)的全面、系统的介绍,为初学者建立一个完整的计算概念 |
2 |
计算与软件工程I |
6 |
基础课程 |
又名《计算与软件工程——个人级软件开发》,采用迭代式增量开发过程,在个人开发级别上教授小规模软件系统构建知识。 |
3 |
计算与软件工程II |
5 |
基础课程 |
又名《计算与软件工程——小组级软件开发》,基于采用瀑布模型,在小组开发级别(4人左右的简单小组结队与角色轮换)上教授中规模软件系统构建知识。 |
4 |
计算与软件工程III |
3 |
基础课程 |
又名《计算与软件工程——团队软件开发实践》,采用螺旋模型,在小组开发级别(有较多团队交流行为的6人左右小组结队)上,开展强化团队合作、项目管理和软件工程制品的中规模软件系统(产品)构建实践;在项目开发阶段,还有意引入一次开发团队交换,进一步加强评审、交流、组织等能力训练,并体会软件系统开发的复杂性。 |
5 |
数据结构与算法 |
7 |
基础课程 |
主要内容包括常用的抽象数据类型及其相关操作,常用的基本算法、算法策略和算法分析(包括时间和空间复杂性分析),以及递归和常用的递归算法 |
专业核心课程 |
|||
序号 |
课程名称 |
实验项目 |
课程性质 |
1 |
操作系统 |
2 |
面向计算环境的核心课程 |
2 |
C++高级程序设计 |
8 |
面向计算环境的核心课程 |
3 |
计算机网络 |
13 |
面向计算环境的核心课程 |
4 |
数据库设计 |
5 |
面向计算环境的核心课程 |
5 |
软件需求工程 |
5 |
面向软件工程的核心课程 |
6 |
软件构造 |
3 |
面向软件工程的核心课程 |
7 |
软件系统设计与体系结构 |
8 |
面向软件工程的核心课程 |
8 |
软件测试与质量 |
3 |
面向软件工程的核心课程 |
9 |
软件过程与管理 |
4 |
面向软件工程的核心课程 |
10 |
人机交互的软件工程方法 |
5 |
面向软件工程的核心课程 |
11 |
软件工程统计方法 |
3 |
面向软件工程的核心课程 |
专业方向课程 |
|||
专业方向 |
课程名称 |
实验项目 |
课程性质 |
Linux技术 |
Linux系统基础 |
5 |
专业课程 |
Linux程序设计 |
6 |
专业课程 |
|
Linux实践 |
11 |
专设实践课程 |
|
嵌入式软件 |
嵌入式系统概论 |
3 |
专业课程 |
Linux程序设计 |
6 |
专业课程 |
|
嵌入式软件实践 |
11 |
专设实践课程 |
|
服务计算 |
服务计算概论 |
3 |
专业课程 |
SOA与Web Service技术 |
6 |
专业课程 |
|
服务计算实践 |
6 |
专设实践课程 |
|
信息系统 |
管理信息系统 |
3 |
专业课程 |
商务智能 |
2 |
专业课程 |
|
信息系统实践 |
5 |
专设实践课程 |
|
多媒体技术 |
多媒体技术 |
8 |
专业课程 |
数字图像处理 |
10 |
专业课程 |
|
多媒体技术实践 |
5 |
专设实践课程 |
|
信息技术 |
应用集成原理与工具 |
2 |
专业课程 |
系统管理与维护 |
3 |
专业课程 |
|
信息技术实践 |
7 |
专设实践课程 |
|
移动互联网 |
手持设备软件开发 |
8 |
专业课程 |
Android移动互联网开发 |
4 |
专业课程 |
|
移动互联网实践 |
4 |
专设实践课程 |
|
web技术 |
面向Web的计算 |
3 |
专业课程 |
J2EE与中间件 |
3 |
专业课程 |
|
Web技术实践 |
5 |
专设实践课程 |
选修课程 |
|||
序号 |
课程名称 |
实验项目 |
课程性质 |
1 |
编译技术 |
2 |
专业课程 |
2 |
.NET |
6 |
专业课程 |
3 |
计算机图形学 |
3 |
专业课程 |
4 |
数字信号处理 |
6 |
专业课程 |
5 |
小型机系统软件 |
5 |
专业课程 |
6 |
具体数据库 |
8 |
专业课程 |
7 |
基于多核的并行编程 |
8 |
专业课程 |
8 |
电子商务 |
4 |
专业课程 |
9 |
数据库开发技术 |
8 |
专业课程 |
10 |
基于PSP/TSP的软件实训 |
5 |
实训课程 |
为培养学生的工程创新思维和创新能力,实验教学中心强调“做中学”,即在教学过程中转变以教师讲授为主的单一模式,鼓励教师启发和引导学生,发挥学生的主动性,对新知识和技术进行探索。具体包括:面向问题的教学模式、案例驱动的教学模式、开放性实验模式和学生创新小组模式等创新型实践教学方法。