软件工程是运用工程的思想、原理、理论、方法、技术、管理和工具,研究开发较大规模软件系统的学科,在计算机软件领域中占有中心地位。无论是以培养学科型人才为主的高校、还是以培养应用型人才为主的高校;无论是计算机类本科生还是硕士生,都开设有“软件工程”课程。近年来,软件工程学科发生了巨大变化,从传统的结构化技术占主导地位,发展到面向对象技术占主导地位,继而发展到基于构件的技术成为开发技术主流。Internet的普遍运用,出现了平台网络化、方法对象化、系统构件化、产品家族化、开发工程化、过程规范化、生产规模化、竞争国际化的态势,导致了软件在反映对象、提交形式、关注内容和运行方式等方面产生了重要发展。
本课程主要介绍软件工程的概念、技术和方法,包括软件的开发模型、软件项目管理、软件质量度量、可行性分析、需求分析、软件设计、编码、测试、维护;面向数据流的分析与设计方法、面向数据结构的分析与设计方法、面向对象的分析与设计方法;并对软件重用、快速原型技术作简要的介绍。旨在培养学生分析与设计实际软件系统的能力及具有熟练使用各类流行软件技术解决实际问题的能力和控制软件质量的能力。
离散数学是现代数学的重要分支,是计算机科学与技术及相关专业的核心、骨干课程。离散数学于1977年被IEEE确定为计算机专业核心主干课程,2001年又被IEEE和ACM确定为计算机专业第一核心主干课程。离散数学以离散量作为研究对象,涉及的内容较广,充分描述了计算机科学离散性的特点。它既可为后续课,如数据结构、编译原理、操作系统、数据库原理和人工智能等提供必要的数学基础;也可以使学生通过学习离散数学,掌握离散量的结构及其相互间的关系,同时培养和提高他们的抽象思维与严格的逻辑推理能力,为学生今后继续学习和科研工作打下必备的坚实的数学基础。