软件工程专业的课程体系设计
- 格式:pdf
- 大小:137.98 KB
- 文档页数:2
图书管理系统课程设计报告1.设计目的随着计算机技术的不断开展,计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。
目前,我国的科技水平高速开展,计算机作为今天使用最广的现代化工具已深入到各个领域,并且正在成为未来社会——信息社会的重要支柱。
在这样的大背景下,现代图书馆的管理方式,资源建立等方面都发生了重大变化,这种变化表现在图书馆工作,管理和效劳平台发生的变化,图书馆不再是传统的手工操作,人工管理,而是全面实行计算机管理。
图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进展管理。
本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理,全面实行计算机管理。
2.可行性研究报告在软件的开发过程中,这一步是十分必要的。
如果在定义阶段及早发现将来可能在开发过程中的问题,及早做出决断,可以防止大量的人力,财力和时间上的浪费。
1.技术可行性:本组开发成员都具有一定的电脑知识,学习过多种程序开发语言。
特别是在工程确定后对C#和SQL Server数据库的强化学习,使本系统成功开发成为可能。
2.经济可行性:本系统有其生存空间,成功后有其市场。
并且本小组开发人员基于一种爱好去研究他的,我们有自己的电脑,可以说本钱开支极其有限。
3.现阶段各种各样的图书馆越来越多,图书馆的书也越来越多,图书的管理工作也越来越复杂。
本系统就是为了减轻图书管理人员的工作而设计的。
4.法律可行性:本系统为我五人开发小组独立完成,不关他人,开发成功后其所有权归我们五人所有,用户购置后其使用权一同买断,我们将提供技术支持。
5.基于水平和时间有限,我们的系统还不是十分完善。
可扩展的地方很多,现列举如:建立图书预约机制建立读者反应机制建立过期催还机制建立条码扫描机制等。
以现有的人力和时间来衡量,我们只有放弃。
经过以上可行性论证,本系统可以按任务书要求开发。
3.工程开发方案书4.系统需求规格说明书该过程是个不断认识不断细化的过程。
软件技术专业课程体系建设与教学模式改革实践与思考一、软件技术专业课程体系建设1.1 课程体系的构建软件技术专业的课程体系需要包括软件工程、程序设计、数据库、网络技术、操作系统、算法与数据结构、人工智能等多个方面的课程。
需要注意的是,随着技术的不断发展,课程内容需要与时俱进,在培养学生基础知识的也需要注重培养学生的创新能力和团队合作能力。
课程体系还应该与实际产业需求相结合,引入与市场需求紧密相关的专业课程,如大数据、云计算等。
1.2 跨学科综合课程的设置除了传统的软件技术课程外,为了培养学生的综合素质,可以引入跨学科的综合课程,如软件与法律、软件与商业、软件与心理学等,让学生在学习软件技术的也能够了解与其相关的其他领域知识,为将来的工作做好充分准备。
1.3 课程教学方法的改革在课程教学方法上,可以采用案例分析、项目实践、实验教学等方式,引导学生的学习与实践相结合,通过实际操作来加深对知识的理解,培养学生的实际动手能力。
二、教学模式改革实践与思考2.1 引入工业界实践在软件技术专业的教学中,可以引入工业界的实践教学,例如与企业合作开展项目实训、参与实际项目开发等,让学生在真实的工程环境中进行实践,提高学生的综合运用能力。
2.2 强化实践性教学在课程设计中,可以适当减少理论课程的比重,增加实践性课程,例如项目设计、实验教学、实习等,让学生在实践中学习,在实践中提高。
2.3 创新教学模式可以尝试引入创新教学模式,如翻转课堂、在线教学等,通过多种方式为学生提供学习资源,激发学生的学习兴趣,提高课程教学质量。
软件技术专业课程体系建设与教学模式改革是一个系统工程,需要我们从多个方面进行思考与实践。
只有不断完善课程体系,改善教学方式,才能更好地培养出适应社会需求的软件技术专业人才。
希望通过本文的探讨,能够引起广大教育工作者对软件技术专业课程体系建设与教学模式改革的重视,从而为软件技术专业教学质量的提升提供一些借鉴与思考。
软件工程大一至大四课程表
软件工程专业大一至大四的课程表可能因学校和教学计划的不同而有所差异。
以下是一些可能的课程安排:
大一课程:
•计算机基础课程:如计算机概论、计算机导论等,帮助学生掌握计算机的基本原理和应用。
•程序设计基础课程:如C语言程序设计、Python编程等,教授学生编程语言及基本编程技巧。
大二课程:
•数据结构与算法:帮助学生理解各种数据结构(如链表、栈、队列、树、图等)和算法(如排序、查找、动态规划等)的原理与实现。
•计算机组成原理:介绍计算机硬件的基本组成和工作原理。
•离散数学:为后续的课程打下数学基础。
大三课程:
•操作系统:让学生了解操作系统的基本原理、进程管理、内存管理、文件系统等方面内容。
•计算机网络:教授计算机网络的基本概念、体系结构、网络协议和技术,以及网络编程和网络安全等方面的知识。
•软件工程:介绍软件工程的基本概念、原理和实践,包括软件需求分析、设计、开发、测试和维护等方面的内容。
大四课程:
•软件项目管理:介绍软件项目管理的原理和方法,包括项目计划、组织、领导、控制等方面的内容。
•软件构件与中间件技术:介绍软件构件和中间件的概念和应用,以及如何利用它们进行软件开发和维护。
•J2EE:介绍Java 2 Platform Enterprise Edition (J2EE)的概念和应用,包括Java EE应用程序体系结构、Servlet、JSP等技术。
此外,在大二、大三期间,学生可能还需要学习数据库原理与设计、软件测试技术等方面的课程。
此外,根据学校和教学计划的不同,还可能有其他相关的课程安排。
软件工程大一至大四课程表
摘要:
一、引言
二、大一课程
1.计算机基础课程
2.编程语言课程
三、大二课程
1.数据结构与算法
2.计算机组成原理
四、大三课程
1.操作系统
2.计算机网络
五、大四课程
1.软件工程实践
2.软件项目管理
六、总结
正文:
【引言】
软件工程是一门理论与实践相结合的学科,从大一至大四,学生需要学习一系列课程以掌握软件开发的基本技能。
本文将概述我国高校软件工程专业大一至大四的课程设置。
【大一课程】
大一阶段主要开设计算机基础课程和编程语言课程。
计算机基础课程包括计算机概论、高等数学、线性代数、概率论与数理统计等,为后续专业课程打下基础。
编程语言课程主要包括C++、Java 等,让学生掌握基本的编程技能。
【大二课程】
大二阶段开始涉及专业核心课程。
数据结构与算法课程帮助学生理解各种数据结构以及基本算法,提高编程效率。
计算机组成原理课程介绍计算机硬件的基本组成和工作原理。
【大三课程】
在大三阶段,学生需要学习操作系统和计算机网络课程。
操作系统课程讲述操作系统的基本原理和实际应用,如进程管理、内存管理、文件系统等。
计算机网络课程则涉及计算机网络的体系结构、协议和网络编程等方面的知识。
【大四课程】
大四课程以实践为主,包括软件工程实践和软件项目管理课程。
软件工程实践课程让学生参与实际的软件开发项目,提高项目管理和协作能力。
软件项目管理课程则教授软件项目管理的理论和方法,培养学生的项目管理能力。
软件工程大一到大四的课程
摘要:
1.软件工程专业简介
2.大一课程安排
3.大二课程安排
4.大三课程安排
5.大四课程安排
6.总结
正文:
软件工程是一门以计算机科学为基础,以软件开发为重点的学科。
软件工程师主要负责编写、测试、维护和改进计算机软件。
为了培养优秀的软件工程师,大学一般会设置四年的软件工程课程。
下面我们来看看软件工程大一到大四的课程安排。
大一课程安排:
在大一阶段,学生主要需要学习计算机基础课程,为后续专业课程打下基础。
主要课程包括:计算机导论、计算机程序设计、数据结构与算法、离散数学、计算机组成原理等。
大二课程安排:
在大二阶段,学生开始接触软件工程的专业课程。
主要课程包括:软件工程、软件需求分析、软件项目管理、数据库原理与设计、计算机网络等。
大三课程安排:
在大三阶段,学生将进一步深入学习软件开发相关课程。
主要课程包括:软件测试、软件质量保证、软件工程实践、操作系统、软件工程案例分析等。
大四课程安排:
在大四阶段,学生将进行实习和毕业设计,同时学习一些选修课程。
主要课程包括:软件工程管理、软件工程研究方法、软件工程前沿技术、计算机图形学等。
总结:
软件工程专业的课程设置从基础到专业,再到实践,为学生提供了全面的知识体系。
软件工程课程体系
软件工程是一门涵盖多个学科领域的综合性学科,旨在通过系统化的方法、工具和过程来开发高质量的软件产品。
软件工程课程体系是指一系列涵盖软件工程各个领域的课程,包括软件开发、测试、项目管理、需求分析、软件设计、软件体系结构、软件维护、软件工程经济学等。
这些课程在软件工程学生的学习生涯中起到了非常重要的作用,不仅可以提供必要的理论知识,还可以为学生提供实践经验和技能培养。
在软件工程课程体系中,软件开发是一个核心领域,包括软件工程基础、编程语言、算法与数据结构、数据库等课程。
这些课程旨在为学生提供必要的编程技能和基础知识,使他们能够正确、高效地开发软件产品。
除此之外,软件测试也是重要的课程领域之一。
软件测试课程旨在教授学生如何设计、编写测试用例以及如何进行软件测试。
这些课程可以帮助学生在软件开发中发现和修复可能存在的错误和缺陷,从而提高软件产品的质量。
软件工程课程体系还包括软件项目管理、需求分析、软件设计、软件体系结构、软件维护等课程。
这些课程可以帮助学生了解软件工程的主要过程和方法,从而在软件开发过程中更好地进行规划和管理。
最后,软件工程经济学也是软件工程课程中的重要内容。
这门课程旨在为学生提供关于软件工程成本、效益和风险的知识,使他们能够做出明智的决策,从而实现软件工程项目的成功。
综上所述,软件工程课程体系是软件工程学生必须学习的一系列课程,它们可以为学生提供必要的理论知识和实践技能,帮助他们在软件开发过程中取得成功。
软件工程方向专业培养方案一、专业课程设置1. 基础课程(1)数据结构与算法:介绍数据结构和算法的基本概念,培养学生编写高效算法的能力。
(2)计算机原理与体系结构:介绍计算机硬件系统的基本原理,为学生理解软件与硬件的协同工作奠定基础。
(3)操作系统原理:介绍操作系统的基本原理和设计思想,培养学生编写高效、稳定的操作系统的能力。
2. 专业核心课程(1)软件工程导论:介绍软件工程的基本概念、原理和方法,培养学生软件工程思维。
(2)面向对象分析与设计:介绍面向对象分析与设计的原理和方法,培养学生进行软件系统设计的能力。
(3)软件测试与质量保障:介绍软件测试和质量保障的基本原理和方法,培养学生保证软件质量的能力。
(4)软件项目管理:介绍软件项目管理的基本原理和方法,培养学生进行软件项目管理的能力。
3. 选修课程(1)Web应用开发:介绍Web应用开发的基本技术和方法,培养学生开发Web应用的能力。
(2)移动应用开发:介绍移动应用开发的基本技术和方法,培养学生开发移动应用的能力。
(3)大数据技术与应用:介绍大数据技术和应用的基本原理和方法,培养学生处理大数据的能力。
二、实践教学安排1. 实验课程在数据结构与算法、计算机原理与体系结构、操作系统原理等课程中设置相应的实验课程,让学生亲自动手实践,加深对课程知识的理解,培养实际操作能力。
2. 课程设计在面向对象分析与设计、软件测试与质量保障、软件项目管理等课程中设置课程设计,让学生参与一个小型软件项目的设计、开发和管理,从而培养实际工作能力。
三、实习实训计划1. 实习环节安排学生到软件公司、互联网企业等相关企业进行实习,让学生接触实际工作环境,了解行业发展趋势,积累实际工作经验。
2. 实训项目结合学校科研项目或与企业合作项目,设置实际软件开发项目,让学生参与其中,锻炼实际开发能力,培养团队协作精神。
四、科研创新能力培养1. 科研导师制度为学生设置科研导师,指导学生进行科研工作,培养学生独立思考和解决问题的能力。
软件工程课程设计大纲一、课程目标知识目标:1. 让学生理解软件工程的基本概念、原则和方法;2. 使学生掌握软件开发各阶段的目标、任务及相互关系;3. 帮助学生了解软件项目管理、软件质量保证及软件测试的相关知识;4. 引导学生掌握至少一种编程语言及其在软件工程中的应用。
技能目标:1. 培养学生运用软件工程方法进行问题分析、需求分析、系统设计的能力;2. 提高学生编写规范、可读性强、高质量的代码的能力;3. 培养学生团队合作意识,提高项目管理和沟通协调能力;4. 培养学生运用软件测试方法对软件进行质量保证的能力。
情感态度价值观目标:1. 培养学生对软件工程的兴趣,激发学生主动学习和探究的精神;2. 引导学生树立正确的软件工程观念,认识到软件质量对于整个软件生命周期的重要性;3. 培养学生具备良好的职业道德,尊重知识产权,遵循行业规范;4. 培养学生具备较强的责任感,关注软件对社会、环境及人类生活的影响。
课程性质:本课程为理论与实践相结合的课程,旨在培养学生掌握软件工程的基本理论、方法和技术,具备软件开发和项目管理能力。
学生特点:本课程针对的是高年级学生,他们已经具备一定的编程基础和软件工程知识,具备较强的自主学习能力和团队合作精神。
教学要求:教师应注重理论与实践相结合,引导学生通过案例分析和项目实践,将所学知识应用于实际软件开发过程中。
同时,关注学生个体差异,提供个性化指导,确保课程目标的达成。
在教学过程中,注重评估学生的具体学习成果,以指导后续的教学设计和教学改进。
二、教学内容1. 软件工程概述- 软件工程的定义、目标与原则- 软件生命周期与开发模型2. 软件需求分析- 需求分析的方法与工具- 需求规格说明书编写3. 软件设计- 概要设计与详细设计- 设计模式与应用- 编码规范与命名规则4. 编程语言及应用- Java、C++、Python等编程语言基础- 编程语言在软件工程中的应用案例5. 软件测试- 软件测试方法与策略- 自动化测试工具与应用- 测试用例设计与执行6. 软件项目管理- 项目计划与管理方法- 团队协作与沟通技巧- 风险管理及应对措施7. 软件质量保证- 软件质量标准与评价方法- 软件过程改进与优化- 质量保证工具与技术8. 项目实践- 案例分析与讨论- 团队项目开发与实施- 项目成果展示与评价教学内容安排与进度:第1-2周:软件工程概述、需求分析第3-4周:软件设计、编程语言及应用第5-6周:软件测试、软件项目管理第7-8周:软件质量保证、项目实践教学内容与教材章节关联性:本教学内容与教材《软件工程》各章节紧密关联,涵盖了软件工程的基本理论、方法和技术。
软件工程技术课程体系介绍
软件工程技术课程体系介绍:
软件工程技术课程体系是一个综合性较强的课程体系,旨在培养学生具备软件工程开发和管理的能力。
该课程体系涵盖了软件开发的各个阶段和相关的知识,包括需求分析、系统设计、测试、维护以及项目管理等方面的内容。
1. 软件开发基础知识:学生将学习到软件开发的基本概念、原理和方法,包括编程语言、数据结构与算法、数据库等基础知识,为后续的课程打下坚实的基础。
2. 软件需求分析与设计:学生将学习如何进行需求分析,包括需求获取、需求分析和需求规格说明等,以及系统设计的相关知识,包括系统架构设计、模块设计等。
3. 软件测试与质量保证:学生将学习如何进行软件测试,包括测试策略、测试用例设计、测试执行和测试评估等。
同时还将学习到如何进行软件质量保证,包括代码审查、性能测试等。
4. 软件项目管理:学生将学习到如何有效地进行软件项目管理,包括项目计划、进度管理、团队协作和风险管理等方面的知识,以确保软件项目的顺利完成。
5. 软件工程实践:学生将有机会参与到实际的软件开发项目中,通过与企业合作或者实验室的项目,将所学的知识应用到实际情境中,提升实践能力。
6. 软件工程学科前沿知识:学生还将学习到软件工程学科的前沿知识和热点领域,了解最新的技术和发展动态,拓宽自己的知识视野。
通过软件工程技术课程的学习,学生将能够掌握软件工程开发和管理的基本理论和方法,具备分析和解决软件工程问题的能力,同时还能够适应不断发展变化的软件行业需求。
软件设计体系结构课程设计一、课程目标知识目标:1. 理解软件设计体系结构的基本概念,掌握常见的设计模式及其应用场景;2. 掌握软件体系结构的分类,了解每种体系结构的特点和优缺点;3. 学习软件设计原则,如模块化、组件化、分层等,并能运用到实际项目中。
技能目标:1. 能够运用设计模式解决实际软件开发中的问题,提高代码的可维护性和可扩展性;2. 能够根据项目需求选择合适的软件体系结构,并进行合理的模块划分和组件设计;3. 能够使用相关工具和技术进行软件体系结构的建模和文档编写。
情感态度价值观目标:1. 培养学生主动探究、合作学习的精神,提高解决复杂问题的能力;2. 增强学生的团队协作意识,培养良好的沟通能力和合作精神;3. 使学生认识到软件设计体系结构在软件开发中的重要性,提高对软件工程规范的认识和遵循度。
课程性质:本课程为软件工程专业核心课程,旨在培养学生软件设计体系结构方面的理论知识和实际应用能力。
学生特点:学生已具备一定的编程基础和软件工程知识,具有一定的分析问题和解决问题的能力。
教学要求:结合课程性质和学生特点,采用理论教学与实践教学相结合的方式,注重培养学生的实际操作能力和创新意识。
通过课程学习,使学生能够将所学知识应用于实际项目中,提高软件开发的整体水平。
二、教学内容1. 软件体系结构基本概念:包括软件体系结构的定义、作用、分类及其发展趋势;- 教材章节:第1章 软件体系结构概述- 内容列举:软件体系结构的定义、分类、发展历程、研究现状。
2. 常见软件体系结构风格:介绍客户端-服务器、浏览器-服务器、分层、组件化等体系结构风格;- 教材章节:第2章 软件体系结构风格- 内容列举:C/S、B/S、分层、组件化、微服务、事件驱动等体系结构风格及其应用场景。
3. 设计模式:讲解创建型、结构型、行为型设计模式及其应用;- 教材章节:第3章 设计模式- 内容列举:单例、工厂、抽象工厂、建造者、原型等创建型设计模式;适配器、桥接、组合、装饰等结构型设计模式;观察者、策略、状态、命令等行为型设计模式。
软件工程课程表软件工程是信息技术领域中的一门关键学科,它致力于开发和维护高质量的软件系统。
在软件工程课程中,学生将学习各种关于软件开发过程、工具和方法的知识。
本文将为您呈现一份典型的软件工程课程表,以帮助您更好地了解该学科的学习内容。
第一学期1. 计算机科学导论这门课程是软件工程专业的入门课程,旨在介绍计算机科学的基本概念和原理。
学生将学习计算机系统的组成、计算机编程的基础知识以及解决实际问题的方法和技术。
2. 面向对象程序设计这门课程将引导学生掌握面向对象编程的基本概念和技术。
学生将学习使用Java等面向对象编程语言进行程序设计,了解类、对象、继承、多态等基本概念,并能够运用这些知识解决实际问题。
3. 数据结构与算法数据结构与算法是软件工程中极为重要的一门课程。
学生将学习各种数据结构(如数组、链表、栈、队列、树和图)以及相关的基本算法(如排序、查找、图遍历等),并通过编程实践来提高问题解决能力。
4. 软件工程导论软件工程导论课程将介绍软件工程的基本原理和概念。
学生将了解软件工程的发展历程、软件开发生命周期、软件需求分析和项目管理等重要内容。
此课程将为学生今后的学习和实践奠定基础。
第二学期1. 软件需求工程软件需求工程是软件工程中的一门关键课程。
学生将学习如何正确地收集、分析和规划软件需求,以确保软件系统能够满足用户的期望。
此外,学生还将学习编写软件需求规格说明书等相关文档。
2. 软件设计与架构软件设计与架构课程将教授学生如何进行软件系统的设计和架构。
学生将学习使用UML(统一建模语言)进行建模,探讨软件设计原则和设计模式,并实践使用设计工具和模型。
3. 软件测试与质量保证软件测试与质量保证是保证软件开发质量的关键环节。
学生将了解软件测试的基本原理和方法,学习如何编写测试计划、设计测试用例,并利用自动化测试工具进行测试。
此外,还将学习质量保证的相关理论和实践。
4. 软件项目管理软件项目管理课程将介绍软件项目管理的基本原则、技术和工具。
软件工程专业学什么_有哪些专业课程软件工程专业作为信息技术领域中的重要学科,与现代社会的快速发展息息相关。
本文将重点讨论软件工程专业学什么以及有哪些相关的专业课程。
一、软件工程专业的学科内容软件工程专业是培养高素质软件工程师的学科,旨在教授学生计算机科学、软件开发、项目管理等一系列技术和方法。
学生将掌握软件需求分析、设计、开发、测试、部署和维护等全生命周期的技能。
具体来说,软件工程专业的学科内容包括以下几个方面。
1. 计算机基础知识:学生将学习计算机体系结构、操作系统、数据结构与算法、编程语言等基本知识。
2. 软件工程方法和技术:学生将掌握软件开发的整体流程、软件需求分析和规格说明、软件设计和架构、软件测试和质量保证等方面的知识和技能。
3. 软件项目管理:学生将学习软件项目计划、项目组织与管理、软件配置管理、软件工程经济学等项目管理的相关知识。
4. 软件工程实践:学生将进行软件开发实践,参与软件项目的设计、开发、测试和部署过程,锻炼实际操作能力。
5. 软件质量保障:学生将学习软件质量标准、软件测试技术、软件性能优化等知识,以确保软件产品的质量。
二、软件工程专业的专业课程软件工程专业的专业课程涵盖了上述学科内容,以帮助学生全面掌握软件工程领域的知识和技能。
以下是软件工程专业的几门常见的专业课程。
1. 面向对象程序设计:这门课程旨在教授学生面向对象的编程思想和方法,培养学生良好的编程习惯和设计能力。
2. 软件工程导论:该课程介绍软件工程的基本概念、原则和方法,以及软件开发过程的基本原则和实践。
3. 软件需求工程:学生将学习软件需求的收集、分析和规格说明等技术,以确保软件开发的目标和需求的一致性。
4. 软件设计与体系结构:该课程将教授学生软件设计的基本原则和方法,以及软件系统的整体架构设计。
5. 软件测试与质量保证:学生将学习软件测试的各个阶段和方法,以及质量保证的相关技术和策略。
6. 软件项目管理:该课程将介绍软件项目的组织与管理原则、项目计划和控制技术,以及团队协作和沟通的重要性。
面向工程教育认证的软件工程专业课程体系构建1.核心课程软件工程专业的核心课程包括软件开发原理、软件测试和软件项目管理等。
其中,软件开发原理是培养学生设计和编写高质量软件的必要基础,软件测试是保证软件质量的关键环节,而软件项目管理涉及到如何在时间和资源约束下实现软件开发项目。
这三门课程都是软件工程专业的基础和核心,是学生完成更高级别的课程和项目的基石。
2.实践课程软件工程专业的实践课程对学生来说是相当重要的,其目的是让学生能够将在理论课程中所学到的知识应用到实践当中。
在实践课程中,学生可以参与到真实的软件项目开发中,从中学习解决问题的技能和快速适应新环境的能力。
软件工程师需要具备实际项目经验,掌握现代软件开发工具和技术,通过实践课程,使学生具备走出校门后立即投入工作的实战能力。
3.团队合作在现代软件开发中,团队协作已经成为了一个关键环节。
软件开发需要有多个领域的专家来合作完成,包括需求分析、架构设计、编程、测试等多个阶段。
因此,为学生提供团队合作的机会是必须的。
在课程体系中,应该融入一些团队合作的内容,例如项目管理、沟通技巧、团队协作等,以培养学生的团队合作能力。
4.面向行业软件工程专业课程体系的最终目的是让学生符合业界的实际需求,能够快速适应工作环境。
因此,需要将课程内容和行业同步,关注最新的软件工程技术和趋势。
可以邀请业界专家和实践者参与到课程设计和教学中,让学生更加了解业界的需求和挑战。
总之,面向工程教育认证的软件工程专业课程体系的建立需要关注核心课程的设计、实践课程的设置、团队合作的培养以及与业界同步。
通过这些措施,可以让软件工程专业的学生能够掌握关键技能和知识,具备实践经验和团队能力,满足工业界需求,从而实现课程的认证和学生的价值提升。
中国大学教学2005年第1期
32
软件工程专业的课程体系设计
●南京大学骆斌张大良邵栋
件工程是指开发、操作和维护软件系统的系统、规
范、可度量的方法。
从历史上看,软件工程学科曾
是计算机科学的一个分支,但随着软件产业不断发展的需求,传统的计算机学科逐步上升到计算学科,2001年IEEE 发布的计算学科教学规划把计算学科划分为计算机科学、计算机工程、软件工程、信息系统、信息技术和其他有待发展的学科等子学科,标志了软件工程这个名词作为与计算机理论相对应的各种软件实践技术的总称已经得到世界范围的公认。
我国在2001年底推出了示范性软件学院计划,把我国软件工程专业定位在面向软件产业培养高素质的工程型软件实用人才。
围绕这一定位,软件工程教育应该围绕大型软件开发过程中的工程方法、关键技术和相关工具展开,在专业教学过程力图使得学生具备科学世界观,掌握科学方法,具有扎实的软件基础,受到良好的软件工程训练,熟悉软件应用和工具,参与实际项目,拥有较好的职业素质。
本文研究软件工程专业的课程体系设计,在研究过程中引入了科学的方法,参照IEEE CC2001的成熟做法,首先明确专业的学科定位和人才培养定位,然后建立相关的知识体系,确定课程体系,最后确定课程设置和教学计划。
1. 软件工程专业的相关知识领域简介
课程体系必须建立在对本专业知识体系的全面研究之上。
作为软件工程专业人才培养的基本依据,我校编写的《复合型软件实用人才的知识体系》定义了基本素质BAS,计算机软件基础CSE,软件工程与软件管理SEM,数学、工程和职业基础MEP,软件系统与应用SSA,软件工具与产品STP6个知识体系子类,并在各子类之下细分为知识领域、知识单元和知识点三级。
为方便讨论课程体系设计,现将与专业相关的5个子类的知识领域简单列举如下:
(1)CSE定义了从事软件工作所应具备的软件专业基础知识,包括离散数学基础CSE.DS,程序设计与算法基础CSE.PF,计算机硬件基础CSE.CH,系统软件基础CSE.SS,数据库应用基础CSE.DB,网络通信基础CSE.NC 和软件构造技术CSE.CT等知识领域。
(2)SEM定义了软件工程与软件管理知识,包括软件模型与分析SEM.MA,软件设计SEM.DE,软件检验和有效性验证SEM.VV,软件演化SEM.EV,软件过程SEM.PR,软件质量SEM.QA和软件管理SEM.MG等知识领域。
(3)MEP定义了从事软件工作所应具备的数学、工程和职业知识,包括软件的数学基础MEP.MF,软件的工程基础MEP.EF,软件行业的职业素质MEP.PP,软件业的外国语能力MEP.FL等知识领域。
(4)SSA定义了从事某一方面软件工作应具备的专业或领域应用知识,包括网络工程与网络应用(计算机网络进阶AN,分布式计算DC,多媒体技术MM),嵌入式与实时系统SSA.EM,图形软件系统SSA.GH,信息系统SSA.IS(组织和管理GM,系统开发理论SD,智能信息处理IP,ERP系统EP,电子商务系统EC)等领域。
毕业生应该深入理解其中至少一个软件应用领域。
(5)STP定义了从事软件工作所应掌握的当前主流软件工具与软件产品,包括硬件,网络设备,PL,OS,DBMS,CASE工具等。
2.软件工程专业的课程体系设计策略
在确定软件工程专业的知识体系之后,紧接着应研究课程体系的设计策略。
课程体系设计策略包括课程启动策略、课程组织策略和特色课程设置策略。
课程启动策略主要有:(1)围绕算法设计展开的算法优先策略。
(2)自底向上展开的硬件优先策略。
(3)从计算机导论展开的广度优先策略。
(4)强调编程能力的程序设计优先策略。
(5)强调系统使用的命令优先策略。
(6)从面向对象展开的对象优先策略。
课程组织策略包括:(1)基于主题的组织模式,把知识体系中的每个知识领域组织成一门或几门课程。
(2)基于系统的组织模式,把每类计算机软硬件系统设置一门或几门课程。
(3)混合模式,在课程设计时不区分前两种方法。
特色课程设置策略依据本校的办学特色和研究专长确定。
软件工程专业的课程规划一方面应强调工程性、技术性、实用性、系统性、综合性和复合型,另一方面也要充分认识到强化基础在更快、更好、更有效地解决复杂软件的构造和应用方面起到的关键性作用。
因此,对于课程启动策略,传统计算机科学专业的课程启动方式并不适合于本专业,但工程优先策略也不适合于那些没有任何计算机基础的本科生;对于课程组织策略,基于主题的组织模式更多地具有科学研究属性,而基于系统的组织模式又不利于强化基础知识;对于特色课程设置策略,也应避免缺乏全面综合考虑,因人设课,从而造成特色课程系统性差,教学内容重复和遗漏并存。
我院在课程体系设计时认真考虑了上述因素,采用了
软
分阶段互动式的课程设置方法。
如下图所示,把课程体系设计分解为三个阶段,即基础知识教学阶段,专业技能教学阶段,工程实习教学阶段。
基础知识教学阶段共两学年,设计思路是达到强化学生基础知识的目的,实现“基础扎实、系统级认知和编程能力强”三个目标。
课程启动策略采取系统级认识和编程能力双优先的策略,设置《计算基础》课程,内容贯穿从芯片、汇编语言、系统调用到C语言,以程序设计为主线并引导学生的系统级认识能力;随后数学基础课程系列,硬件与系统软件课程系列,程序设计/数据结构/软件构造课程系列三路并行,力图达到“基础、系统和编程”三位一体的教学目标。
课程组织策略采取基于主题的组织模式,有利于学生掌握基础理论知识。
另外,专业教学阶段的某些基础课程也在此阶段进行,此类课程的设置综合考虑专业阶段和基础阶段的特点,以便较好地实现两个阶段的衔接,如《数据库技术》要考虑与软件基础和信息系统两个课程模块的衔接。
专业技能教学阶段共设48周,设计思路是强调学生工程性、技术性、实用性、系统性、综合性和复合型能力的培养,实现“熟悉软件工程技能、更完整的系统级认识和掌握某一方向的软件设计开发技术”三个目标。
在这一阶段中,综合考虑主干专业课程和特色课程的设置,基于办学特色设置若干动态可扩充的课程模块,全面考虑课程之间的关联,强调统一设计、统一规划。
学生在这一阶段必须选修一定数量的软件工程方向专业课和一个专业课程模块,达到“工程、系统和专业方向”三位一体的教学目标。
现阶段设置软件分析与设计、软件过程与管理、软件开发、嵌入式系统与应用、网络系统与应用、信息系统与应用、图形与图像处理等7个选修课程模块。
课程启动策略采取基础课优先方式,与软件基础模块共同确定一门衔接较好的基础课作为专业方向课程的启动。
课程组织策略采取系统的组织模式,有利于提高学生的软件系统开发应用能力。
工程实习教学阶段共设24周,设计思路是通过具体项目工作参与实际项目训练,通过毕业设计与论文培养总结概括能力,实现理论与实际结合、技能与职业素质结合的目标。
上述三个教学阶段是彼此联系和互动发展的,在课程体系设计中应充分考虑衔接性、系统性和创新性。
另外,软件产品和工具的知识体系仅设置少量课程,大都融合在具体课程之中;交流、沟通、讲演、写作和团队能力的培养也是这样。
我院还参照某些工程学科,独立设置课程设计类学分课程,如程序设计课程设计、软件工程课程设计以及与具体专业方向课程模块结合的课程设计。
常设性的学生软件设计比赛也被引入教学过程中。
3.软件工程专业的核心课程和主干课程设置
我校软件工程专业主要课程设置如下:(1)计算基础、面向对象程序设计、数据结构与算法、操作系统、计算机网络、数据库技术等软件基础课,离散数学、概率统计等数学课,软件工程、软件设计、人机交互、软件过程与管理、软件测试与可靠性等软件工程课为核心课。
(2)程序设计课程设计、软件工程课程设计、某一课程模块的课程设计、工程实习与毕业设计为必修环节。
(3)要求学生自选一个专业课程模块和3门以上综合素质课程,必须选修两门全英文教学的课程。
为促进教学效果,专业课全部采用双语教学,并要求实验成绩占总成绩的30%~60%。
学院还在四年级设置学生综合能力测试,对学生的动手能力、自主学习能力和职业能力进行考核,作为学生进入第三阶段教学的门槛。
□
33。