545
软件工程专业 专业主干课程和主要专业课程 教学大纲 大连理工大学软件学院 2019

软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

软件工程专业

专业主干课程和主要专业课程

教学大纲

大连理工大学软件学院

2019

Page 2: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《操作系统》 ........................................................................................................................... 4

2017 年教学大纲 ...................................................................................................................... 4

2016 年教学大纲 .................................................................................................................... 18

2015 年教学大纲 .................................................................................................................... 32

《编译技术》 ......................................................................................................................... 46

2017 年教学大纲 .................................................................................................................... 46

2016 年教学大纲 .................................................................................................................... 59

2015 年教学大纲 .................................................................................................................... 72

《程序设计基础与 C程序设计》 ......................................................................................... 85

2017 年教学大纲 .................................................................................................................... 85

2016 年教学大纲 .................................................................................................................... 98

2015 年教学大纲 .................................................................................................................. 111

《面向对象方法与 C++程序设计》 .................................................................................... 124

2017 年教学大纲 .................................................................................................................. 124

2016 年教学大纲 .................................................................................................................. 135

2015 年教学大纲 .................................................................................................................. 146

《软件工程》 ....................................................................................................................... 157

2017 年教学大纲 .................................................................................................................. 157

2016 年教学大纲 .................................................................................................................. 171

2015 年教学大纲 .................................................................................................................. 185

《离散数学》 ....................................................................................................................... 198

2017 年教学大纲 .................................................................................................................. 198

2016 年教学大纲 .................................................................................................................. 210

2015 年教学大纲 .................................................................................................................. 222

《软件测试与质量保证》 ................................................................................................... 233

2017 年教学大纲 .................................................................................................................. 233

2016 年教学大纲 .................................................................................................................. 248

2015 年教学大纲 .................................................................................................................. 263

《数据结构与算法》 ........................................................................................................... 276

2017 年教学大纲 .................................................................................................................. 276

2016 年教学大纲 .................................................................................................................. 292

2015 年教学大纲 .................................................................................................................. 308

《J2EE高级编程》 .............................................................................................................. 324

2017 年教学大纲 .................................................................................................................. 324

2016 年教学大纲 .................................................................................................................. 334

2015 年教学大纲 .................................................................................................................. 345

《计算机网络》 ................................................................................................................... 355

2017 年教学大纲 .................................................................................................................. 355

2016 年教学大纲 .................................................................................................................. 368

2015 年教学大纲 .................................................................................................................. 382

《计算机组织与结构》 ....................................................................................................... 396

2017 年教学大纲 .................................................................................................................. 396

2016 年教学大纲 .................................................................................................................. 411

2015 年教学大纲 .................................................................................................................. 427

Page 3: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《软件项目管理》 ............................................................................................................... 443

2017 年教学大纲 .................................................................................................................. 443

2016 年教学大纲 .................................................................................................................. 450

2015 年教学大纲 .................................................................................................................. 457

《数据库系统》 ................................................................................................................... 468

2017 年教学大纲 .................................................................................................................. 468

2016 年教学大纲 .................................................................................................................. 480

2015 年教学大纲 .................................................................................................................. 493

《系统分析与设计》 ........................................................................................................... 506

2017 年教学大纲 .................................................................................................................. 506

2016 年教学大纲 .................................................................................................................. 518

2015 年教学大纲 .................................................................................................................. 531

Page 4: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《操作系统》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090440030

2. 课程中文名称: 操作系统

3. 课程英文名称: Operating System

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 2学期

8. 先修课程: 《计算机组成》、《数据结构》、《C语言》

9. 后继课程: 《嵌入式操作系统》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 4 4 0

二、任课教师

吴国伟(教授)、孔维强(教授)、韩鑫(教授)、覃振权(副教授)、胡燕(讲师)

三、教材及主要参考资料

教 材: 《Operating System Concepts》 第七版. Wiley Press,高等教育

出版社出版

参考资料: 现代操作系统 陈向群等译 机械工业出版社,2010

计算机操作系统教程 张尧学 史美林 清华大学出版社,2011

四、课程简介

《操作系统》是软件工程专业基础大类必修课程之一。通过该课程的学习,要求学

生掌握操作系统的基本结构、工作原理和实现方法,掌握操作系统对各种资源的管理方

法和操作系统各部分之间的联系;了解它与硬件和其它软件的联系,学习当代操作系统

的本质和特点,培养学生具有利用操作系统提供的服务进行高级应用开发的能力。

Page 5: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂软件工

程。

②掌握软件工程基础及专

业知识。

③掌握计算机系统及网络

系统构成,并能够综合运用

上述专业知识解决软件工

程及应用领域的复杂工程

问题。

利用操作系统的基本原理

设计和实现高水平应用,如

多线程、进程间协作、死锁

处理、设备驱动等。

3.设计/开发解决方案:能

够设计针对复杂软件工程

问题的解决方案,设计满足

软件工程及应用领域的特

定需求的系统、组件或模

型;并能够在系统设计与开

发过程中体现创新意识,考

虑社会、健康、安全、法律、

文化以及环境等因素。

①构建符合规定及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

了解操作系统内部的基本

机制和原理、熟练操作系统

的命令管理。

(二)教学目标

目标内容 具体目标

专业知识 掌握操作系统的基本组成

掌握操作系统的调度机制

掌握操作系统的进程、线程机制

掌握操作系统进程协作(同步、互斥、通信)机制

掌握操作系统内存管理机制

掌握操作系统文件系统管理机制

掌握操作系统 IO设备管理机制

专业技能 掌握基本的操作系统管理命令、操作系统的裁减定制方法

掌握进程同步互斥通信使用方法

掌握多线程编程方法

掌握内存分配释放使用方法

掌握设备驱动开发方法

Page 6: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解和掌

握操作系统的基本机制和原理,具体说以下四方面:

(1)学习操作系统基础知识和基本理论知识,掌握操作系统提供的基本服务、机制

了解操作系统各个组成部分的工作原理,具有分析、运用用和设计操作系统中关键组成

部分的能力;

(2)通用操作系统设计原理、方法,具有操作系统编译、改造和基于操作系统设计

多进程多线程程序能力;

(3)掌握基本的操作系统设计创新方法,培养学生追求创新的态度和意识;

(4)了解操作系统的前沿和新发展动向。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 13章内容,具体如下

1、操作系统概述(2)

(1)掌握操作系统的目标和功能

1.1 用户角度

1.2 系统角度

1.3 操作系统定义

(2)掌握操作系统结构和操作

2.1 单道处理

2.2 多道程序

2.3 操作系统操作(用户模式,内核模式)

(3)掌握现代操作系统的特征

3.1 进程管理

3.2 内存管理

3.3 存储管理(文件系统管理、大容量存储器管理、高速缓存)

3.4 I/O 系统

3.5 保护和安全

(4)了解操作系统的分类(通用操作系统、专用系统等)

(5)了解计算环境(传统计算、客户机-服务器模式、对等计算、基于 Web 计算)

2、操作系统结构(2)

(1)了解操作系统的提供的服务

包括用户界面、程序执行、I/O 操作、文件系统操作、通信、错误检测、资源

分配、统计、保护和安全、熟悉命令解释器的工作

(2)掌握操作系统的系统调用机制

掌握系统调用内核模式和用户模式的切换、系统调用三种参数传递的方法,了

解系统调用的类型

(3)掌握操作系统的系统结构(各种结构的优缺点)

3.1 简单结构

3.2 分层结构

Page 7: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

3.3 微内核结构

3.4 模块方法

(4)虚拟机

了解虚拟机的实现和优点

3、 进程(4)

(1)掌握进程概念和进程的描述与控制

包括进程的概念、包含内容、进程的状态及切换、进程控制块内容及作用、

(2)了解进程调度基本内容

包括调度的过程、调度队列、上下文切换

(3)掌握进程操作

以 fork为例,讲清楚进程创建的过程。

(4)掌握进程间通信机制

包括共享内存系统、消息传递系统

(5)掌握客户服务器系统通信

包括 Socket、远程过程调用、远程方法调用

(6)了解 IPC 系统的实例

了解 POSIX 共享内存、MACH、 Windows XP 的提供的支持

4、 线程(4)

(1)掌握线程机制和分类

1.1 线程的优点和动机

1.2 内核线程、用户线程

(2)掌握多线程模型

一对一、多对一、多对多

(3)了解线程库

包括 Pthread\Win32 线程、Java 线程

(4)了解线程中的一些问题

包括信号处理、线程池机制等

(5)了解 Windows 和 linux 操作系统中线程的处理。

5、 CPU调度(4)

(1)掌握 CPU 调度相关基本概念

明确抢占调度、分派程序

(2)掌握调度准则

(3)掌握主要的调度算法

包括先来先服务、最短作业优先、优先级调度、轮转法调度、多级队列调

度、多级队列反馈调度

(4)了解多处理机调度和实时调度

了解多处理器调度处理方法、亲和性、负载均衡等基本知识

(5)了解 Linux和 Windows 操作系统中的调度实例

6、 进程同步(8)

(1)掌握临界区概念

(2)掌握信号量机制

包括信号量定义、用法、信号量使用中出现的问题(死锁和饥饿)

(3)学会使用信号量解决进程间同步与互斥问题

掌握典型问题的信号量解决方法:有限缓冲区问题、读者写者问题、哲学

Page 8: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

家就餐问题

(4)了解 Windows 和 Linux 中的同步机制

7、 死锁(2)

(1)掌握死锁的特点和产生的必要条件

(2)掌握死锁的处理方法:死锁预防、死锁避免和检测恢复

8、 内存管理(4)

(1)掌握内存管理的相关基本概念(逻辑地址、物理地址等)

(2)掌握连续内存分配的方法

明确内存映射和保护、内存分配、碎片

(3)掌握分页的基本方法

(4)掌握页表结构

包括层次页表、哈希页表、反向页表

(5)掌握分段的基本方法

(6)了解 Intel Pentium 上内存管理的方法

9、 虚拟内存管理(4)

(1)了解虚拟内存产生的背景

(2)掌握请求式分页管理的方法

(3)掌握内存映射文件机制

(4)掌握页面置换算法

(5)掌握系统颠簸原因和处理方法

(6)了解虚拟内存管理的其他考虑因素

包括预调页、页大小、TLB 范围、反向页表、程序结构、I/O 互锁等

(7)了解 Windows 和 Linux 的虚拟内存管理方法。

10、 文件系统接口(4)

(1)掌握文件的概念类型和结构

(2)掌握文件的访问方法

包括顺序访问、直接方法、其他方式

(3)掌握目录的结构形式

包括单层结构、双层、树状结构、无环图、通用目录

(4)掌握文件的共享机制

(5)掌握文件保护方式

11、 文件系统实现(4)

(1)掌握文件系统结构

(2)掌握文件系统的实现

(3)掌握目录的实现方法(线性列表、哈希表)

(4)掌握文件分配方法(连续分配、连接分配、索引分配)

(5)掌握空闲空间管理方法(位向量、链表、组、计数)

(6)了解效率、性能和恢复的问题

(7)了解 NFS 文件系统

12、 大容量存储器结构(3)

(1)掌握磁盘结构

(2)掌握磁盘调度方法

包括 FCFS、SSTF、SCAN、C-SCAN、LOOK调度

Page 9: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(3)掌握磁盘管理机制

格式化、引导块、坏块处理等

(4)了解交换空间管理机制和 RAID 结构

(5)了解其他存储方式

13、 I/O系统(3)

(1)了解 I/O 软件组成及硬件特点

(2)掌握 I/O 传输方式

(3)掌握 I/O 应用接口

(4)掌握 I/O 内核子系统

包括 I/O调度、缓冲、高速缓存、假脱机与设备预留、错误处理、I/O 保护、

内核数据结构

(5)了解流操作

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 Linux内核组成及

裁减定制

明确 linux 组成,实

践操作系统裁减定

制,同时考虑社会、

环境等因素

3 2 课后作业

2 运用信号量机制协

调理发师问题众多

进程间同步、互斥

掌握信号量机制,并

根据场景要求设计

解决方案及 C语言

或 Java实现。

8 8 课后作业

3 运用死锁预防机制

设计哲学家信号量

同步互斥中死锁解

决方法

设计并实现哲学家

就餐问题的死锁预

防解决方案、设计具

有创新、考虑社会、

环境等因素

Page 10: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 Linux基本

操作命令 单元项目 2

Linux 操作系统的

基本命令熟悉

基本命令

实验报告 实践教学 4 课程作业

课堂、

课下

验证型实

2 多进程创建

撤销方法 单元项目 4

运用开发工具和操

作系统管理多线程

方法,进行多线程

设计

完成多线

程设计报

实践教学 4 课程作业 课堂、

课下

验证型加

综合型实

3 进程间通信

机制 单元项目 6

运用开发工具和操

作系统提供的通信

机制,包括管道、

共享内存等方法、

进行多进程间通信

设计

完成多进

程通信的

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型实

4 信号量同步

互斥机制 单元项目 8

运用开发工具和操

作系统提供的同步

互斥信号量方法、

进行多进程间同步

完成进程

间信号量

同步互斥

解决方案

设计及实

实践教学 4 课程作业 课堂、

课下

综合型实

Page 11: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

互斥协作设计 验报告

5 内存管理实

验 单元项目 10

运用开发工具和操

作系统提供的内存

管理方法、进行内

存管理应用设计

完成内存

管理应用

设计及实

验报告

实践教学 4 课程作业 课堂、

课下

验证型、

综合型实

6 文件系统管

理实验 单元项目 11

运用开发工具和操

作系统提供文件系

统方法、设计简单

的文件系统管理机

完成文件

系统管理

设计方案

及实验报

实践教学 4 课程作业 课堂、

课下

综合型实

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

Page 12: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

1

1.1 了解操作

系统的目标和

功能;

掌握操作系统的目标、功能和基本

组成 3-③ 了解

讲授、

讨论 2 2

1.2 了解现代

操作系统的特

重点掌握操作系统的内核模式用户

模式 3-③ 了解

讲授、

讨论 2 2

1.3 掌握操作

系统的系统结

了解操作系统的提供的服务;掌握

操作系统的系统调用机制;掌握操

作系统的系统结构。

3-③ 了解 讲授、

讨论 2 2

2

2.1 进程和线

掌握进程概念和进程的描述与控

制;掌握进程间通信机制;掌握进

程操作;掌握线程机制和分类;掌

握多线程模型;了解线程库;了解

线程中的一些问题

1-②

1-③ 掌握

讲授、

讨论 6 4 10

2.2 CPU调度

掌握 CPU 调度相关基本概念;掌握

调度准则和调度算法;了解多处理

机调度和实时调度

1-②

1-③ 掌握

讲授、

讨论 3 3

2.3 进程同步 掌握临界区概念;掌握信号量机制; 1-② 掌握 讲授、 8 4 12

Page 13: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

学会使用信号量解决进程间同步与

互斥问题;了解 Windows 和 Linux

中的同步机制

1-③ 讨论

2.4 死锁处理

掌握死锁的特点和产生的必要条

件;掌握死锁的处理方法:死锁预

防、死锁避免和检测恢复

1-②

1-③

3-③

掌握/

运用/

分析

讲授、

讨论 3 4 7

3

内存

管理

3.1 内存管理

掌握内存管理的相关基本概念;了

解连续内存分配的方法;掌握分页

的基本方法;掌握页表结构和分段

方法

1-②

1-③

掌握/

运用/

分析

讲授、

讨论 4 4

3.2 虚拟内存

管理

掌握请求式分页管理的方法;掌握

页面置换算法;掌握系统颠簸原因

和处理方法

1-②

1-③

掌握/

运用/

分析

讲授、

讨论 4 4 8

4

文件

管理

4.1 文件系统

接口

1. 掌握文件的概念类型和结构

2. 掌握文件的访问方法

3. 掌握目录的结构形式

4. 掌握文件的共享机制和保护方式

1-②

1-③

3-③

掌握 讲授、

讨论 4 4

4.2 文件系统

实现

1. 掌握文件系统结构和实现

2. 掌握空闲空间管理和文件分配

1-②

1-③ 掌握

讲授、

讨论 4 4 8

Page 14: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

方法

4.3 大容量存

储设备

1. 掌握磁盘结构和磁盘调度方法

2. 了解 RAID 和其他存储方式。

1-②

1-③

3-③

掌握/

运用/

分析

讲授、

讨论 2 2

5

设备

管理

5. IO子系统

掌握 I/O 子系统组成和实现方式

2. 掌握进 I/O 内核子系统组成

1-②

1-③ 掌握

讲授、

讨论 4 4 8

合计 48 24 72

Page 15: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过操作系统的基础知识讲解、

原理分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手

段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

实验 A 基本命令实验 第 3 周 5%

实验 B 多线程创建与撤销 第 5 周 15%

实验 C 进程间通信 第 7 周 5%

实验 D 信号量进程间同步互斥 第 9 周 5%

实验 E 内存管理 第 11 周 5%

实验 F 文件系统管理 第 13 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

Page 16: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

考核项目 重点考核知识点、技能点 备注

实验 A+平时 3-③ 占总成绩 5%

实验 B 3-③ 占总成绩 5%

实验 C 3-③, 1-② 占总成绩 5%

实验 D 3-③,1-② 占总成绩 5%

实验 E 1-②、1-③、3-③ 占总成绩 5%

实验 F 1-②、1-③、3-③ 占总成绩 5%

期末考试 1-②、1-③、3-③ 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20分

问答题:

5个、20分

应用题:

4个、60分

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

Page 17: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:吴国伟

审核人签字:吴国伟

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 4月

Page 18: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090440030

2. 课程中文名称: 操作系统

3. 课程英文名称: Operating System

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 2学期

8. 先修课程: 《计算机组成》、《数据结构》、《C语言》

9. 后继课程: 《嵌入式操作系统》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 4 4 0

二、任课教师

吴国伟(教授)、孔维强(教授)、韩鑫(副教授)、覃振权(副教授)、胡燕(讲师)

三、教材及主要参考资料

教 材: 《Operating System Concepts》 第七版. Wiley Press,高等教育

出版社出版

参考资料: 现代操作系统 陈向群等译 机械工业出版社,2010

计算机操作系统教程 张尧学 史美林 清华大学出版社,2011

四、课程简介

《操作系统》是软件工程专业基础大类必修课程之一。通过该课程的学习,要求学

生掌握操作系统的基本结构、工作原理和实现方法,掌握操作系统对各种资源的管理方

法和操作系统各部分之间的联系;了解它与硬件和其它软件的联系,学习当代操作系统

的本质和特点,培养学生具有利用操作系统提供的服务进行高级应用开发的能力。

五、课程目标

Page 19: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

② 具备设计符合需求、具

有创新性的解决方案的能

力,同时考虑考虑社会、健

康、安全、法律、文化以及

环境等因素

(中级能力)利用操作系统

的基本原理设计和实现高

水平应用,如多线程、进程

间协作、死锁处理、设备驱

动等

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并能在多学科环境中

应用。

①掌握技术管理、人员管

理、工程管理的原理

(初级能力)了解操作系统

内部的基本机制和原理、熟

练操作系统的命令管理

(二)教学目标

目标内容 具体目标

专业知识 掌握操作系统的基本组成

掌握操作系统的调度机制

掌握操作系统的进程、线程机制

掌握操作系统进程协作(同步、互斥、通信)机制

掌握操作系统内存管理机制

掌握操作系统文件系统管理机制

掌握操作系统 IO设备管理机制

专业技能 掌握基本的操作系统管理命令、操作系统的裁减定制方法

掌握进程同步互斥通信使用方法

掌握多线程编程方法

掌握内存分配释放使用方法

掌握设备驱动开发方法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解和掌

握操作系统的基本机制和原理,具体说以下四方面:

(1)学习操作系统基础知识和基本理论知识,掌握操作系统提供的基本服务、机制

了解操作系统各个组成部分的工作原理,具有分析、运用用和设计操作系统中关键组成

部分的能力;

Page 20: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(2)通用操作系统设计原理、方法,具有操作系统编译、改造和基于操作系统设计

多进程多线程程序能力;

(3)掌握基本的操作系统设计创新方法,培养学生追求创新的态度和意识;

(4)了解操作系统的前沿和新发展动向。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 13章内容,具体如下

1、操作系统概述(2)

(1)掌握操作系统的目标和功能

1.1 用户角度

1.2 系统角度

1.3 操作系统定义

(2)掌握操作系统结构和操作

2.1 单道处理

2.2 多道程序

2.3 操作系统操作(用户模式,内核模式)

(3)掌握现代操作系统的特征

3.1 进程管理

3.2 内存管理

3.3 存储管理(文件系统管理、大容量存储器管理、高速缓存)

3.4 I/O 系统

3.5 保护和安全

(4)了解操作系统的分类(通用操作系统、专用系统等)

(5)了解计算环境(传统计算、客户机-服务器模式、对等计算、基于 Web 计算)

2、操作系统结构(2)

(1)了解操作系统的提供的服务

包括用户界面、程序执行、I/O 操作、文件系统操作、通信、错误检测、资源

分配、统计、保护和安全、熟悉命令解释器的工作

(2)掌握操作系统的系统调用机制

掌握系统调用内核模式和用户模式的切换、系统调用三种参数传递的方法,了

解系统调用的类型

(3)掌握操作系统的系统结构(各种结构的优缺点)

3.1 简单结构

3.2 分层结构

3.3 微内核结构

3.4 模块方法

(4)虚拟机

了解虚拟机的实现和优点

3、 进程(4)

(1)掌握进程概念和进程的描述与控制

包括进程的概念、包含内容、进程的状态及切换、进程控制块内容及作用、

Page 21: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(2)了解进程调度基本内容

包括调度的过程、调度队列、上下文切换

(3)掌握进程操作

以 fork为例,讲清楚进程创建的过程。

(4)掌握进程间通信机制

包括共享内存系统、消息传递系统

(5)掌握客户服务器系统通信

包括 Socket、远程过程调用、远程方法调用

(6)了解 IPC 系统的实例

了解 POSIX 共享内存、MACH、 Windows XP 的提供的支持

4、 线程(4)

(1)掌握线程机制和分类

1.1 线程的优点和动机

1.2 内核线程、用户线程

(2)掌握多线程模型

一对一、多对一、多对多

(3)了解线程库

包括 Pthread\Win32 线程、Java 线程

(4)了解线程中的一些问题

包括信号处理、线程池机制等

(5)了解 Windows 和 linux 操作系统中线程的处理。

5、 CPU调度(4)

(1)掌握 CPU 调度相关基本概念

明确抢占调度、分派程序

(2)掌握调度准则

(3)掌握主要的调度算法

包括先来先服务、最短作业优先、优先级调度、轮转法调度、多级队列调

度、多级队列反馈调度

(4)了解多处理机调度和实时调度

了解多处理器调度处理方法、亲和性、负载均衡等基本知识

(5)了解 Linux和 Windows 操作系统中的调度实例

6、 进程同步(8)

(1)掌握临界区概念

(2)掌握信号量机制

包括信号量定义、用法、信号量使用中出现的问题(死锁和饥饿)

(3)学会使用信号量解决进程间同步与互斥问题

掌握典型问题的信号量解决方法:有限缓冲区问题、读者写者问题、哲学

家就餐问题

(4)了解 Windows 和 Linux 中的同步机制

7、 死锁(2)

(1)掌握死锁的特点和产生的必要条件

(2)掌握死锁的处理方法:死锁预防、死锁避免和检测恢复

8、 内存管理(4)

Page 22: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(1)掌握内存管理的相关基本概念(逻辑地址、物理地址等)

(2)掌握连续内存分配的方法

明确内存映射和保护、内存分配、碎片

(3)掌握分页的基本方法

(4)掌握页表结构

包括层次页表、哈希页表、反向页表

(5)掌握分段的基本方法

(6)了解 Intel Pentium 上内存管理的方法

9、 虚拟内存管理(4)

(1)了解虚拟内存产生的背景

(2)掌握请求式分页管理的方法

(3)掌握内存映射文件机制

(4)掌握页面置换算法

(5)掌握系统颠簸原因和处理方法

(6)了解虚拟内存管理的其他考虑因素

包括预调页、页大小、TLB 范围、反向页表、程序结构、I/O 互锁等

(7)了解 Windows 和 Linux 的虚拟内存管理方法。

10、 文件系统接口(4)

(1)掌握文件的概念类型和结构

(2)掌握文件的访问方法

包括顺序访问、直接方法、其他方式

(3)掌握目录的结构形式

包括单层结构、双层、树状结构、无环图、通用目录

(4)掌握文件的共享机制

(5)掌握文件保护方式

11、 文件系统实现(4)

(1)掌握文件系统结构

(2)掌握文件系统的实现

(3)掌握目录的实现方法(线性列表、哈希表)

(4)掌握文件分配方法(连续分配、连接分配、索引分配)

(5)掌握空闲空间管理方法(位向量、链表、组、计数)

(6)了解效率、性能和恢复的问题

(7)了解 NFS 文件系统

12、 大容量存储器结构(3)

(1)掌握磁盘结构

(2)掌握磁盘调度方法

包括 FCFS、SSTF、SCAN、C-SCAN、LOOK调度

(3)掌握磁盘管理机制

格式化、引导块、坏块处理等

(4)了解交换空间管理机制和 RAID 结构

(5)了解其他存储方式

13、 I/O系统(3)

(1)了解 I/O 软件组成及硬件特点

(2)掌握 I/O 传输方式

Page 23: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(3)掌握 I/O 应用接口

(4)掌握 I/O 内核子系统

包括 I/O调度、缓冲、高速缓存、假脱机与设备预留、错误处理、I/O 保护、

内核数据结构

(5)了解流操作

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 Linux内核组成及

裁减定制

明确 linux 组成,实

践操作系统裁减定

制,同时考虑社会、

环境等因素

3 2 课后作业

2 运用信号量机制协

调理发师问题众多

进程间同步、互斥

掌握信号量机制,并

根据场景要求设计

解决方案及 C语言

或 Java实现。

8 8 课后作业

3 运用死锁预防机制

设计哲学家信号量

同步互斥中死锁解

决方法

设计并实现哲学家

就餐问题的死锁预

防解决方案、设计具

有创新、考虑社会、

环境等因素

Page 24: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 Linux基本

操作命令 单元项目 2

Linux 操作系统的

基本命令熟悉

基本命令

实验报告 实践教学 4 课程作业

课堂、

课下

验证型实

2 多进程创建

撤销方法 单元项目 4

运用开发工具和操

作系统管理多线程

方法,进行多线程

设计

完成多线

程设计报

实践教学 4 课程作业 课堂、

课下

验证型加

综合型实

3 进程间通信

机制 单元项目 6

运用开发工具和操

作系统提供的通信

机制,包括管道、

共享内存等方法、

进行多进程间通信

设计

完成多进

程通信的

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型实

4 信号量同步

互斥机制 单元项目 8

运用开发工具和操

作系统提供的同步

互斥信号量方法、

进行多进程间同步

完成进程

间信号量

同步互斥

解决方案

实践教学 4 课程作业 课堂、

课下

综合型实

Page 25: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

互斥协作设计 设计及实

验报告

5 内存管理实

验 单元项目 10

运用开发工具和操

作系统提供的内存

管理方法、进行内

存管理应用设计

完成内存

管理应用

设计及实

验报告

实践教学 4 课程作业 课堂、

课下

验证型、

综合型实

6 文件系统管

理实验 单元项目 11

运用开发工具和操

作系统提供文件系

统方法、设计简单

的文件系统管理机

完成文件

系统管理

设计方案

及实验报

实践教学 4 课程作业 课堂、

课下

综合型实

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

Page 26: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

1

1.1 了解操作

系统的目标和

功能;

掌握操作系统的目标、功能和基本

组成 3-②初级 了解

讲授、

讨论 2 2

1.2 了解现代

操作系统的特

重点掌握操作系统的内核模式用户

模式 3-②初级 了解

讲授、

讨论 2 2

1.3 掌握操作

系统的系统结

了解操作系统的提供的服务;掌握

操作系统的系统调用机制;掌握操

作系统的系统结构。

11-①初级 了解 讲授、

讨论 2 2

2

2.1 进程和线

掌握进程概念和进程的描述与控

制;掌握进程间通信机制;掌握进

程操作;掌握线程机制和分类;掌

握多线程模型;了解线程库;了解

线程中的一些问题

3-②中级 掌握 讲授、

讨论 6 1

2.2 CPU调度

掌握 CPU 调度相关基本概念;掌握

调度准则和调度算法;了解多处理

机调度和实时调度

3-②中级 掌握 讲授、

讨论 3 1

2.3 进程同步 掌握临界区概念;掌握信号量机制; 3-②中级 掌握 讲授、 8 2

Page 27: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

学会使用信号量解决进程间同步与

互斥问题;了解 Windows 和 Linux

中的同步机制

讨论

2.4 死锁处理

掌握死锁的特点和产生的必要条

件;掌握死锁的处理方法:死锁预

防、死锁避免和检测恢复

3-②中级

掌握/

运用/

分析

讲授、

讨论 3

3

内存

管理

3.1 内存管理

掌握内存管理的相关基本概念;了

解连续内存分配的方法;掌握分页

的基本方法;掌握页表结构和分段

方法

3-②中级

掌握/

运用/

分析

讲授、

讨论 4 1

3.2 虚拟内存

管理

掌握请求式分页管理的方法;掌握

页面置换算法;掌握系统颠簸原因

和处理方法

3-②中级

掌握/

运用/

分析

讲授、

讨论 4 2

4

文件

管理

4.1 文件系统

接口

1. 掌握文件的概念类型和结构

2. 掌握文件的访问方法

3. 掌握目录的结构形式

4. 掌握文件的共享机制和保护方式

3-②中级 掌握 讲授、

讨论 4 1

4.2 文件系统

实现

1. 掌握文件系统结构和实现

2. 掌握空闲空间管理和文件分配3-②中级 掌握

讲授、

讨论 4 1

Page 28: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

方法

4.3 大容量存

储设备

1. 掌握磁盘结构和磁盘调度方法

2. 了解 RAID 和其他存储方式。

3-②中级

掌握/

运用/

分析

讲授、

讨论 2 2

5

设备

管理

5. IO子系统

掌握 I/O 子系统组成和实现方式

2. 掌握进 I/O 内核子系统组成

3-②中级 掌握 讲授、

讨论 4 2

合计 48 24 10

Page 29: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过操作系统的基础知识讲解、

原理分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手

段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现 日常表现:迟到、早退 日常考核 2.5%

实验 A 基本命令实验 第 3 周 2.5%

实验 B 多线程创建与撤销 第 5 周 15%

实验 C 进程间通信 第 7 周 5%

实验 D 信号量进程间同步互斥 第 9 周 5%

实验 E 内存管理 第 11 周 5%

实验 F 文件系统管理 第 13 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

Page 30: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

考核项目 重点考核知识点、技能点 备注

实验 A+平时 3-②中级能力 占总成绩 5%

实验 B 3-②中级能力 占总成绩 5%

实验 C 3-②中级能力, 11-①初级能力 占总成绩 5%

实验 D 3-②中级能力,11-①初级能力 占总成绩 5%

实验 E 3-②中级能力 占总成绩 5%

实验 F 3-②中级能力、11-①初级能力 占总成绩 5%

期末考试 3-②中级能力、11-①初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20分

问答题:

5个、20分

应用题:

4个、60分

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

Page 31: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:吴国伟

审核人签字:

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 32: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090440030

2. 课程中文名称: 操作系统

3. 课程英文名称: Operating System

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 2学期

8. 先修课程: 《计算机组成》、《数据结构》、《C语言》

9. 后继课程: 《嵌入式操作系统》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 4 4 0

二、任课教师

吴国伟(教授)、孔维强(教授)、韩鑫(副教授)、覃振权(副教授)、胡燕(讲师)

三、教材及主要参考资料

教 材: 《Operating System Concepts》 第七版. Wiley Press,高等教育

出版社出版

参考资料: 现代操作系统 陈向群等译 机械工业出版社,2010

计算机操作系统教程 张尧学 史美林 清华大学出版社,2011

四、课程简介

《操作系统》是软件工程专业基础大类必修课程之一。通过该课程的学习,要求学

生掌握操作系统的基本结构、工作原理和实现方法,掌握操作系统对各种资源的管理方

法和操作系统各部分之间的联系;了解它与硬件和其它软件的联系,学习当代操作系统

的本质和特点,培养学生具有利用操作系统提供的服务进行高级应用开发的能力。

五、课程目标

Page 33: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

② 具备设计符合需求、具

有创新性的解决方案的能

力,同时考虑考虑社会、健

康、安全、法律、文化以及

环境等因素

(中级能力)利用操作系统

的基本原理设计和实现高

水平应用,如多线程、进程

间协作、死锁处理、设备驱

动等

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并能在多学科环境中

应用。

①掌握技术管理、人员管

理、工程管理的原理

(初级能力)了解操作系统

内部的基本机制和原理、熟

练操作系统的命令管理

(二)教学目标

目标内容 具体目标

专业知识 掌握操作系统的基本组成

掌握操作系统的调度机制

掌握操作系统的进程、线程机制

掌握操作系统进程协作(同步、互斥、通信)机制

掌握操作系统内存管理机制

掌握操作系统文件系统管理机制

掌握操作系统 IO设备管理机制

专业技能 掌握基本的操作系统管理命令、操作系统的裁减定制方法

掌握进程同步互斥通信使用方法

掌握多线程编程方法

掌握内存分配释放使用方法

掌握设备驱动开发方法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解和掌

握操作系统的基本机制和原理,具体说以下四方面:

(1)学习操作系统基础知识和基本理论知识,掌握操作系统提供的基本服务、机制

了解操作系统各个组成部分的工作原理,具有分析、运用用和设计操作系统中关键组成

部分的能力;

(2)通用操作系统设计原理、方法,具有操作系统编译、改造和基于操作系统设计

Page 34: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

多进程多线程程序能力;

(3)掌握基本的操作系统设计创新方法,培养学生追求创新的态度和意识;

(4)了解操作系统的前沿和新发展动向。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 13章内容,具体如下

1、操作系统概述(2)

(1)掌握操作系统的目标和功能

1.4 用户角度

1.5 系统角度

1.6 操作系统定义

(2)掌握操作系统结构和操作

2.1 单道处理

2.2 多道程序

2.3 操作系统操作(用户模式,内核模式)

(3)掌握现代操作系统的特征

3.1 进程管理

3.2 内存管理

3.3 存储管理(文件系统管理、大容量存储器管理、高速缓存)

3.4 I/O 系统

3.5 保护和安全

(4)了解操作系统的分类(通用操作系统、专用系统等)

(5)了解计算环境(传统计算、客户机-服务器模式、对等计算、基于 Web 计算)

2、操作系统结构(2)

(1)了解操作系统的提供的服务

包括用户界面、程序执行、I/O 操作、文件系统操作、通信、错误检测、资源

分配、统计、保护和安全、熟悉命令解释器的工作

(2)掌握操作系统的系统调用机制

掌握系统调用内核模式和用户模式的切换、系统调用三种参数传递的方法,了

解系统调用的类型

(3)掌握操作系统的系统结构(各种结构的优缺点)

3.1 简单结构

3.2 分层结构

3.3 微内核结构

3.4 模块方法

(4)虚拟机

了解虚拟机的实现和优点

14、 进程(4)

(1)掌握进程概念和进程的描述与控制

包括进程的概念、包含内容、进程的状态及切换、进程控制块内容及作用、

(2)了解进程调度基本内容

Page 35: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

包括调度的过程、调度队列、上下文切换

(3)掌握进程操作

以 fork为例,讲清楚进程创建的过程。

(4)掌握进程间通信机制

包括共享内存系统、消息传递系统

(5)掌握客户服务器系统通信

包括 Socket、远程过程调用、远程方法调用

(6)了解 IPC 系统的实例

了解 POSIX 共享内存、MACH、 Windows XP 的提供的支持

15、 线程(4)

(1)掌握线程机制和分类

1.3 线程的优点和动机

1.4 内核线程、用户线程

(2)掌握多线程模型

一对一、多对一、多对多

(3)了解线程库

包括 Pthread\Win32 线程、Java 线程

(4)了解线程中的一些问题

包括信号处理、线程池机制等

(5)了解 Windows 和 linux 操作系统中线程的处理。

16、 CPU调度(4)

(1)掌握 CPU 调度相关基本概念

明确抢占调度、分派程序

(2)掌握调度准则

(3)掌握主要的调度算法

包括先来先服务、最短作业优先、优先级调度、轮转法调度、多级队列调

度、多级队列反馈调度

(4)了解多处理机调度和实时调度

了解多处理器调度处理方法、亲和性、负载均衡等基本知识

(5)了解 Linux和 Windows 操作系统中的调度实例

17、 进程同步(8)

(1)掌握临界区概念

(2)掌握信号量机制

包括信号量定义、用法、信号量使用中出现的问题(死锁和饥饿)

(3)学会使用信号量解决进程间同步与互斥问题

掌握典型问题的信号量解决方法:有限缓冲区问题、读者写者问题、哲学

家就餐问题

(4)了解 Windows 和 Linux 中的同步机制

18、 死锁(2)

(1)掌握死锁的特点和产生的必要条件

(2)掌握死锁的处理方法:死锁预防、死锁避免和检测恢复

19、 内存管理(4)

(1)掌握内存管理的相关基本概念(逻辑地址、物理地址等)

Page 36: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(2)掌握连续内存分配的方法

明确内存映射和保护、内存分配、碎片

(3)掌握分页的基本方法

(4)掌握页表结构

包括层次页表、哈希页表、反向页表

(5)掌握分段的基本方法

(6)了解 Intel Pentium 上内存管理的方法

20、 虚拟内存管理(4)

(1)了解虚拟内存产生的背景

(2)掌握请求式分页管理的方法

(3)掌握内存映射文件机制

(4)掌握页面置换算法

(5)掌握系统颠簸原因和处理方法

(6)了解虚拟内存管理的其他考虑因素

包括预调页、页大小、TLB 范围、反向页表、程序结构、I/O 互锁等

(7)了解 Windows 和 Linux 的虚拟内存管理方法。

21、 文件系统接口(4)

(1)掌握文件的概念类型和结构

(2)掌握文件的访问方法

包括顺序访问、直接方法、其他方式

(3)掌握目录的结构形式

包括单层结构、双层、树状结构、无环图、通用目录

(4)掌握文件的共享机制

(5)掌握文件保护方式

22、 文件系统实现(4)

(1)掌握文件系统结构

(2)掌握文件系统的实现

(3)掌握目录的实现方法(线性列表、哈希表)

(4)掌握文件分配方法(连续分配、连接分配、索引分配)

(5)掌握空闲空间管理方法(位向量、链表、组、计数)

(6)了解效率、性能和恢复的问题

(7)了解 NFS 文件系统

23、 大容量存储器结构(3)

(1)掌握磁盘结构

(2)掌握磁盘调度方法

包括 FCFS、SSTF、SCAN、C-SCAN、LOOK调度

(3)掌握磁盘管理机制

格式化、引导块、坏块处理等

(4)了解交换空间管理机制和 RAID 结构

(5)了解其他存储方式

24、 I/O系统(3)

(1)了解 I/O 软件组成及硬件特点

(2)掌握 I/O 传输方式

(3)掌握 I/O 应用接口

Page 37: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(4)掌握 I/O 内核子系统

包括 I/O调度、缓冲、高速缓存、假脱机与设备预留、错误处理、I/O 保护、

内核数据结构

(5)了解流操作

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 Linux内核组成及

裁减定制

明确 linux 组成,实

践操作系统裁减定

制,同时考虑社会、

环境等因素

3 2 课后作业

2 运用信号量机制协

调理发师问题众多

进程间同步、互斥

掌握信号量机制,并

根据场景要求设计

解决方案及 C语言

或 Java实现。

8 8 课后作业

3 运用死锁预防机制

设计哲学家信号量

同步互斥中死锁解

决方法

设计并实现哲学家

就餐问题的死锁预

防解决方案、设计具

有创新、考虑社会、

环境等因素

Page 38: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 Linux基本

操作命令 单元项目 2

Linux 操作系统的

基本命令熟悉

基本命令

实验报告 实践教学 4 课程作业

课堂、

课下

验证型实

2 多进程创建

撤销方法 单元项目 4

运用开发工具和操

作系统管理多线程

方法,进行多线程

设计

完成多线

程设计报

实践教学 4 课程作业 课堂、

课下

验证型加

综合型实

3 进程间通信

机制 单元项目 6

运用开发工具和操

作系统提供的通信

机制,包括管道、

共享内存等方法、

进行多进程间通信

设计

完成多进

程通信的

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型实

4 信号量同步

互斥机制 单元项目 8

运用开发工具和操

作系统提供的同步

互斥信号量方法、

进行多进程间同步

完成进程

间信号量

同步互斥

解决方案

设计及实

实践教学 4 课程作业 课堂、

课下

综合型实

Page 39: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

互斥协作设计 验报告

5 内存管理实

验 单元项目 10

运用开发工具和操

作系统提供的内存

管理方法、进行内

存管理应用设计

完成内存

管理应用

设计及实

验报告

实践教学 4 课程作业 课堂、

课下

验证型、

综合型实

6 文件系统管

理实验 单元项目 11

运用开发工具和操

作系统提供文件系

统方法、设计简单

的文件系统管理机

完成文件

系统管理

设计方案

及实验报

实践教学 4 课程作业 课堂、

课下

综合型实

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

Page 40: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

1

1.1 了解操作

系统的目标和

功能;

掌握操作系统的目标、功能和基本

组成 3-②初级 了解

讲授、

讨论 2 2

1.2 了解现代

操作系统的特

重点掌握操作系统的内核模式用户

模式 3-②初级 了解

讲授、

讨论 2 2

1.3 掌握操作

系统的系统结

了解操作系统的提供的服务;掌握

操作系统的系统调用机制;掌握操

作系统的系统结构。

11-①初级 了解 讲授、

讨论 2 2

2

2.1 进程和线

掌握进程概念和进程的描述与控

制;掌握进程间通信机制;掌握进

程操作;掌握线程机制和分类;掌

握多线程模型;了解线程库;了解

线程中的一些问题

3-②中级 掌握 讲授、

讨论 6 1

2.2 CPU调度

掌握 CPU 调度相关基本概念;掌握

调度准则和调度算法;了解多处理

机调度和实时调度

3-②中级 掌握 讲授、

讨论 3 1

2.3 进程同步 掌握临界区概念;掌握信号量机制; 3-②中级 掌握 讲授、 8 2

Page 41: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

学会使用信号量解决进程间同步与

互斥问题;了解 Windows 和 Linux

中的同步机制

讨论

2.4 死锁处理

掌握死锁的特点和产生的必要条

件;掌握死锁的处理方法:死锁预

防、死锁避免和检测恢复

3-②中级

掌握/

运用/

分析

讲授、

讨论 3

3

内存

管理

3.1 内存管理

掌握内存管理的相关基本概念;了

解连续内存分配的方法;掌握分页

的基本方法;掌握页表结构和分段

方法

3-②中级

掌握/

运用/

分析

讲授、

讨论 4 1

3.2 虚拟内存

管理

掌握请求式分页管理的方法;掌握

页面置换算法;掌握系统颠簸原因

和处理方法

3-②中级

掌握/

运用/

分析

讲授、

讨论 4 2

4

文件

管理

4.1 文件系统

接口

1. 掌握文件的概念类型和结构

2. 掌握文件的访问方法

3. 掌握目录的结构形式

4. 掌握文件的共享机制和保护方式

3-②中级 掌握 讲授、

讨论 4 1

4.2 文件系统

实现

1. 掌握文件系统结构和实现

2. 掌握空闲空间管理和文件分配3-②中级 掌握

讲授、

讨论 4 1

Page 42: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

方法

4.3 大容量存

储设备

1. 掌握磁盘结构和磁盘调度方法

2. 了解 RAID 和其他存储方式。

3-②中级

掌握/

运用/

分析

讲授、

讨论 2 2

5

设备

管理

5. IO子系统

掌握 I/O 子系统组成和实现方式

2. 掌握进 I/O 内核子系统组成

3-②中级 掌握 讲授、

讨论 4 2

合计 48 24 10

Page 43: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过操作系统的基础知识讲解、

原理分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手

段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现 日常表现:迟到、早退 日常考核 2.5%

实验 A 基本命令实验 第 3 周 2.5%

实验 B 多线程创建与撤销 第 5 周 15%

实验 C 进程间通信 第 7 周 5%

实验 D 信号量进程间同步互斥 第 9 周 5%

实验 E 内存管理 第 11 周 5%

实验 F 文件系统管理 第 13 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

Page 44: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

考核项目 重点考核知识点、技能点 备注

实验 A+平时 3-②中级能力 占总成绩 5%

实验 B 3-②中级能力 占总成绩 5%

实验 C 3-②中级能力, 11-①初级能力 占总成绩 5%

实验 D 3-②中级能力,11-①初级能力 占总成绩 5%

实验 E 3-②中级能力 占总成绩 5%

实验 F 3-②中级能力、11-①初级能力 占总成绩 5%

期末考试 3-②中级能力、11-①初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20分

问答题:

5个、20分

应用题:

4个、60分

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

Page 45: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:吴国伟

审核人签字:

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 3月

Page 46: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《编译技术》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430090

2. 课程中文名称: 编译技术

3. 课程英文名称: Compiler Technique

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《C/C++程序设计》、《数据结构与算法》

9. 后继课程:

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 2/4 4

二、任课教师

江贺(教授)、刘馨月(副教授)、徐秀娟(讲师)、贾棋(讲师)

三、教材及主要参考资料

教 材: 《编译原理》(第 3版). 陈意云,张昱 编著. 高等教育出版

社. 2014.

参考资料: 《编译原理 技术与工具(英文版)》. Alfred V.Aho, Ravi

Sethi, Jeffrey D.Ullman 著. 人民邮电出版社.

四、课程简介

“编译技术”作为软件工程专业的核心课程,旨在对介绍编译器构造的一般原理和

基本实现方法。其主要内容包括形式语言和自动机理论、语法制导的定义和属性文法、

类型论等。本课程强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不

偏向于某种源语言或目标机器。课程教学强调课程讲解与上机实践的紧密结合。通过课

程讲解,使学生掌握文法与语言、词法分析、语法分析、语义分析、优化与目标代码的

Page 47: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

生成等基础理论知识。同时,Lex与 Yacc 的实际运用使学生充分理解词法分析、语法分

析的内涵。在课程的后半阶段,简单编译器 PL/0 的实现,使学生系统地掌握从词法分

析到代码生成的整体流程,从而对编程语言的设计和实现有深刻的理解。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

③ 掌握解决复杂工程问题

方法

(高级能力)理解词法分

析、语法分析、语义分析及

代码生成的基本原理及方

法,具备开发小型语言编译

器的能力。

3. 设计/开发解决方案:

设计/开发解决方案:能够

设计针对复杂软件工程问

题的解决方案,设计满足软

件工程及应用领域的特定

需求的系统、组件或模型;

并能够在系统设计与开发

过程中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

③ 构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

(高级能力)能够应用有限

自动机、LR 分析算法、代

码生成算法的基本原理,运

用图表对问题进行分析和

描述,并构建词法分析、语

法分析器等工具。

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

① 基于软件工程相关背景

知识进行合理分析,包括利

用原理性知识进行自主分

析、自主设计、自主测试分

(初级能力)基于编译程序

的基本原理和技术,更好地

理解程序设计语言,了解编

译技术的前沿和新发展动

向。

(二)教学目标

1. 学习编译技术的基本理论知识,掌握编译器的基本构成、各个组成阶段的功能;

2. 掌握词法分析的基本思想及工具;

3. 掌握基本的语法分析的基本方法,并能实现简单的语法分析器;

4. 培养学生掌握语义分析及代码生成的能力;

5. 了解编译技术的前沿和新发展动向。

(三)教学任务

本课程是软件工程专业大类课程之一。本课程的任务是使学生从应用角度出发,将

Page 48: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

理论讲授与书面作业、上机作业环节相结合,在理论和实践上掌握编译程序的基本原理

和实用技术,更好地理解程序设计语言,并具备开发小型语言编译器的能力。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 7大部分:编译器概述,词法分析,语法分析,语法制导的翻译,运行

时存储空间的组织和管理,中间代码生成以及代码生成。

第一部分:编译器概述

简要介绍编译器的各个组成部分以及编译器技术的各种应用。编译技术涉及编程语

言、计算机体系结构、形式语言理论、类型论、算法和软件工程等方面的知识。

1.了解编译的各个阶段

内容包括:词法分析、语法分析、语义分析、中间代码生成、代码优化、代码生成

和符号表管理

2.了解编译各阶段的分组

内容包括:编译器又可分成分析和综合两大部分,分析部分称为前端,综合部分称

为后端

3.了解编译器技术的应用

内容包括:高级语言的实现、针对计算机体系结构的优化、新计算机体系结构的设

计、程序翻译和提高软件开发效率的工具

第二部分:词法分析

介绍正规式和有限自动机的概念以及词法分析器的自动生成方法。

4.会使用正规式对词法记号进行描述与识别

内容包括:词法记号和属性、正规式、状态转换图

5.掌握有限自动机的概念和转换算法

内容包括:NFA 和 DFA 的概念、NFA到 DFA 的变换、DFA 的化简,从正规式构造 NFA

6.了解词法分析器的生成器

内容包括:Lex编译器、Lex程序的编写

第三部分:语法分析

介绍语法分析过程。简要介绍上下文无关文法的基本概念,详细介绍适合于手工实

现的预测分析技术和自动工具采用的 LR 分析算法。由于程序员编写代码难免会出现一

些语法错误,这部分还要求学生掌握常见的错误恢复处理技术。

7.掌握上下文无关文法的定义和作用

内容包括:上下文无关文法的定义、推导、分析树、文法二义性

8.掌握语言和文法之间的关系

内容包括:正规式和上下文无关文法的比较、验证文法产生的语言、消除二义性、

消除左递归、提取左因子、形式语言鸟瞰

9.掌握自上而下分析的方法,会手工构造预测分析表

Page 49: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

内容包括:LL(1)文法、递归下降的预测分析方法、非递归的预测分析方法、构造

预测分析表、预测分析的错误恢复

10.掌握自下而上分析的方法,会手工构造 SLR/LR/LALR 分析表

内容包括:归约、句柄、移进-归约分析、LR 分析算法、LR 文法和 LR 分析方法的

特点,构造 SLR 分析表、构造规范的 LR 分析表、构造 LALR分析表、LR分析的错误恢复

11.了解语法分析器的生成器

内容包括:分析器的生成器 Yacc、用 Yacc 处理二义文法、Yacc 的错误恢复

第四部分:语法制导的翻译

介绍语义规则和产生式相联系的两种方式:语法制导的定义和语法制导的翻译方

案。

12.掌握语法制导的定义

内容包括:语法制导定义的形式、综合属性、继承属性、属性依赖图、属性计算次

13.掌握 S 属性定义的自下而上计算

内容包括:语法树、构造语法树的语法制导定义、S属性的自下而上计算

14.L属性定义的自上而下计算

内容包括:L属性定义、翻译方案、预测分析器的设计、用综合属性代替继承属性

15.掌握 L 属性的自下而上计算

内容包括:删除翻译方案中嵌入的动作、分析栈上的继承属性、模拟继承属性的计

算、

第五部分:运行时存储空间的组织和管理

介绍在代码生成之前,静态的程序正文和运行时的活动之间的联系,以及静态的名

字和运行时数据对象之间的绑定关系。

16.掌握局部存储分配策略

内容包括:过程、名字的作用域和绑定、活动记录、局部数据的布局、程序块

17. 掌握全局栈式存储分配

内容包括:运行时内存的划分、活动树和运行栈、调用序列、栈上可变长度数据、

悬空引用

18. 掌握非局部名字的访问方法

内容包括:无过程嵌套的静态作用域、有过程嵌套的静态作用域、动态作用域

19. 掌握参数传递的几种一般方法

内容包括:值调用、引用调用、换名调用

20. 了解堆管理的方法

内容包括:内存管理器、计算机内存分层、程序局部性、手工回收请求

第六部分:中间代码生成

基于语法制导定义的方法,介绍编程语言的基本结构怎样被翻译成独立于机器的中

间表示。

21. 了解中间语言的种类

内容包括:后缀表示、图形表示、三地址代码

Page 50: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

22. 掌握声明语句的翻译

内容包括:过程中的声明、作用域信息的保存、记录的域名

23. 了解赋值语句的翻译

内容包括:符号表中的名字、数组元素的地址计算、数组元素地址计算的翻译方案、

类型转换

第七部分:代码生成

介绍代码生成器所需要解决的问题,通过一个简单的代码生成算法理解代码生成的

全过程。

24. 了解代码生成器设计中的问题

内容包括:目标程序、指令选择、寄存器分配、计算次序选择

25. 了解基本块和流图的概念

内容包括:基本块、基本块的优化、流图、下次引用信息

26. 了解一个简单的代码生成器的全过程

内容包括:寄存器描述和地址描述。代码生成算法、寄存器选择函数

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 Lex的应用 了解 Lex的基本使用方法,并

利用它来生成一个简单的词

法分析器,用于统计文件中各

种标识符的数目。

4 2 课后作业

2 Yacc的使用 掌握 Yacc的基本使用方法,

并结合 Lex 生成一个简单的

可编程计算器。

10 2 课后作业

3 简单编译器

PL/0的实现

系统地掌握从词法分析到代

码生成的整体流程,深刻理解

编程语言的设计和实现。

14 4 课后作业

Page 51: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 词法分析 单元项目 3 面向 MicroC 语言,进

行词法分析

完成词法分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型试

2 词法分析

Lex实验 单元项目 6

利用 lex设计词法分

析器

完成词法分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型试

3

自上而下

的语法分

单元项目 8 面向 MicroC 语言,进

行自上而下词法分析

完成自上而

下语法分析

程序

实践教学 4 课程作业 课堂、

实验室

综合型试

4

自下而上

的语法分

单元项目 11 面向 MicroC 语言,进

行自下而上词法分析

完成自下而

上语法分析

程序

实践教学 4 课程作业 课堂、

实验室

综合型试

5 语义分析 单元项目 13 面向 MicroC 语言,进

行语义分析

完成语义分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型、

验证型试

6

编译技术

前端解决

方案

单元项目 15

评价实施方案,考虑

创新性、社会、法律

等影响

完成 MicroC

编译器测试

与实施报告

实践教学 4 课程作业 课堂、

实验室

综合型试

Page 52: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握程

度 教学实施

考核方

各教学环节学时分配

理论教学 实践教学

课内

小计

课外

小计 讲课 习

他 课外 随堂

课外

1

编译技

术基础

1.1 编译器概述

词法分析、语法分析、语义分析、中

间代码生成、代码优化、代码生成等

基本概念,符号表管理,编译器阶段

的分组,解释器

1-③高级能力 了解 讲授、讨

论 1 1

1.2 编译器技术

的应用

高级语言的实现,针对计算机体系结

构的优化,程序翻译,提高软件开发

效率的工具

1-③高级能力 了解 讲授、讨

论 1 1

2

词法分

2.1 词法记号及

属性

词法记号、模式、词法单元;词法记

号的属性;词法错误

1-③高级能力

3-③高级能力 掌握

讲授、讨

论 1 1

2.2 词法记号的

描述与识别

串和语言,正规式,正规定义,状态

转换图

1-③高级能力

3-③高级能力 掌握

讲授、讨

论 1 1

2.3 有限自动机

不确定的有限自动机,确定的有限自

动机,NFA 到 DFA 的变换,DFA 的

化简

1-③高级能力

3-③高级能力 掌握

讲授、讨

论 2 2

2.4 从正规式到

有限自动机,词

法分析器的生成

从正规式到有限自动机,词法分析器

的生成器 3-③高级能力 掌握

讲授、讨

论 2 2

Page 53: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

测试 A 1-③高级能力

3-③高级能力

随堂测

试 2 2

词法分析 词法分析器的设计与实现 3-③高级能力 掌握/运

用/分析 讨论

上机实

验 4 4

3

语法分

3.1 上下文无关

文法

上下文无关文法的定义,推导,分析

树,二义性 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

3.2 语言和文法

正规式和上下文无关文法的比较,分

离词法分析器的理由,验证文法产生

的语言,适当的表达式文法,消除二

义性,消除左递归,提左因子,非上

下文无关的语言结构,形式语言鸟瞰

3-③高级能力 掌握/运

用/分析

讲授、讨

论 2 2

3.3 自上而下分

自上而下分析的一般方法,LL(1)文

法,递归下降的预测分析,非递归的

预测分析,构造预测分析表,预测分

析的错误恢复

3-③高级能力 掌握/运

用/分析

讲授、讨

论 2 2

3.4 自下而上分

归约,句柄,用栈实现移进归约分析,

移进归约分析的冲突 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

3.5 LR分析器

LR 分析算法,LR 文法和 LR 分析方

法的特点,构造 SLR 分析表,构造规

范的 LR 分析表,构造 LALR 分析表,

非 LR 的上下文无关结构

3-③高级能力 掌握/运

用/分析

讲授、讨

论 2 2

3.6 二义文法的

应用,分析器的

生成器

使用文法以外的信息来解决分析动作

的冲突,特殊情况产生式引起的二义

性,LR 分析的错误恢复,分析器的生

成器 Yacc,用 Yacc 处理二义文法,

Yacc 的错误恢复

3-③高级能力 了解 讲授、讨

论 2 4 6

Page 54: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

测试 B 1-③高级能力

3-③高级能力

随堂测

试 2 2

语法分析

面向 MicroC语言,进行自上而下词法

分析;

面向 MicroC语言,进行自下而上词法

分析

3-③高级能力 掌握/运

用/分析 讨论

上机实

验 4 4

4

语法制

导的翻

4.1 语法制导的

定义

语法制导定义的形式,综合属性,继

承属性,属性依赖图,属性计算次序 3-③高级能力 掌握

讲授、讨

论 2 2

4.2 S 属性定义

的自下而上计算

语法树,构造语法树的语法制导定义,

S 属性的自下而上计算 3-③高级能力 掌握

讲授、讨

论 2 2

4.3 L 属性定

义的自上而下计

L 属性定义,翻译方案,预测翻译器

的设计,用综合属性代替继承属性 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

4.4 L 属性的

自下而上计算

删除翻译方案中嵌入的动作,分析栈

上的继承属性,模拟继承属性的计算 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

测试 C 1-③高级能力

3-③高级能力

随堂测

试 2 2

语义分析 面向 MicroC语言,进行语义分析 3-③高级能力 掌握/运

用/分析 讨论

上机实

验 2 4 6

5

运行时

存储空

间的组

织和管

5.1 局部存储分

配策略

过程,名字的作用域和绑定,活动记

录,局部数据的安排,程序块 3-③高级能力 掌握

讲授、讨

论 1 1

5.2 全局存储分

配策略

运行时内存的划分,静态分配,栈式

分配,堆式分配 3-③高级能力 掌握

讲授、讨

论 1 1

5.3 非局部名字

的访问

无过程嵌套的静态作用域,有过程嵌

套的静态作用域,动态作用域 3-③高级能力 掌握

讲授、讨

论 2 2

Page 55: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

5.4 参数传递 值调用,引用调用 3-③高级能力 掌握 讲授、讨

论 2 2

6

中间代

码生成

6.1 中间语言 后缀表示,图形表示,三地址代码 3-③高级能力 掌握 讲授、讨

论 1 1

6.2 声明语句 过程中的声明,作用域信息的保存,

记录的域名 6-①初级能力 掌握

讲授、讨

论 1 1

测试 D

1-③高级能力

3-③高级能力

6-①初级能力

讨论 随堂测

7

代码生

7. 代码生成

代码生成器设计中的问题,目标机器,

基本块和流图,一个简单的代码生成

6-①初级能力 掌握 讲授、讨

论 2 4 6

MicroC编译器

测试与实施方案

评价实施方案,考虑创新性、社会、

法律等影响 6-①初级能力

掌握/运

用/分析 讨论

上机实

验 2 4 6

合计 48 24 72

Page 56: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程通过编译技术的基础知识讲解、

算法分析以及模块实现,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手

段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、算法为中心、问题导向、分组讨论、协同教学等多种互动式教

学方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

课后作业

词法分析、语法分析、语

义分析、中间代码生成及

目标代码生成

第 3 周-12

周每周一

30%

测验 A 词法分析 第 4 周 5%

测验 B 语法分析 第 8 周 5%

测验 C 语义分析 第 12 周 5%

测验 D 中间代码生成及目标代

码生成 第 16 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 50 %

(二)命题要求

Page 57: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

考核项目 重点考核知识点、技能点 备注

课后作业 1-③高级能力、3-③高级能力 占总成绩 30%

测试 A 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

测试 B 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

测试 C 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

测试 D 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

期末考试 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 50 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

填空题:

10 个、20%

应用题:

7 个、60%

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,测试及作业完成情况优秀,期末总

成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,测试及作业完成情

况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,测试及作业完成情

况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,测试及作业完

成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,测试及作

业完成情况较差,期末总成绩在 60分以下。

Page 58: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:江贺

审核人签字:江贺

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

Page 59: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090430090

2. 课程中文名称: 编译技术

3. 课程英文名称: Compiler Technique

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《C/C++程序设计》、《数据结构与算法》

9. 后继课程:

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 2/4 4 8

二、任课教师

江贺(教授)、刘馨月(副教授)、徐秀娟(讲师)、贾棋(讲师)

三、教材及主要参考资料

教 材: 《编译原理》(第 3 版). 陈意云,张昱 编著. 高等教育出版

社. 2014.

参考资料: 《编译原理 技术与工具(英文版)》. Alfred V.Aho, Ravi

Sethi, Jeffrey D.Ullman 著. 人民邮电出版社.

四、课程简介

“编译技术”作为软件工程专业的核心课程,旨在对介绍编译器构造的一般原理和

基本实现方法。其主要内容包括形式语言和自动机理论、语法制导的定义和属性文法、

类型论等。本课程强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不

偏向于某种源语言或目标机器。课程教学强调课程讲解与上机实践的紧密结合。通过课

程讲解,使学生掌握文法与语言、词法分析、语法分析、语义分析、优化与目标代码的

生成等基础理论知识。同时,Lex与 Yacc 的实际运用使学生充分理解词法分析、语法分

析的内涵。在课程的后半阶段,简单编译器 PL/0 的实现,使学生系统地掌握从词法分

析到代码生成的整体流程,从而对编程语言的设计和实现有深刻的理解。

Page 60: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

③ 掌握解决复杂工程问题

方法

(高级能力)理解词法分

析、语法分析、语义分析及

代码生成的基本原理及方

法,具备开发小型语言编译

器的能力。

3. 设计/开发解决方案:

设计/开发解决方案:能够

设计针对复杂软件工程问

题的解决方案,设计满足软

件工程及应用领域的特定

需求的系统、组件或模型;

并能够在系统设计与开发

过程中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

③ 构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

(高级能力)能够应用有限

自动机、LR 分析算法、代

码生成算法的基本原理,运

用图表对问题进行分析和

描述,并构建词法分析、语

法分析器等工具。

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

① 基于软件工程相关背景

知识进行合理分析,包括利

用原理性知识进行自主分

析、自主设计、自主测试分

(初级能力)基于编译程序

的基本原理和技术,更好地

理解程序设计语言,了解编

译技术的前沿和新发展动

向。

(二)教学目标

1. 学习编译技术的基本理论知识,掌握编译器的基本构成、各个组成阶段的功

能;

2. 掌握词法分析的基本思想及工具;

3. 掌握基本的语法分析的基本方法,并能实现简单的语法分析器;

4. 培养学生掌握语义分析及代码生成的能力;

5. 了解编译技术的前沿和新发展动向。

(三)教学任务

本课程是软件工程专业大类课程之一。本课程的任务是使学生从应用角度出发,将

理论讲授与书面作业、上机作业环节相结合,在理论和实践上掌握编译程序的基本原理

和实用技术,更好地理解程序设计语言,并具备开发小型语言编译器的能力。

Page 61: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 7大部分:编译器概述,词法分析,语法分析,语法制导的翻译,运行

时存储空间的组织和管理,中间代码生成以及代码生成。

第一部分:编译器概述

简要介绍编译器的各个组成部分以及编译器技术的各种应用。编译技术涉及编程语

言、计算机体系结构、形式语言理论、类型论、算法和软件工程等方面的知识。

1.了解编译的各个阶段

内容包括:词法分析、语法分析、语义分析、中间代码生成、代码优化、代码生成

和符号表管理

2.了解编译各阶段的分组

内容包括:编译器又可分成分析和综合两大部分,分析部分称为前端,综合部分称

为后端

3.了解编译器技术的应用

内容包括:高级语言的实现、针对计算机体系结构的优化、新计算机体系结构的设

计、程序翻译和提高软件开发效率的工具

第二部分:词法分析

介绍正规式和有限自动机的概念以及词法分析器的自动生成方法。

4.会使用正规式对词法记号进行描述与识别

内容包括:词法记号和属性、正规式、状态转换图

5.掌握有限自动机的概念和转换算法

内容包括:NFA 和 DFA 的概念、NFA到 DFA 的变换、DFA 的化简,从正规式构造 NFA

6.了解词法分析器的生成器

内容包括:Lex编译器、Lex程序的编写

第三部分:语法分析

介绍语法分析过程。简要介绍上下文无关文法的基本概念,详细介绍适合于手工实

现的预测分析技术和自动工具采用的 LR 分析算法。由于程序员编写代码难免会出现一

些语法错误,这部分还要求学生掌握常见的错误恢复处理技术。

7.掌握上下文无关文法的定义和作用

内容包括:上下文无关文法的定义、推导、分析树、文法二义性

8.掌握语言和文法之间的关系

内容包括:正规式和上下文无关文法的比较、验证文法产生的语言、消除二义性、

消除左递归、提取左因子、形式语言鸟瞰

9.掌握自上而下分析的方法,会手工构造预测分析表

内容包括:LL(1)文法、递归下降的预测分析方法、非递归的预测分析方法、构造

预测分析表、预测分析的错误恢复

Page 62: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

10.掌握自下而上分析的方法,会手工构造 SLR/LR/LALR 分析表

内容包括:归约、句柄、移进-归约分析、LR 分析算法、LR 文法和 LR 分析方法的

特点,构造 SLR 分析表、构造规范的 LR 分析表、构造 LALR分析表、LR分析的错误恢复

11.了解语法分析器的生成器

内容包括:分析器的生成器 Yacc、用 Yacc 处理二义文法、Yacc 的错误恢复

第四部分:语法制导的翻译

介绍语义规则和产生式相联系的两种方式:语法制导的定义和语法制导的翻译方

案。

12.掌握语法制导的定义

内容包括:语法制导定义的形式、综合属性、继承属性、属性依赖图、属性计算次

13.掌握 S 属性定义的自下而上计算

内容包括:语法树、构造语法树的语法制导定义、S属性的自下而上计算

14.L属性定义的自上而下计算

内容包括:L属性定义、翻译方案、预测分析器的设计、用综合属性代替继承属性

15.掌握 L 属性的自下而上计算

内容包括:删除翻译方案中嵌入的动作、分析栈上的继承属性、模拟继承属性的计

算、

第五部分:运行时存储空间的组织和管理

介绍在代码生成之前,静态的程序正文和运行时的活动之间的联系,以及静态的名

字和运行时数据对象之间的绑定关系。

16.掌握局部存储分配策略

内容包括:过程、名字的作用域和绑定、活动记录、局部数据的布局、程序块

17. 掌握全局栈式存储分配

内容包括:运行时内存的划分、活动树和运行栈、调用序列、栈上可变长度数据、

悬空引用

18. 掌握非局部名字的访问方法

内容包括:无过程嵌套的静态作用域、有过程嵌套的静态作用域、动态作用域

19. 掌握参数传递的几种一般方法

内容包括:值调用、引用调用、换名调用

20. 了解堆管理的方法

内容包括:内存管理器、计算机内存分层、程序局部性、手工回收请求

第六部分:中间代码生成

基于语法制导定义的方法,介绍编程语言的基本结构怎样被翻译成独立于机器的中

间表示。

21. 了解中间语言的种类

内容包括:后缀表示、图形表示、三地址代码

22. 掌握声明语句的翻译

内容包括:过程中的声明、作用域信息的保存、记录的域名

Page 63: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

23. 了解赋值语句的翻译

内容包括:符号表中的名字、数组元素的地址计算、数组元素地址计算的翻译方案、

类型转换

第七部分:代码生成

介绍代码生成器所需要解决的问题,通过一个简单的代码生成算法理解代码生成的

全过程。

24. 了解代码生成器设计中的问题

内容包括:目标程序、指令选择、寄存器分配、计算次序选择

25. 了解基本块和流图的概念

内容包括:基本块、基本块的优化、流图、下次引用信息

26. 了解一个简单的代码生成器的全过程

内容包括:寄存器描述和地址描述。代码生成算法、寄存器选择函数

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 Lex的应用 了解 Lex的基本使用方法,并

利用它来生成一个简单的词

法分析器,用于统计文件中各

种标识符的数目。

4 2 课后作业

2 Yacc的使用 掌握 Yacc的基本使用方法,

并结合 Lex 生成一个简单的

可编程计算器。

10 2 课后作业

3 简单编译器

PL/0的实现

系统地掌握从词法分析到代

码生成的整体流程,深刻理解

编程语言的设计和实现。

14 4 课后作业

Page 64: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 词法分析 单元项目 3 面向 MicroC 语言,进

行词法分析

完成词法分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型试

2 词法分析

Lex实验 单元项目 6

利用 lex设计词法分

析器

完成词法分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型试

3

自上而下

的语法分

单元项目 8 面向 MicroC 语言,进

行自上而下词法分析

完成自上而

下语法分析

程序

实践教学 4 课程作业 课堂、

实验室

综合型试

4

自下而上

的语法分

单元项目 11 面向 MicroC 语言,进

行自下而上词法分析

完成自下而

上语法分析

程序

实践教学 4 课程作业 课堂、

实验室

综合型试

5 语义分析 单元项目 13 面向 MicroC 语言,进

行语义分析

完成语义分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型、

验证型试

6

编译技术

前端解决

方案

单元项目 15

评价实施方案,考虑

创新性、社会、法律

等影响

完成 MicroC

编译器测试

与实施报告

实践教学 4 课程作业 课堂、

实验室

综合型试

Page 65: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握程

度 教学实施

考核方

各教学环节学时分配

理论教学 实践教学

课内

小计

课外

小计 讲课 习

他 课外 随堂

课外

1

编译技

术基础

1.1 编译器概述

词法分析、语法分析、语义分析、中

间代码生成、代码优化、代码生成等

基本概念,符号表管理,编译器阶段

的分组,解释器

1-③高级能力 了解 讲授、讨

论 1 1

1.2 编译器技术

的应用

高级语言的实现,针对计算机体系结

构的优化,程序翻译,提高软件开发

效率的工具

1-③高级能力 了解 讲授、讨

论 1 1

2

词法分

2.1 词法记号及

属性

词法记号、模式、词法单元;词法记

号的属性;词法错误

1-③高级能力

3-③高级能力 掌握

讲授、讨

论 1 1

2.2 词法记号的

描述与识别

串和语言,正规式,正规定义,状态

转换图

1-③高级能力

3-③高级能力 掌握

讲授、讨

论 1 1

2.3 有限自动机

不确定的有限自动机,确定的有限自

动机,NFA 到 DFA 的变换,DFA 的

化简

1-③高级能力

3-③高级能力 掌握

讲授、讨

论 2 2

2.4 从正规式到

有限自动机,词

法分析器的生成

从正规式到有限自动机,词法分析器

的生成器 3-③高级能力 掌握

讲授、讨

论 2 2

Page 66: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

测试 A 1-③高级能力

3-③高级能力

随堂测

试 2 2

词法分析 词法分析器的设计与实现 3-③高级能力 掌握/运

用/分析 讨论

上机实

验 4 4 4

3

语法分

3.1 上下文无关

文法

上下文无关文法的定义,推导,分析

树,二义性 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

3.2 语言和文法

正规式和上下文无关文法的比较,分

离词法分析器的理由,验证文法产生

的语言,适当的表达式文法,消除二

义性,消除左递归,提左因子,非上

下文无关的语言结构,形式语言鸟瞰

3-③高级能力 掌握/运

用/分析

讲授、讨

论 2 2

3.3 自上而下分

自上而下分析的一般方法,LL(1)文

法,递归下降的预测分析,非递归的

预测分析,构造预测分析表,预测分

析的错误恢复

3-③高级能力 掌握/运

用/分析

讲授、讨

论 2 2

3.4 自下而上分

归约,句柄,用栈实现移进归约分析,

移进归约分析的冲突 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

3.5 LR分析器

LR 分析算法,LR 文法和 LR 分析方

法的特点,构造 SLR 分析表,构造规

范的 LR 分析表,构造 LALR 分析表,

非 LR 的上下文无关结构

3-③高级能力 掌握/运

用/分析

讲授、讨

论 2 4

3.6 二义文法的

应用,分析器的

生成器

使用文法以外的信息来解决分析动作

的冲突,特殊情况产生式引起的二义

性,LR 分析的错误恢复,分析器的生

成器 Yacc,用 Yacc 处理二义文法,

Yacc 的错误恢复

3-③高级能力 了解 讲授、讨

论 2 2

Page 67: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

测试 B 1-③高级能力

3-③高级能力

随堂测

试 2 2 2 2

语法分析

面向 MicroC语言,进行自上而下词法

分析;

面向 MicroC语言,进行自下而上词法

分析

3-③高级能力 掌握/运

用/分析 讨论

上机实

验 4 4 4 4

4

语法制

导的翻

4.1 语法制导的

定义

语法制导定义的形式,综合属性,继

承属性,属性依赖图,属性计算次序 3-③高级能力 掌握

讲授、讨

论 2 2

4.2 S 属性定义

的自下而上计算

语法树,构造语法树的语法制导定义,

S 属性的自下而上计算 3-③高级能力 掌握

讲授、讨

论 2 2

4.3 L 属性定

义的自上而下计

L 属性定义,翻译方案,预测翻译器

的设计,用综合属性代替继承属性 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

4.4 L 属性的

自下而上计算

删除翻译方案中嵌入的动作,分析栈

上的继承属性,模拟继承属性的计算 3-③高级能力

掌握/运

用/分析

讲授、讨

论 2 2

测试 C 1-③高级能力

3-③高级能力

随堂测

试 2 2 2 2

语义分析 面向 MicroC语言,进行语义分析 3-③高级能力 掌握/运

用/分析 讨论

上机实

验 2 2 2 2 2

5

运行时

存储空

间的组

织和管

5.1 局部存储分

配策略

过程,名字的作用域和绑定,活动记

录,局部数据的安排,程序块 3-③高级能力 掌握

讲授、讨

论 1 1

5.2 全局存储分

配策略

运行时内存的划分,静态分配,栈式

分配,堆式分配 3-③高级能力 掌握

讲授、讨

论 1 1

5.3 非局部名字

的访问

无过程嵌套的静态作用域,有过程嵌

套的静态作用域,动态作用域 3-③高级能力 掌握

讲授、讨

论 2 2

Page 68: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

5.4 参数传递 值调用,引用调用 3-③高级能力 掌握 讲授、讨

论 2 2

6

中间代

码生成

6.1 中间语言 后缀表示,图形表示,三地址代码 3-③高级能力 掌握 讲授、讨

论 1 1

6.2 声明语句 过程中的声明,作用域信息的保存,

记录的域名 6-①初级能力 掌握

讲授、讨

论 1 1

测试 D

1-③高级能力

3-③高级能力

6-①初级能力

讨论 随堂测

7

代码生

7. 代码生成

代码生成器设计中的问题,目标机器,

基本块和流图,一个简单的代码生成

6-①初级能力 掌握 讲授、讨

论 2 2

MicroC编译器

测试与实施方案

评价实施方案,考虑创新性、社会、

法律等影响 6-①初级能力

掌握/运

用/分析 讨论

上机实

验 2 2 2 2 2

合计 48 12 12 48 12

Page 69: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程通过编译技术的基础知识讲解、

算法分析以及模块实现,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手

段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、算法为中心、问题导向、分组讨论、协同教学等多种互动式教

学方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业

词法分析、语法分析、语

义分析、中间代码生成及

目标代码生成

第 3 周-12

周每周一

30%

测验 A 词法分析 第 4 周 5%

测验 B 语法分析 第 8 周 5%

测验 C 语义分析 第 12 周 5%

测验 D 中间代码生成及目标代

码生成 第 16 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 50 %

Page 70: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1-③高级能力、3-③高级能力 占总成绩 30%

测试 A 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

测试 B 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

测试 C 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

测试 D 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 5%

期末考试 1-③高级能力、3-③高级能力、6-①初级能力 占总成绩 50 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

填空题:

10个、20%

应用题:

7个、60%

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,测试及作业完成情况优秀,期末总

成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,测试及作业完成情

况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,测试及作业完成情

况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,测试及作业完

Page 71: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,测试及作

业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:江贺

审核人签字:江贺

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 72: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2015 年教学大纲

一、课程基本信息 1. 课程编号: 1090430090

2. 课程中文名称: 编译技术

3. 课程英文名称: Compiler Technique

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 2学期

8. 先修课程: 《C/C++程序设计》、《数据结构与算法》

9. 后继课程:

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

120 48 72 2/4 4 8

二、任课教师

江贺(教授)、刘馨月(副教授)、徐秀娟(讲师)、贾棋(讲师)

三、教材及主要参考资料

教 材: 《编译原理》(第 3 版). 陈意云,张昱 编著. 高等教育出版

社. 2014.

参考资料: 《编译原理 技术与工具(英文版)》. Alfred V.Aho, Ravi

Sethi, Jeffrey D.Ullman 著. 人民邮电出版社.

四、课程简介

“编译技术”作为软件工程专业的核心课程,旨在对介绍编译器构造的一般原理和

基本实现方法。其主要内容包括形式语言和自动机理论、语法制导的定义和属性文法、

类型论等。本课程强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不

偏向于某种源语言或目标机器。课程教学强调课程讲解与上机实践的紧密结合。通过课

程讲解,使学生掌握文法与语言、词法分析、语法分析、语义分析、优化与目标代码的

生成等基础理论知识。同时,Lex与 Yacc 的实际运用使学生充分理解词法分析、语法分

析的内涵。在课程的后半阶段,简单编译器 PL/0 的实现,使学生系统地掌握从词法分

析到代码生成的整体流程,从而对编程语言的设计和实现有深刻的理解。

五、课程目标

(一)课程培养能力体系

Page 73: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

1 级能力指标 2 级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

③ 掌握解决复杂工程问题

方法

(中级能力)理解词法分析、

语法分析、语义分析及代码

生成的基本原理及方法,具

备开发小型语言编译器的能

力。

6.工程与社会:能够基于工

程相关背景知识进行合理分

析,评价专业工程实践和复

杂工程问题解决方案对社

会、健康、安全、法律以及

文化的影响,并理解应承担

的责任。

① 基于工程相关背景知识

进行合理分析

(初级能力)能够应用有限

自动机、LR 分析算法、代码

生成算法的基本原理,运用

图表对问题进行分析和描

述。

12. 终身学习:具有自主学

习和终身学习的意识,有不

断学习和适应发展的能力。

② 掌握自主文献检索、资料

查询及运用现代信息技术跟

踪并获取相关信息的基本方

(高级能力)基于编译程序

的基本原理和技术,更好地

理解程序设计语言,了解编

译技术的前沿和新发展动

向。

(二)教学目标

1. 学习编译技术的基本理论知识,掌握编译器的基本构成、各个组成阶段的功能;

2. 掌握词法分析的基本思想及工具;

3. 掌握基本的语法分析的基本方法,并能实现简单的语法分析器;

4. 培养学生掌握语义分析及代码生成的能力;

5. 了解编译技术的前沿和新发展动向。

(三)教学任务

本课程是软件工程专业大类课程之一。本课程的任务是使学生从应用角度出发,将理论

讲授与书面作业、上机作业环节相结合,在理论和实践上掌握编译程序的基本原理和实用技

术,更好地理解程序设计语言,并具备开发小型语言编译器的能力。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 7 大部分:编译器概述,词法分析,语法分析,语法制导的翻译,运行时存

储空间的组织和管理,中间代码生成以及代码生成。

第一部分:编译器概述

简要介绍编译器的各个组成部分以及编译器技术的各种应用。编译技术涉及编程语言、

计算机体系结构、形式语言理论、类型论、算法和软件工程等方面的知识。

1.了解编译的各个阶段

内容包括:词法分析、语法分析、语义分析、中间代码生成、代码优化、代码生成和符

号表管理

Page 74: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2.了解编译各阶段的分组

内容包括:编译器又可分成分析和综合两大部分,分析部分称为前端,综合部分称为后

3.了解编译器技术的应用

内容包括:高级语言的实现、针对计算机体系结构的优化、新计算机体系结构的设计、

程序翻译和提高软件开发效率的工具

第二部分:词法分析

介绍正规式和有限自动机的概念以及词法分析器的自动生成方法。

4.会使用正规式对词法记号进行描述与识别

内容包括:词法记号和属性、正规式、状态转换图

5.掌握有限自动机的概念和转换算法

内容包括:NFA 和 DFA 的概念、NFA 到 DFA 的变换、DFA 的化简,从正规式构造 NFA

6.了解词法分析器的生成器

内容包括:Lex 编译器、Lex 程序的编写

第三部分:语法分析

介绍语法分析过程。简要介绍上下文无关文法的基本概念,详细介绍适合于手工实现的

预测分析技术和自动工具采用的 LR 分析算法。由于程序员编写代码难免会出现一些语法错

误,这部分还要求学生掌握常见的错误恢复处理技术。

7.掌握上下文无关文法的定义和作用

内容包括:上下文无关文法的定义、推导、分析树、文法二义性

8.掌握语言和文法之间的关系

内容包括:正规式和上下文无关文法的比较、验证文法产生的语言、消除二义性、消除

左递归、提取左因子、形式语言鸟瞰

9.掌握自上而下分析的方法,会手工构造预测分析表

内容包括:LL(1)文法、递归下降的预测分析方法、非递归的预测分析方法、构造预测分

析表、预测分析的错误恢复

10.掌握自下而上分析的方法,会手工构造 SLR/LR/LALR 分析表

内容包括:归约、句柄、移进-归约分析、LR 分析算法、LR 文法和 LR 分析方法的特点,

构造 SLR 分析表、构造规范的 LR 分析表、构造 LALR 分析表、LR 分析的错误恢复

11.了解语法分析器的生成器

内容包括:分析器的生成器 Yacc、用 Yacc 处理二义文法、Yacc 的错误恢复

第四部分:语法制导的翻译

介绍语义规则和产生式相联系的两种方式:语法制导的定义和语法制导的翻译方案。

12.掌握语法制导的定义

内容包括:语法制导定义的形式、综合属性、继承属性、属性依赖图、属性计算次序

Page 75: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

13.掌握 S 属性定义的自下而上计算

内容包括:语法树、构造语法树的语法制导定义、S 属性的自下而上计算

14.L 属性定义的自上而下计算

内容包括:L 属性定义、翻译方案、预测分析器的设计、用综合属性代替继承属性

15.掌握 L 属性的自下而上计算

内容包括:删除翻译方案中嵌入的动作、分析栈上的继承属性、模拟继承属性的计算、

第五部分:运行时存储空间的组织和管理

介绍在代码生成之前,静态的程序正文和运行时的活动之间的联系,以及静态的名字和

运行时数据对象之间的绑定关系。

16.掌握局部存储分配策略

内容包括:过程、名字的作用域和绑定、活动记录、局部数据的布局、程序块

17. 掌握全局栈式存储分配

内容包括:运行时内存的划分、活动树和运行栈、调用序列、栈上可变长度数据、悬空

引用

18. 掌握非局部名字的访问方法

内容包括:无过程嵌套的静态作用域、有过程嵌套的静态作用域、动态作用域

19. 掌握参数传递的几种一般方法

内容包括:值调用、引用调用、换名调用

20. 了解堆管理的方法

内容包括:内存管理器、计算机内存分层、程序局部性、手工回收请求

第六部分:中间代码生成

基于语法制导定义的方法,介绍编程语言的基本结构怎样被翻译成独立于机器的中间表

示。

21. 了解中间语言的种类

内容包括:后缀表示、图形表示、三地址代码

22. 掌握声明语句的翻译

内容包括:过程中的声明、作用域信息的保存、记录的域名

23. 了解赋值语句的翻译

内容包括:符号表中的名字、数组元素的地址计算、数组元素地址计算的翻译方案、类

型转换

第七部分:代码生成

介绍代码生成器所需要解决的问题,通过一个简单的代码生成算法理解代码生成的全过

程。

24. 了解代码生成器设计中的问题

内容包括:目标程序、指令选择、寄存器分配、计算次序选择

Page 76: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

25. 了解基本块和流图的概念

内容包括:基本块、基本块的优化、流图、下次引用信息

26. 了解一个简单的代码生成器的全过程

内容包括:寄存器描述和地址描述。代码生成算法、寄存器选择函数

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 Lex的应用 了解 Lex的基本使用方法,并

利用它来生成一个简单的词

法分析器,用于统计文件中各

种标识符的数目。

4 2 课后作业

2 Yacc的使用 掌握 Yacc的基本使用方法,

并结合 Lex 生成一个简单的

可编程计算器。

10 2 课后作业

3 简单编译器

PL/0的实现

系统地掌握从词法分析到代

码生成的整体流程,深刻理解

编程语言的设计和实现。

14 4 课后作业

Page 77: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 词法分析 单元项目 3 面向 MicroC 语言,进

行词法分析

完成词法分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型试

2 词法分析

Lex实验 单元项目 6

利用 lex设计词法分

析器

完成词法分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型试

3

自上而下

的语法分

单元项目 8 面向 MicroC 语言,进

行自上而下词法分析

完成自上而

下语法分析

程序

实践教学 4 课程作业 课堂、

实验室

综合型试

4

自下而上

的语法分

单元项目 11 面向 MicroC 语言,进

行自下而上词法分析

完成自下而

上语法分析

程序

实践教学 4 课程作业 课堂、

实验室

综合型试

5 语义分析 单元项目 13 面向 MicroC 语言,进

行语义分析

完成语义分

析程序 实践教学 4 课程作业

课堂、

实验室

综合型、

验证型试

6

编译技术

前端解决

方案

单元项目 15

评价实施方案,考虑

创新性、社会、法律

等影响

完成 MicroC

编译器测试

与实施报告

实践教学 4 课程作业 课堂、

实验室

综合型试

Page 78: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握程

度 教学实施

考核方

各教学环节学时分配

理论教学 实践教学

课内

小计

课外

小计 讲课 习

他 课外 随堂

课外

1

编译技

术基础

1.1 编译器概述

词法分析、语法分析、语义分析、中

间代码生成、代码优化、代码生成等

基本概念,符号表管理,编译器阶段

的分组,解释器

1-③高级 掌握 讲授、讨

论 1 1

1.2 编译器技术

的应用

高级语言的实现,针对计算机体系结

构的优化,程序翻译,提高软件开发

效率的工具

6-①初级 了解 讲授、讨

论 1 1

2

词法分

2.1 词法记号及

属性

词法记号、模式、词法单元;词法记

号的属性;词法错误 1-③高级 掌握

讲授、讨

论 1 1

2.2 词法记号的

描述与识别

串和语言,正规式,正规定义,状态

转换图 1-③高级 掌握

讲授、讨

论 1 1

2.3 有限自动机

不确定的有限自动机,确定的有限自

动机,NFA 到 DFA 的变换,DFA 的

化简

1-③高级 掌握 讲授、讨

论 2 1 3

2.4 从正规式到

有限自动机,词

法分析器的生成

从正规式到有限自动机,词法分析器

的生成器 6-①初级 了解

讲授、讨

论、上机 1 1

Page 79: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

测试 A 12-②高级、

1-③高级

随堂测

试 2 2

词法分析 词法分析器的设计与实现 12-②高级、

1-③高级

掌握/运

用/分析 讨论

上机实

验 8 2 8 2

3

语法分

3.1 上下文无关

文法

上下文无关文法的定义,推导,分析

树,二义性 1-③高级

掌握/运

用/分析

讲授、讨

论 2 2

3.2 语言和文法

正规式和上下文无关文法的比较,分

离词法分析器的理由,验证文法产生

的语言,适当的表达式文法,消除二

义性,消除左递归,提左因子,非上

下文无关的语言结构,形式语言鸟瞰

6-①初级 掌握/运

用/分析

讲授、讨

论 2 2

3.3 自上而下分

自上而下分析的一般方法,LL(1)文

法,递归下降的预测分析,非递归的

预测分析,构造预测分析表,预测分

析的错误恢复

1-③高级 掌握/运

用/分析

讲授、讨

论 2 2

3.4 自下而上分

归约,句柄,用栈实现移进归约分析,

移进归约分析的冲突 1-③高级

掌握/运

用/分析

讲授、讨

论 2 2

3.5 LR分析器

LR 分析算法,LR 文法和 LR 分析方

法的特点,构造 SLR 分析表,构造规

范的 LR 分析表,构造 LALR 分析表,

非 LR 的上下文无关结构

1-③高级 掌握/运

用/分析

讲授、讨

论、上机 2 1 3

3.6 二义文法的

应用,分析器的

生成器

使用文法以外的信息来解决分析动作

的冲突,特殊情况产生式引起的二义

性,LR 分析的错误恢复,分析器的生

成器 Yacc,用 Yacc 处理二义文法,

6-①初级 了解 讲授、讨

论 2 2

Page 80: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

Yacc 的错误恢复

测试 B 12-②高级、

1-③高级

随堂测

试 2 2

语法分析

面向 MicroC语言,进行自上而下词法

分析;

面向 MicroC语言,进行自下而上词法

分析

12-②高级、

1-③高级

掌握/运

用/分析 讨论

上机实

验 8 2 8 2

4

语法制

导的翻

4.1 语法制导的

定义

语法制导定义的形式,综合属性,继

承属性,属性依赖图,属性计算次序 1-③高级 掌握

讲授、讨

论、上机 2 2

4.2 S 属性定义

的自下而上计算

语法树,构造语法树的语法制导定义,

S 属性的自下而上计算 1-③高级 掌握

讲授、讨

论 2 2

4.3 L 属性定

义的自上而下计

L 属性定义,翻译方案,预测翻译器

的设计,用综合属性代替继承属性 1-③高级

掌握/运

用/分析

讲授、讨

论 2 2

4.4 L 属性的

自下而上计算

删除翻译方案中嵌入的动作,分析栈

上的继承属性,模拟继承属性的计算 1-③高级

掌握/运

用/分析

讲授、讨

论 2 1 3

测试 C 12-②高级、

1-③高级

随堂测

试 2 2

语义分析 面向 MicroC语言,进行语义分析 12-②高级、

1-③高级

掌握/运

用/分析 讨论

上机实

验 4 4

5

运行时

存储空

间的组

织和管

5.1 局部存储分

配策略

过程,名字的作用域和绑定,活动记

录,局部数据的安排,程序块 6-①初级 了解

讲授、讨

论 1 1

5.2 全局存储分

配策略

运行时内存的划分,静态分配,栈式

分配,堆式分配 1-③高级 掌握

讲授、讨

论 1 1

5.3 非局部名字无过程嵌套的静态作用域,有过程嵌 1-③高级 掌握 讲授、讨 2 2

Page 81: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

理 的访问 套的静态作用域,动态作用域 论

5.4 参数传递 值调用,引用调用 1-③高级 掌握 讲授、讨

论 1 1

6

中间代

码生成

6.1 中间语言 后缀表示,图形表示,三地址代码 1-③高级 掌握 讲授、讨

论 1 1

6.2 声明语句 过程中的声明,作用域信息的保存,

记录的域名 1-③高级 掌握

讲授、讨

论 1 1 2

测试 D

6-①初级、

12-②高级、

1-③高级

讨论 随堂测

试 2 2

7

代码生

7. 代码生成

代码生成器设计中的问题,目标机器,

基本块和流图,一个简单的代码生成

12-②高级 掌握 讲授、讨

论 2 2

MicroC编译器

测试与实施方案

评价实施方案,考虑创新性、社会、

法律等影响

12-②高级、

1-③高级

掌握/运

用/分析 讨论

上机实

验 4 4 4 4

合计 44 4 24 8 72 8

Page 82: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程通过编译技术的基础知识讲解、

算法分析以及模块实现,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手

段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、算法为中心、问题导向、分组讨论、协同教学等多种互动式教

学方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业

词法分析、语法分析、语

义分析、中间代码生成及

目标代码生成

作业及上

第 3 周-12

周每周一

10%

测验 A 词法分析 测试题 第 4 周 5%

测验 B 语法分析 测试题 第 8 周 5%

测验 C 语义分析 测试题 第 12 周 5%

测验 D 中间代码生成及目标代

码生成 测试题 第 16 周 5%

Page 83: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1-③高级能力、6-①初级能力 占总成绩 10分

测试 A 1-③高级能力、6-①初级能力、12-②高级能力 占总成绩 5分

测试 B 1-③高级能力、6-①初级能力、12-②高级能力 占总成绩 5分

测试 C 1-③高级能力、6-①初级能力、12-②高级能力 占总成绩 5分

测试 D 1-③高级能力、6-①初级能力、12-②高级能力 占总成绩 5分

期末考试 1-③高级能力、6-①初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

填空题:

10个、20%

应用题:

6-7个、60%

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,测试及作业完成情况优秀,期末总

成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,测试及作业完成情

Page 84: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,测试及作业完成情

况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,测试及作业完

成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,测试及作

业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:江贺

审核人签字:江贺

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 7月

Page 85: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《程序设计基础与 C 程序设计》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430012

2. 课程中文名称: 程序设计基础与 C程序设计

3. 课程英文名称: Foundation of Programing Design and C Language

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程/网络工程类

7. 开课学期: 第一学年第 1学期

8. 先修课程: 《计算机文化基础》或《计算机导论》

9. 后继课程: 《面向对象程序设计与 C++》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

84 48 36 10 4.5 0

二、任课教师

樊鑫(教授)、刘斌(副教授)、王祎(讲师)、徐睿(副教授)、蒋光远(工程师)、

田琳琳(讲师)

三、教材及主要参考资料

教 材: 蒋光远, 田琳琳编著.《C程序设计快速进阶大学教程》,清华大

学出版社,2010.

参考资料: 谭浩强编著. 《C程序设计》(第 4版),清华大学出版社.

Brian W. Kernighan & Dennis M. Ritchie.《C 程序设计语言

(第二版)》,机械工业出版社.

Harvey M.Deitel, Paul J.Deitel. 《C程序设计经典教程(第

四版)》,清华大学出版社.

四、课程简介

本课程重点讲授计算机程序设计的基础知识、C 语言的基本概念、顺序结构程序设

计、分支结构程序设计、循环结构设计、函数、指针、数组、结构、联合以及枚举类型、

Page 86: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

编译预处理、位运算、文件等内容,掌握利用 C语言进行程序设计的基本方法,以及 C

语言编程技巧。通过课后复习及上机编程实践环节,使学生打下程序设计的较扎实的基

础。教学的主要目的是培养学生利用计算机解决和处理本专业实际问题的思维方法和初

步能力,掌握面向过程程序设计的方法,为后续课程的学习打下基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将高

等数理基础、工程技术基

础、社会科学基础和软件工

程专业知识用于解决软件

工程及应用领域的复杂工

程问题。

2.掌握软件工程基础及专

业知识。

(中级能力)

应用面向过程程序设计的

方式解决科学及工程问题

的能力。

3. 设计 /开发解决方

案:能够设计针对复杂软件

工程问题的解决方案,设计

满足软件工程及应用领域

的特定需求的系统、组件或

模型;并能够在系统设计与

开发过程中体现创新意识,

考虑社会、健康、安全、法

律、文化以及环境等因素。

3.构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

(初级级力)

通过上机实验理解程序设

计的基本方法和软件开发

的基本步骤

5. 使用现代工具:能够

针对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

1.了解现代软件开发工具

如开发平台、测试平台、配

置管理软件和项目管理软

件的使用方法。

(初级能力)

掌握使用相关 IDE 开发 C

程序的方法以及调试程序

基本方法

(二)教学目标

目标内容 具体目标

专业知识

理解面向过程程序设计的思想

理解结构化程序设计的方法

掌握基本类型、数组等简单数据类型

熟练运用三种基本结构构造算法

Page 87: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

理解函数的功能,正确定义与调用函数

专业技能

理解结构化程序设计的方法

掌握流程图的基本绘制方法

熟练运用函数构造程序

掌握基本的程序调试和测试的方法

(三)教学任务

1. 通过理论教学讲授程序设计的基础知识,使学生熟练掌握 C 语言的基本语法,

初步具备计算机高级语言进行程序设计的能力。

2. 通过理论教学讲授面向过程程序设计的思想和方法,使学生理解面向过程设计

的思想,培养使用结构化方法开发程序开发的能力。

3. 通过实验教学训练学生具备程序设计基本技能,熟练掌握常用 C 程序开发平

台的使用,掌握调试与测试程序的方法。

4. 通过实践教学培养学生的计算机思维和基本职业素养,培养兼具计算机科学理

论探索精神与能力和软件工程创新精神与素质的软件工程师。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

教学内容 教学要求 学

1) C 概述

1.程序设计的基本概念

2.C 语言的基本特征

1.了解最简单程序结构及函数的使用和概念

2.学会最简单程序开发,熟悉编程环境 4

2) 基本数据类型

与输入输出

1. 数据类型

2. 常量与变量

3. 输入输出操作

1.了解基本数据类型和常量的表示范围

2.掌握变量定义与初始化

3.学会常用 I/O 输出的格式控制

2

3) 表达式和语句

1.常用运算符

2.表达式运算规则

1.掌握运算符优先级和结合性,表达式,左值表达式

2.理解算术运算和赋值缩写的区别

3. 理解隐式转换和强制转换,理解不同的操作数影响操

作符的意义

4. 理解数据超过该数据类型表示范围时的溢出

5. 掌握增量和减量操作

6.掌握关系和逻辑运算

7.学会条件运算符和逗号表达式的用法

8.理解表达式副作用产生的原因。

4

Page 88: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

4) 控制结构

1. 顺序结构

2. 选择结构

3. 循环结构

1.掌握 if,if/else 及 switch 的条件结构

2.掌握 while,do…while,for 循环结构及其循环嵌套

3.掌握 break,continue 跳转语句,了解 goto 语句

4.学会用基本结构编写简单的算法

5.学会画流程图,理解结构化编程方法。

8

5) 函数

1.函数声明

2.函数定义

3.函数调用

4. 作用域与生命期

1.掌握各种类型函数的定义,理解函数声明和函数原

型的作用

2.了解函数相互之间的独立性和函数调用的栈机制

3.理解静态局部变量,全局变量和局部变量的差异

4. 理解变量的各种作用域及理解可见性与生命期

5.了解递归函数的调用原理和设计方法

8

6) 数组

1.数组的定义与初始化

2.数组元素的访问

3.数组与函数

4.数组的应用

1.掌握数组定义、初始化和元素的访问

2.理解向函数传递数组的实质

3.理解二维数组的定义、初始化与元素访问

4.了解数组应用问题,如最简单的冒泡排序,

学会最常用的插入排序

6

7) 指针

1.指针与变量

2.指针与函数

3.指针与字符串

1.掌握指针的概念,学会定义指针、间接引用指针

和指针初始化方法

2.掌握指针运算的方法,指针与数组的区别与联系

4.掌握指针作为参数,作为函数返回的用法,理解

void 指针的意义

5.学会堆内存操作

6.了解字符指针,学会字符串的赋值、比较、复制

等操作

7.了解指针数组和函数指针的使用

8

8) 结构体

1.结构体的定义

2.结构体变量的使用

3.链表

1.学会结构定义与初始化方法,指向结构的指针操作

2.学会定义结构数组,传递结构参数和传递结构的

引用之方法

3.学会返回一个结构和返回一个结构引用的方法

4.了解链表结构和常用操作:遍历结点,创建链表,

插入结点和删除结点

6

9) 文件

1.文件的基本概念

2.文件的基本操作

1.学会文件的概念,文件的打开与关闭,文件的顺

序读写

2.了解文件的随机读写,文件读写的出错检测

2

(二)课外学习内容及要求

序号 具体内容 要求 教学

考核方式

1 深入理解 C语言的运

算符与表达式

运用各种常用运算符正确

构造算术及逻辑表达式

2

2

课后作业

2 利用基本结构构造较 熟练运用基本结构构造各 课后作业

Page 89: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

为复杂的算法 种算法 4 4

3 利用函数构造和规划

程序

熟练掌握设计函数的方法

正确实现函数的嵌套调用

理解递归函数

6 4

课后作业

4

深入理解数组的特点

掌握利用数组构造的经典

算法:排序、查找及字符

7 6 课后作业

小型项目

5

指针的基本用法

理解指向各种类型数

据的指针、指针与函

数的关系

熟练掌握通过指针向函数

传递数据的方法

理解二级指针的用法

了解指向函数的指针

9 8

课后作业

小型项目

6 了解复杂数据结构

理解链表特点

基本掌握构造链表的方法

应用链表构造算法

10 6

课后作业

小型项目

Page 90: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目

类型

教学

周 项目内容 项目成果

实施

方法

课内

学时

考核

方式

实践

场所 实验类型

1 基本数据类

型与表达式

单元

项目 2

面向简单数学或逻辑问题

利用基本类型的变量、表达式及语句构建简

单的程序

程序代码 上机

实验 4

课程

作业

课堂、

课下

验证型

2 控制结构 单元

项目 3-4

面向简单数学或逻辑问题

利用顺序、选择及循环结构构造程序

流程图

程序代码

上 机

实验 8

课程

作业

课堂、

课下

验证型、

综合型

3 函数应用 单元

项目 5-6

面向复杂数学或逻辑问题

利用函数规划程序

流程图

程序代码

上 机

实验 6

课程

作业

课堂、

课下

综合型、

验证型

4 数组应用 单元

项目 6-7

面向复杂数学或逻辑问题

利用数组构造算法

流程图

程序代码

上 机

实验 4

课程

作业

课堂、

课下

综合型、

验证型

5 指针应用 单元

项目 8

面向简单科学或工程问题

利用指针向函数传递数据 程序代码

上 机

实验 6

课程

作业

课堂、

课下

综合型、

验证型

6 结构体应用 单元

项目 9

面向简单科学或工程问题

利用指针向函数传递数据 程序代码

上 机

实验 4 课程

作业

课堂、

课下

综合型、

验证型

7 小项目开发 综合

项目 10

面向简单科学或工程问题

设计小型游戏或信息管理系统 项目报告

上 机

实验 4 课程

作业 课后

综合型

实验

Page 91: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力

目标

掌握

程度 教学实施

各教学环节学时分配

理论教学 实践教学 课

1

C

1.1

程序设计的基本概

最简单 C 程序结构,

编程环境,学会最简单程序开

5-1

初级 了解 自主学习 2 2

1.2

C 程序基本特征

了解函数的使用和概念,

体会 C 语言的特点

1-2

初级 了解 自主学习 2 2

2

2.1 数据类型

基本数据类型的存储方式、数

据表示范围以及特点

1-2

初级 掌握

讲授演示

自主学习 1 1

2.2 常量与变量

变量定义、初始化及使用方法

各种类型的常量的使用方法

字面常量与符号常量的区别

变量与常量的区别

1-2

初级 掌握

讲授演示

自主学习 1 1 2

2.3 基本输入输出

操作

常用 I/O 操作

输出输入的格式控制

1-2

初级 掌握

讲授演示

自主学习 1 1 2

作业 1 基本类型的数据的基本操作 1-2

5-1 应用 自主学习 1 1

Page 92: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

3

3.1 理解表达式

常用运算符的重量

运算符的分类

运算符的优先级和结合性

1 - 2

初级 了解 讲授

自主学习 1 1

3.2 表达式运算规

算术运算及表达式

赋值及复合赋值运算

隐式转换和强制类型转换

增量和减量操作

关系和逻辑运算

其他运算符

1 - 2

初级

掌握

应用

讲授演示

自主学习 2 2 4

上机实验 基本类型的数据的基本操作 1-2

5-1

应用

自主学习 4 4

4

4.1 结构化程序设

面向过程程序设计思想

三种基本控制结构

绘制基本流程图

1 - 2

初级 理解

应用 自主学习 1 1 2

4.2 选择结构

双分支选择结构

if,if/else 语句

多分支选择结构

嵌套 if 及 switch 语句

1 - 2

初级

5 - 1

初级

掌握

应用

讲授演示

自主学习 2.5 3 5.5

4.3 循环结构

简单循环结构

while,do…while,for 语句

循环嵌套

循环条件

1 - 2

初级

5-1

初级

掌握

运用

讲授演示

自主学习 3.5 4 7.5

上机测试 A 基本控制结构

1-2

3-3

5-1

运用 上机测试 4 4

Page 93: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

5

5.1函数声明、 定

义与调用

各种类型函数的定义

函数声明和函数原型的作用

函数的调用原理和设计方法

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 6 4 10

5.2 作用域及与生

命期

静态局部变量,全局变量和

局部变量的使用及差异

变量的各种作用域与生命期

1 - 2

中级

掌握

/

讲授演示

自主学习 2 1 3

上机测试 B 函数的设计与应用

1-2

3-3

5-1

运用 上机测试

2 2

6

6.1数组的定义及元

素的访问

一维数组定义、初始化和元

素的访问

二维数组的定义、初始化与

元素访问

1 - 2

中级

5 - 1

初级

掌握

运用

讲授演示

2 2 4

6.2 数组的应用

数组应用算法

如排序及查找

1-2

3-3

5-1

掌握

运用

讲授演示

自主学习 5 5

上机测试 c 数组应用

1-2

3-3

5-1

运用 上机测试 2 2

7

7.1 指针与变量

指针的概念,定义、间接引

用指针和指针初始化方法

指向各种基本类型变量的指针

指针运算的方法

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 2

2

Page 94: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

7.2 指针与函数

按地址传递,指针作为参数

指针作为函数返回的用法

指向数组元素的指针

向函数传递数组

指向函数的指针

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 3 3

7.3 指针与字符串

指向字符串的指针

字符串的赋值、比较、复制等

操作

指针数组与二级指针

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 3 3

8

8.1 结构体的定义

结构体定义

结构体变量及指针相关操作

1 - 2

初级

掌握

运用

讲授演示

2 2 4

8.2结构体类型的使

向函数传递结构体

定义结构数组,传递结构数

和传递结构的引用之方法

1 - 2

中级

掌握

运用

讲授演示

自主学习

2 2 4

8.3 简单链表 定义链表及相关操作 1-2

3-3

5-1

掌握

运用

讲授演示

自主学习 2 2

作业 2 结构体的应用 运用 9

文件的基本概念和

操作

文件的概念

文件的打开与关闭

文件的顺序读写与随机读写

文件读写操作及出错检测

1 - 2

中级

了解

理解

讲授演示

自主学习 2 2

作业 3 面向过程设计方法

1-2

3-3

5-1

合计 48 36 84

Page 95: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程程序设计的基础知识讲解、案例

分析以及项目实践,不断提升学生程序设计能力。以课堂讲授、课堂练习和测试、实验

等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

作业 1 基本类型及表达式 上机检查 第 3 周 5%

作业 2 结构体应用 上机检查 第 8 周 5%

作业 3 面向过程设计方法 项目报告 第 10 周 5%

测验 A 控制结构 上机测试 第 4 周 5%

测验 B 函数设计 上机测试 第 5 周 5%

测验 C 数组应用 上机测试 第 6 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 96: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1-②中级、3-③ 初级、5-①初级 占总成绩 15%

测试 A-C 1-②中级、3-③ 初级、5-①初级 占总成绩 15%

期末考试 1-②中级 、3-③ 初级 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

■ 电子版

试题类型、题数、

分值比例

单项选择题:

15 个、30%

问答题:

5-6个、30%

程序填空:

5个、20%

程序设计题

3 个,20%

其 他:

个 %

试题难易程度

基本题: 50% 灵活题:30% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(95%)

备注

(四)总成绩评定标准

平时成绩(30 分)+ 期末试卷(100 分)×70%

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

Page 97: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.2

制定人签字:田琳琳

审核人签字:孔维强

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

Page 98: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090430012

2. 课程中文名称: 程序设计基础与 C程序设计

3. 课程英文名称: Foundation of Programing Design and C Language

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程/网络工程类

7. 开课学期: 第一学年第 1学期

8. 先修课程: 《计算机文化基础》或《计算机导论》

9. 后继课程: 《面向对象程序设计与 C++》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

76 48 36 10 4 16

二、任课教师

樊鑫(教授)、刘斌(副教授)、王祎(讲师)、徐睿(副教授)、蒋光远(工程师)、

田琳琳(讲师)

三、教材及主要参考资料

教 材: 蒋光远, 田琳琳编著.《C程序设计快速进阶大学教程》,清华大

学出版社,2010.

参考资料: 谭浩强编著. 《C程序设计》(第 4版),清华大学出版社.

Brian W. Kernighan & Dennis M. Ritchie.《C 程序设计语言

(第二版)》,机械工业出版社.

Harvey M.Deitel, Paul J.Deitel. 《C程序设计经典教程(第

四版)》,清华大学出版社.

四、课程简介

本课程重点讲授计算机程序设计的基础知识、C 语言的基本概念、顺序结构程序设

计、分支结构程序设计、循环结构设计、函数、指针、数组、结构、联合以及枚举类型、

编译预处理、位运算、文件等内容,掌握利用 C语言进行程序设计的基本方法,以及 C

语言编程技巧。通过课后复习及上机编程实践环节,使学生打下程序设计的较扎实的基

Page 99: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

础。教学的主要目的是培养学生利用计算机解决和处理本专业实际问题的思维方法和初

步能力,掌握面向过程程序设计的方法,为后续课程的学习打下基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将高

等数理基础、工程技术基

础、社会科学基础和软件工

程专业知识用于解决软件

工程及应用领域的复杂工

程问题。

2.掌握软件工程基础及专

业知识。

(中级能力)

应用面向过程程序设计的

方式解决科学及工程问题

的能力。

3. 设计 /开发解决方

案:能够设计针对复杂软件

工程问题的解决方案,设计

满足软件工程及应用领域

的特定需求的系统、组件或

模型;并能够在系统设计与

开发过程中体现创新意识,

考虑社会、健康、安全、法

律、文化以及环境等因素。

3.构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

(初级级力)

通过上机实验理解程序设

计的基本方法和软件开发

的基本步骤

5. 使用现代工具:能够

针对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

1.了解现代软件开发工具

如开发平台、测试平台、配

置管理软件和项目管理软

件的使用方法。

(初级能力)

掌握使用相关 IDE 开发 C

程序的方法以及调试程序

基本方法

(二)教学目标

目标内容 具体目标

专业知识

理解面向过程程序设计的思想

理解结构化程序设计的方法

掌握基本类型、数组等简单数据类型

熟练运用三种基本结构构造算法

理解函数的功能,正确定义与调用函数

Page 100: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

专业技能

理解结构化程序设计的方法

掌握流程图的基本绘制方法

熟练运用函数构造程序

掌握基本的程序调试和测试的方法

(三)教学任务

4. 通过理论教学讲授程序设计的基础知识,使学生熟练掌握 C 语言的基本语法,

初步具备计算机高级语言进行程序设计的能力。

5. 通过理论教学讲授面向过程程序设计的思想和方法,使学生理解面向过程设计

的思想,培养使用结构化方法开发程序开发的能力。

6. 通过实验教学训练学生具备程序设计基本技能,熟练掌握常用 C 程序开发平

台的使用,掌握调试与测试程序的方法。

4. 通过实践教学培养学生的计算机思维和基本职业素养,培养兼具计算机科学理

论探索精神与能力和软件工程创新精神与素质的软件工程师。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

教学内容 教学要求 学

10) C 概述

1.程序设计的基本概念

2.C 语言的基本特征

1.了解最简单程序结构及函数的使用和概念

2.学会最简单程序开发,熟悉编程环境 4

11) 基本数据类型

与输入输出

4. 数据类型

5. 常量与变量

6. 输入输出操作

1.了解基本数据类型和常量的表示范围

2.掌握变量定义与初始化

3.学会常用 I/O 输出的格式控制

2

12) 表达式和语句

1.常用运算符

2.表达式运算规则

1.掌握运算符优先级和结合性,表达式,左值表达式

2.理解算术运算和赋值缩写的区别

3. 理解隐式转换和强制转换,理解不同的操作数影响操

作符的意义

4. 理解数据超过该数据类型表示范围时的溢出

5. 掌握增量和减量操作

6.掌握关系和逻辑运算

7.学会条件运算符和逗号表达式的用法

8.理解表达式副作用产生的原因。

4

Page 101: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

13) 控制结构

4. 顺序结构

5. 选择结构

6. 循环结构

1.掌握 if,if/else 及 switch 的条件结构

2.掌握 while,do…while,for 循环结构及其循环嵌套

3.掌握 break,continue 跳转语句,了解 goto 语句

4.学会用基本结构编写简单的算法

5.学会画流程图,理解结构化编程方法。

8

14) 函数

1.函数声明

2.函数定义

3.函数调用

4. 作用域与生命期

1.掌握各种类型函数的定义,理解函数声明和函数原

型的作用

2.了解函数相互之间的独立性和函数调用的栈机制

3.理解静态局部变量,全局变量和局部变量的差异

4. 理解变量的各种作用域及理解可见性与生命期

5.了解递归函数的调用原理和设计方法

8

15) 数组

1.数组的定义与初始化

2.数组元素的访问

3.数组与函数

4.数组的应用

1.掌握数组定义、初始化和元素的访问

2.理解向函数传递数组的实质

3.理解二维数组的定义、初始化与元素访问

4.了解数组应用问题,如最简单的冒泡排序,

学会最常用的插入排序

6

16) 指针

1.指针与变量

2.指针与函数

3.指针与字符串

1.掌握指针的概念,学会定义指针、间接引用指针

和指针初始化方法

2.掌握指针运算的方法,指针与数组的区别与联系

4.掌握指针作为参数,作为函数返回的用法,理解

void 指针的意义

5.学会堆内存操作

6.了解字符指针,学会字符串的赋值、比较、复制

等操作

7.了解指针数组和函数指针的使用

8

17) 结构体

1.结构体的定义

2.结构体变量的使用

3.链表

1.学会结构定义与初始化方法,指向结构的指针操作

2.学会定义结构数组,传递结构参数和传递结构的

引用之方法

3.学会返回一个结构和返回一个结构引用的方法

4.了解链表结构和常用操作:遍历结点,创建链表,

插入结点和删除结点

6

18) 文件

1.文件的基本概念

2.文件的基本操作

1.学会文件的概念,文件的打开与关闭,文件的顺

序读写

2.了解文件的随机读写,文件读写的出错检测

2

(二)课外学习内容及要求

序号 具体内容 要求 教学

考核方式

1 深入理解 C语言的运

算符与表达式

运用各种常用运算符正确

构造算术及逻辑表达式

2

2

课后作业

2 利用基本结构构造较 熟练运用基本结构构造各 课后作业

Page 102: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

为复杂的算法 种算法 4 4

3 利用函数构造和规划

程序

熟练掌握设计函数的方法

正确实现函数的嵌套调用

理解递归函数

6 4

课后作业

4

深入理解数组的特点

掌握利用数组构造的经典

算法:排序、查找及字符

7 6 课后作业

小型项目

5

指针的基本用法

理解指向各种类型数

据的指针、指针与函

数的关系

熟练掌握通过指针向函数

传递数据的方法

理解二级指针的用法

了解指向函数的指针

9 8

课后作业

小型项目

6 了解复杂数据结构

理解链表特点

基本掌握构造链表的方法

应用链表构造算法

10 6

课后作业

小型项目

Page 103: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目

类型

教学

周 项目内容 项目成果

实施

方法

课内

学时

考核

方式

实践

场所 实验类型

1 基本数据类

型与表达式

单元

项目 2

面向简单数学或逻辑问题

利用基本类型的变量、表达式及语句构建简

单的程序

程序代码 上机

实验 4

课程

作业

课堂、

课下

验证型

2 控制结构 单元

项目 3-4

面向简单数学或逻辑问题

利用顺序、选择及循环结构构造程序

流程图

程序代码

上 机

实验 8

课程

作业

课堂、

课下

验证型、

综合型

3 函数应用 单元

项目 5-6

面向复杂数学或逻辑问题

利用函数规划程序

流程图

程序代码

上 机

实验 6

课程

作业

课堂、

课下

综合型、

验证型

4 数组应用 单元

项目 6-7

面向复杂数学或逻辑问题

利用数组构造算法

流程图

程序代码

上 机

实验 4

课程

作业

课堂、

课下

综合型、

验证型

5 指针应用 单元

项目 8

面向简单科学或工程问题

利用指针向函数传递数据 程序代码

上 机

实验 6

课程

作业

课堂、

课下

综合型、

验证型

6 结构体应用 单元

项目 9

面向简单科学或工程问题

利用指针向函数传递数据 程序代码

上 机

实验 4 课程

作业

课堂、

课下

综合型、

验证型

7 小项目开发 综合

项目 10

面向简单科学或工程问题

设计小型游戏或信息管理系统 项目报告

上 机

实验 4 课程

作业 课后

综合型

实验

Page 104: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力

目标

掌握

程度 教学实施

各教学环节学时分配

理论教学 实践教学 课

1

C

1.1

程序设计的基本概

最简单 C 程序结构,

编程环境,学会最简单程序开

5-1

初级 了解 自主学习 2 1 2 1

1.2

C 程序基本特征

了解函数的使用和概念,

体会 C 语言的特点

1-2

初级 了解 自主学习 2 1 2 1

2

2.1 数据类型

基本数据类型的存储方式、数

据表示范围以及特点

1-2

初级 掌握

讲授演示

自主学习 1 1

2.2 常量与变量

变量定义、初始化及使用方法

各种类型的常量的使用方法

字面常量与符号常量的区别

变量与常量的区别

1-2

初级 掌握

讲授演示

自主学习 0.5 1 0.5 1.5 0.5

2.3 基本输入输出

操作

常用 I/O 操作

输出输入的格式控制

1-2

初级 掌握

讲授演示

自主学习 0.5 1 0.5 1.5 0.5

作业 1 基本类型的数据的基本操作 1-2

5-1

应用

自主学习

Page 105: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

3

3.1 理解表达式

常用运算符的重量

运算符的分类

运算符的优先级和结合性

1 - 2

初级 了解 讲授

自主学习 1 1

3.2 表达式运算规

算术运算及表达式

赋值及复合赋值运算

隐式转换和强制类型转换

增量和减量操作

关系和逻辑运算

其他运算符

1 - 2

初级

掌握

应用

讲授演示

自主学习 2 1 2 1 5 1

上机实验 基本类型的数据的基本操作 1-2

5-1

应用

自主学习 4 4

4

4.1 结构化程序设

面向过程程序设计思想

三种基本控制结构

绘制基本流程图

1 - 2

初级 理解

应用 自主学习 1 1 1 1 1

4.2 选择结构

双分支选择结构

if,if/else 语句

多分支选择结构

嵌套 if 及 switch 语句

1 - 2

初级

5 - 1

初级

掌握

应用

讲授演示

自主学习 2 0.5 3 1 1 1

4.3 循环结构

简单循环结构

while,do…while,for 语句

循环嵌套

循环条件

1 - 2

初级

5-1

初级

掌握

运用

讲授演示

自主学习 3 0.5 4 2 4 2

上机测试 A 基本控制结构

1-2

3-3

5-1

运用 上机测试

4 4

Page 106: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

5

5.1函数声明、 定

义与调用

各种类型函数的定义

函数声明和函数原型的作用

函数的调用原理和设计方法

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 5 1 4 4 6 4

5.2 作用域及与生

命期

静态局部变量,全局变量和

局部变量的使用及差异

变量的各种作用域与生命期

1 - 2

中级

掌握

/

讲授演示

自主学习 2 1 3

上机测试 B 函数的设计与应用

1-2

3-3

5-1

运用 上机测试

4 1

6

6.1数组的定义及元

素的访问

一维数组定义、初始化和元

素的访问

二维数组的定义、初始化与

元素访问

1 - 2

中级

5 - 1

初级

掌握

运用

讲授演示

2

2

2

4

6.2 数组的应用

数组应用算法

如排序及查找

1-2

3-3

5-1

掌握

运用

讲授演示

自主学习 4 2 4 4 4

上机测试 c 数组应用

1-2

3-3

5-1

运用 上机测试

4 4

7

7.1 指针与变量

指针的概念,定义、间接引

用指针和指针初始化方法

指向各种基本类型变量的指针

指针运算的方法

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 2

2 2 4 2

Page 107: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

7.2 指针与函数

按地址传递,指针作为参数

指针作为函数返回的用法

指向数组元素的指针

向函数传递数组

指向函数的指针

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 3 2 2 4 2

7.3 指针与字符串

指向字符串的指针

字符串的赋值、比较、复制等

操作

指针数组与二级指针

1 - 2

中级

5-1

初级

掌握

运用

讲授演示

自主学习 3 2 4 4 4

8

8.1 结构体的定义

结构体定义

结构体变量及指针相关操作

1 - 2

初级

掌握

运用

讲授演示

2 2 4

8.2结构体类型的使

向函数传递结构体

定义结构数组,传递结构数

和传递结构的引用之方法

1 - 2

中级

掌握

运用

讲授演示

自主学习

2 2 4

8.3 简单链表 定义链表及相关操作 1-2

3-3

5-1

掌握

运用

讲授演示

自主学习 2 6 6

作业 2 结构体的应用 运用 9

文件的基本概念和

操作

文件的概念

文件的打开与关闭

文件的顺序读写与随机读写

文件读写操作及出错检测

1 - 2

中级

了解

理解

讲授演示

自主学习 2 2

作业 3 面向过程设计方法

1-2

3-3

5-1

合计 48 36 20 84 20

Page 108: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

108

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程程序设计的基础知识讲解、案例

分析以及项目实践,不断提升学生程序设计能力。以课堂讲授、课堂练习和测试、实验

等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

作业 1 基本类型及表达式 上机检查 第 3 周 5%

作业 2 结构体应用 上机检查 第 8 周 5%

作业 3 面向过程设计方法 项目报告 第 10 周 5%

测验 A 控制结构 上机测试 第 4 周 5%

测验 B 函数设计 上机测试 第 5 周 5%

测验 C 数组应用 上机测试 第 6 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 109: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

109

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1-②中级、3-③ 初级、5-①初级 占总成绩 15%

测试 A-C 1-②中级、3-③ 初级、5-①初级 占总成绩 15%

期末考试 1-②中级 、3-③ 初级 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

■ 电子版

试题类型、题数、

分值比例

单项选择题:

15 个、30%

问答题:

5-6个、30%

程序填空:

5个、20%

程序设计题

3 个,20%

其 他:

个 %

试题难易程度

基本题: 50% 灵活题:30% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(95%)

备注

(四)总成绩评定标准

平时成绩(30 分)+ 期末试卷(100 分)×70%

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

Page 110: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

110

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.2

制定人签字:田琳琳

审核人签字:孔维强

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 111: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

111

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090430010

2. 课程中文名称: 程序设计基础与 C程序设计

3. 课程英文名称: Foundation of ProgramingDesign and C Language

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程/网络工程类

7. 开课学期: 第一学年第 1学期

8. 先修课程: 《计算机文化基础》或《计算机导论》

9. 后继课程: 《面向对象程序设计与 C++》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

76 40 36 10 4 16

二、任课教师

刘斌(副教授)、田琳琳(讲师)、许真珍(讲师)、王祎(讲师)、徐博(讲师)

三、教材及主要参考资料

教材: 蒋光远, 田琳琳编著.《C程序设计快速进阶大学教程》,清华大

学出版社,2010.

参考资料: 谭浩强编著. 《C程序设计》(第 4版),清华大学出版社.

Brian W. Kernighan & Dennis M. Ritchie.《C 程序设计语言

(第二版)》,机械工业出版社.

Harvey M.Deitel, Paul J.Deitel. 《C程序设计经典教程(第

四版)》,清华大学出版社.

四、课程简介

本课程重点讲授计算机程序设计的基础知识、C 语言的基本概念、顺序结构程序设

计、分支结构程序设计、循环结构设计、函数、指针、数组、结构、联合以及枚举类型、

编译预处理、位运算、文件等内容,掌握利用 C语言进行程序设计的基本方法,以及 C

Page 112: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

112

语言编程技巧。通过课后复习及上机编程实践环节,使学生打下程序设计的较扎实的基

础。教学的主要目的是培养学生利用计算机解决和处理本专业实际问题的思维方法和初

步能力,掌握面向过程程序设计的方法,为后续课程的学习打下基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:

能够将数学、自然科学、工

程基础和专业知识用于解

决复杂工程问题。

②掌握软件工程基础及专

业知识

(初级能力)

应用面向过程程序设计的

方式解决科学及工程问题

的能力。

12.终身学习:

具有自主学习和终身学习

的意识,有不断学习和适应

发展的能力。

① 具有自主学习和终身学

习的意识

(高级能力)

通过上机实验理解程序设

计的基本概念

通过查阅资料学习 C 语言

知识点及相关技术

(二)教学目标

目标内容 具体目标

专业知识

理解面向过程程序设计的思想

理解结构化程序设计的方法

掌握基本类型、数组等简单数据类型

熟练运用三种基本结构构造算法

理解函数的功能,正确定义与调用函数

专业技能

理解结构化程序设计的方法

掌握流程图的基本绘制方法

熟练运用函数构造程序

掌握基本的程序调试和测试的方法

(三)教学任务

7. 通过理论教学讲授程序设计的基础知识,使学生熟练掌握 C 语言的基本语法,

初步具备计算机高级语言进行程序设计的能力。

8. 通过理论教学讲授面向过程程序设计的思想和方法,使学生理解面向过程设计

的思想,培养使用结构化方法开发程序开发的能力。

9. 通过实验教学训练学生具备程序设计基本技能,熟练掌握常用 C 程序开发平

Page 113: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

113

台的使用,掌握调试与测试程序的方法。

4. 通过实践教学培养学生的计算机思维和基本职业素养,培养兼具计算机科学理

论探索精神与能力和软件工程创新精神与素质的软件工程师。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

教学内容 教学要求 学

19) C 概述

1.程序设计的基本概念

2.C 语言的基本特征

1.了解最简单程序结构及函数的使用和概念

2.学会最简单程序开发,熟悉编程环境 2

20) 基本数据类型

与输入输出

7. 数据类型

8. 常量与变量

9. 输入输出操作

1.了解基本数据类型和常量的表示范围

2.掌握变量定义与初始化

3.学会常用 I/O 输出的格式控制

2

21) 表达式和语句

1.常用运算符

2.表达式运算规则

1.掌握运算符优先级和结合性,表达式,左值表达式

2.理解算术运算和赋值缩写的区别

3. 理解隐式转换和强制转换,理解不同的操作数影响操

作符的意义

4. 理解数据超过该数据类型表示范围时的溢出

5. 掌握增量和减量操作

6.掌握关系和逻辑运算

7.学会条件运算符和逗号表达式的用法

8.理解表达式副作用产生的原因。

4

22) 控制结构

7. 顺序结构

8. 选择结构

9. 循环结构

1.掌握 if,if/else 及 switch 的条件结构

2.掌握 while,do…while,for 循环结构及其循环嵌套

3.掌握 break,continue 跳转语句,了解 goto 语句

4.学会用基本结构编写简单的算法

5.学会画流程图,理解结构化编程方法。

8

23) 函数

1.函数声明

2.函数定义

3.函数调用

4. 作用域与生命期

1.掌握各种类型函数的定义,理解函数声明和函数原

型的作用

2.了解函数相互之间的独立性和函数调用的栈机制

3.理解静态局部变量,全局变量和局部变量的差异

4. 理解变量的各种作用域及理解可见性与生命期

5.了解递归函数的调用原理和设计方法

8

24) 数组

1.数组的定义与初始化

2.数组元素的访问

3.数组与函数

1.掌握数组定义、初始化和元素的访问

2.理解向函数传递数组的实质

3.理解二维数组的定义、初始化与元素访问

4.了解数组应用问题,如最简单的冒泡排序,

4

Page 114: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

114

4.数组的应用 学会最常用的插入排序

25) 指针

1.指针与变量

2.指针与函数

3.指针与字符串

1.掌握指针的概念,学会定义指针、间接引用指针

和指针初始化方法

2.掌握指针运算的方法,指针与数组的区别与联系

4.掌握指针作为参数,作为函数返回的用法,理解

void 指针的意义

5.学会堆内存操作

6.了解字符指针,学会字符串的赋值、比较、复制

等操作

7.了解指针数组和函数指针的使用

6

26) 结构体

1.结构体的定义

2.结构体变量的使用

3.链表

1.学会结构定义与初始化方法,指向结构的指针操作

2.学会定义结构数组,传递结构参数和传递结构的

引用之方法

3.学会返回一个结构和返回一个结构引用的方法

4.了解链表结构和常用操作:遍历结点,创建链表,

插入结点和删除结点

4

27) 文件

1.文件的基本概念

2.文件的基本操作

1.学会文件的概念,文件的打开与关闭,文件的顺

序读写

2.了解文件的随机读写,文件读写的出错检测

2

(二)课外学习内容及要求

序号 具体内容 要求 教学

考核方式

1 深入理解 C语言的运

算符与表达式

运用各种常用运算符正确

构造算术及逻辑表达式

2

2

课后作业

2 利用基本结构构造较

为复杂的算法

熟练运用基本结构构造各

种算法

4

4

课后作业

3 利用函数构造和规划

程序

熟练掌握设计函数的方法

正确实现函数的嵌套调用

理解递归函数

6 4

课后作业

4

深入理解数组的特点

掌握利用数组构造的经典

算法:排序、查找及字符

7 6 课后作业

小型项目

5

指针的基本用法

理解指向各种类型数

据的指针、指针与函

数的关系

熟练掌握通过指针向函数

传递数据的方法

理解二级指针的用法

了解指向函数的指针

9 8

课后作业

小型项目

Page 115: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

115

6 了解复杂数据结构

理解链表特点

基本掌握构造链表的方法

应用链表构造算法

10 6

课后作业

小型项目

Page 116: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

116

七、实践项目实施计划表

序号 项目名称 项目

类型

教学

周 项目内容 项目成果

实施

方法

课内

学时

考核

方式

实践

场所 实验类型

1 基本数据类

型与表达式

单元

项目 2

面向简单数学或逻辑问题

利用基本类型的变量、表达式及语句构建简

单的程序

程序代码 上机

实验 4

课程

作业

课堂、

课下

验证型

2 控制结构 单元

项目 3-4

面向简单数学或逻辑问题

利用顺序、选择及循环结构构造程序

流程图

程序代码

上 机

实验 8

课程

作业

课堂、

课下

验证型、

综合型

3 函数应用 单元

项目 5-6

面向复杂数学或逻辑问题

利用函数规划程序

流程图

程序代码

上 机

实验 6

课程

作业

课堂、

课下

综合型、

验证型

4 数组应用 单元

项目 6-7

面向复杂数学或逻辑问题

利用数组构造算法

流程图

程序代码

上 机

实验 4

课程

作业

课堂、

课下

综合型、

验证型

5 指针应用 单元

项目 8

面向简单科学或工程问题

利用指针向函数传递数据 程序代码

上 机

实验 6

课程

作业

课堂、

课下

综合型、

验证型

6 结构体应用 单元

项目 9

面向简单科学或工程问题

利用指针向函数传递数据 程序代码

上 机

实验 4 课程

作业

课堂、

课下

综合型、

验证型

7 小项目开发 综合

项目 10

面向简单科学或工程问题

设计小型游戏或信息管理系统 项目报告

上 机

实验 4 课程

作业 课后

综合型

实验

Page 117: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

117

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力

目标

掌握

程度 教学实施

各教学环节学时分配

理论教学 实践教学 课

1

C

1.1

程序设计的基本概

最简单 C 程序结构,

编程环境,学会最简单程序开

12-①

高级 了解 自主学习 1 1 1 1

1.2

C 程序基本特征

了解函数的使用和概念,

体会 C 语言的特点

12-①

高级 了解 自主学习 1 1 1 1

2

2.1 数据类型

基本数据类型的存储方式、数

据表示范围以及特点

1-②

初级 掌握

讲授演示

自主学习 1 1

2.2 常量与变量

变量定义、初始化及使用方法

各种类型的常量的使用方法

字面常量与符号常量的区别

变量与常量的区别

1-②

初级 掌握

讲授演示

自主学习 0.5 1 0.5 1.5 0.5

2.3 基本输入输出

操作

常用 I/O 操作

输出输入的格式控制

1-②

初级

12-①

高级

掌握 讲授演示

自主学习 0.5 1 0.5 1.5 0.5

作业 1 基本类型的数据的基本操作

1-②

初级

应用

自主学习

Page 118: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

118

3

3.1 理解表达式

常用运算符的重量

运算符的分类

运算符的优先级和结合性

1-②

初级 了解

讲授

自主学习 1 1

3.2 表达式运算规

算术运算及表达式

赋值及复合赋值运算

隐式转换和强制类型转换

增量和减量操作

关系和逻辑运算

其他运算符

1-②

初级

掌握

应用

讲授演示

自主学习 2 1 2 1 5 1

上机实验 基本类型的数据的基本操作 1-②

初级

应用

自主学习 4 4

4

4.1 结构化程序设

面向过程程序设计思想

三种基本控制结构

绘制基本流程图

12-①

高级

理解

应用 自主学习 1 1 1 1 1

4.2 选择结构

双分支选择结构

if,if/else 语句

多分支选择结构

嵌套 if 及 switch 语句

1-②

初级

12-①

高级

掌握

应用

讲授演示

自主学习 2 0.5 3 1 1 1

4.3 循环结构

简单循环结构

while,do…while,for 语句

循环嵌套

循环条件

1-②

初级

12-①

高级

掌握

运用

讲授演示

自主学习 3 0.5 4 2 4 2

上机测试 A 基本控制结构 1-②

中级 运用

上机测试

4 4

5 5.1函数声明、定义 各种类型函数的定义 1-② 掌握 讲授演示 5 1 4 4 6 4

Page 119: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

119

与调用 函数声明和函数原型的作用

函数的调用原理和设计方法

中级

12-①

高级

运用 自主学习

5.2 作用域及与生

命期

静态局部变量,全局变量和

局部变量的使用及差异

变量的各种作用域与生命期

1-②

中级

掌握

/

讲授演示

自主学习 2 1 3

上机测试 B 函数的设计与应用

1-②

中级

运用 上机测试

4 1

6

6.1数组的定义及元

素的访问

一维数组定义、初始化和元

素的访问

二维数组的定义、初始化与

元素访问

1-②

中级

掌握

运用

讲授演示

2

2

2

4

6.2 数组的应用

数组应用算法

如排序及查找

1-②

中级

12-①

高级

掌握

运用

讲授演示

自主学习 2 2 4 4 4

上机测试 c 数组应用 1-②

中级 运用

上机测试

4 4

7

7.1 指针与变量

指针的概念,学会定义指针、

间接引用指针和指针初始化

方法

指向各种基本类型变量的指针

指针运算的方法

1-②

中级

12-①

高级

掌握

运用

讲授演示

自主学习 2

2 2 4 2

7.2 指针与函数 按地址传递,指针作为参数 1-② 掌握 2 2 2 4 2

Page 120: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

120

指针作为函数返回的用法

指向数组元素的指针

向函数传递数组

指向函数的指针

中级

12-①

高级

运用 讲授演示

自主学习

7.3 指针与字符串

指向字符串的指针

字符串的赋值、比较、复制等

操作

指针数组与二级指针

1-②

中级

12-①

高级

掌握

运用

讲授演示

自主学习 2 2 4 4 4

8

8.1 结构体的定义

结构体定义

结构体变量及指针相关操作

1-②

中级

掌握

运用

讲授演示

2 2 4

8.2结构体类型的使

向函数传递结构体

定义结构数组,传递结构数

和传递结构的引用之方法

1-②

中级

掌握

运用

讲授演示

自主学习 2 2 4

8.3 简单链表 定义链表及相关操作 12-①

高级

1-②

中级

掌握

运用

讲授演示

自主学习 6 6

作业 2 结构体的应用 运用

9

文件的基本概念和

操作

文件的概念

文件的打开与关闭

文件的顺序读写与随机读写

文件读写操作及出错检测

1-②

中级

12-①

高级

了解

理解

讲授演示

自主学习 2 2

作业 3 面向过程设计方法及 C 语法

合计 40 36 20 76 20

Page 121: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

121

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程程序设计的基础知识讲解、案例

分析以及项目实践,不断提升学生程序设计能力。以课堂讲授、课堂练习和测试、实验

等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

作业 1 基本类型及表达式 上机检查 第 3 周 5%

作业 2 结构体应用 上机检查 第 8 周 5%

作业 3 面向过程设计方法 项目报告 第 10 周 5%

测验 A 控制结构 上机测试 第 4 周 5%

测验 B 函数设计 上机测试 第 5 周 5%

测验 C 数组应用 上机测试 第 6 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 122: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

122

(二)命题要

考核项目 重点考核知识点、技能点 备注

课后作业 1-②中级、12-① 高级 占总成绩 15%

测试 A-C 1-②中级、12-① 高级 占总成绩 15%

期末考试 1-②中级 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□等级制

终结性

考核方式 试卷考试 学生考核提交类型

■纸版

□电子版

□其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

问答题:

5-6个、30%

程序填空:

5个、20%

程序设计题

3 个,20%

其他:

个 %

试题难易程度

基本题:50% 灵活题:30% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(95%)

备注

(四)总成绩评定标准

平时成绩(30 分)+期末试卷(100 分)×70%

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

Page 123: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

123

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:田琳琳

审核人签字:田琳琳

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 6月

Page 124: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

124

《面向对象方法与 C++程序设计》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430022

2. 课程中文名称: 面向对象方法与 C++程序设计

3. 课程英文名称: Oriented Object Programming and C++ language

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程/网络工程类

7. 开课学期: 第一学年第 2学期

8. 先修课程: 《程序设计基础与 C程序设计》

9. 后继课程: 《C/C++课程设计》《数据结构与算法》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

64 40 24 8 3.5 0

二、任课教师

蒋光远(工程师)、刘斌(副教授)、姜国海(工程师)、田琳琳(讲师)、赵小薇(讲师)

三、教材及主要参考资料

教 材: 蒋光远,田琳琳,赵小薇,于红编著.《C++语言程序设计教程》

清华大学出版社, 2011.

参考资料: 郑莉编著.《C++语言程序设计 (第 3 版)》. 清华大学出版社,2011

裘宗燕译.《C++程序设计语言(特别版)》. 机械工业出版社,2009

刘宗田等译《C++编程思想》. 机械工业出版社,2002.

四、课程简介

《C++程序设计语言》是软件工程相关专业的一门专业必修课,通过本课程的理论学习

与实践,使学生通过学习 C++语言的相关语法,掌握面向对象程序的基本概念、原理及设计

Page 125: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

125

方法,理解封装、继承与多态特性,了解模版、重载及异常等面向对象程序的编程技术。教

学的主要目的是培养学生利用程序设计的方法解决实际工程问题及科学问题的,采用面

向对象程序设计思想开发具有一定规模的程序,进一步提升编程能力,为后续课程的学习

打下基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将高

等数理基础、工程技术基

础、社会科学基础和软件工

程专业知识用于解决软件

工程及应用领域的复杂工

程问题。

2.掌握软件工程基础及专

业知识。

(中级能力)

应用面向对象程序设计的

方式解决科学及工程问题

的能力。

3. 设计 /开发解决方

案:能够设计针对复杂软件

工程问题的解决方案,设计

满足软件工程及应用领域

的特定需求的系统、组件或

模型;并能够在系统设计与

开发过程中体现创新意识,

考虑社会、健康、安全、法

律、文化以及环境等因素。

3.构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

(中级级级力)

运用流程图、类图及伪代码

等形式描述设计思路

5. 使用现代工具:能够

针对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

2.掌握开发、选择与使用

现代软件开发工具。

(中级级能力)

掌握使用相关 IDE 开发程

序的方法以及调试程序基

本方法

(二)教学目标

目标内容 具体目标

专业知识

理解面向对象程序设计的思想

理解封装机制,掌握类的设计与实现方法

理解继承机制,掌握类的继承与派生方法

理解多态机制,掌握实现动态及静态多态的方法

Page 126: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

126

理解范型编程机制,掌握模版及 STL相关技术

了解异常机制与基本 IO 操作

专业技能

运用面向对象思想和技术开发程序

掌握类图的基本绘制方法

熟练运用类与对象构造程序

掌握程序调试和测试的方法

(三)教学任务

10. 通过理论教学讲授程序设计相关知识,使学生熟练掌握 C++语言的基本语

法,具备利用计算机高级语言进行程序设计的能力。

11. 通过理论教学讲授面向对象程序设计的技术,使学生理解面向过程设计的思

想,以及与面向过程方法相比的优势。

12. 通过实验教学训练学生具备面向对象程序设计基本技能,熟练掌握常用 C++

程序开发平台的使用,掌握调试与测试程序的方法。

4. 通过实践教学培养学生的计算机思维和基本职业素养,培养兼具计算机科学理

论探索精神与能力和软件工程创新精神与素质的软件工程师。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

教学内容 教学要求 学

28) 面向对象概述

1.面向对象技术的基本概念

2.面向对象技术的基本特征

了解本课程研究的对象、内容

了解面向对象技术的基本概念

掌握 C++对 C 的扩展语法

4

29) 类与对象

10. 类定义及对象定义

11. 构造函数和析构函数

12. 对象数组,指针及 this

13. static ,const 及 friend

掌握类的定义及对象的使用

理解及使用成员函数

定义构造函数和析构函数

了解类中静态成员,常成员以及友元的用法

理解掌握组合类的设计方法

10

30) 运算符重载

1.运算符重载规则

2.常见运算符重载

理解运算符重载的意义

掌握运算符重载规则

掌握常见运算符重载的方法

4

31) 继承与派生

10. 类的继承性与复用

11. 继承访问权限控制

12. 派生类的构造和析构函数

13. 多继承

理解类的继承关系与复用性

掌握继承体系下类成员的访问权限控制

掌握派生类构造及析构函数的定义方式

了解多继承的语法及意义

6

Page 127: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

127

32) 多态性

1.虚函数

2.多态的实现机制

3.纯虚函数与抽象类

掌握虚函数的使用方法

理解多态的实现机制

理解纯虚函数与抽象类

了解多态的设计思想

6

33) 输入输出流

1.流的概念及结构

2.非格式化/格式化 IO

3.文件流

理解流的概念及作用

掌握常用非格式化/格式化输入与输出成员函数

了解文件流的操作方法

6

34) 模板

1.模板的概念

2.函数模板与模板函数

3.类模板与模板类

理解模板的概念及作用

掌握函数模板与模板函数

掌握类模板与模板类的用法

了解 STL

2

35) 异常处理

1.异常处理的基本思想

2.异常处理的实现

理解异常处理的基本思想

掌握异常处理的基本语法 2

(二)课外学习内容及要求

序号 具体内容 要求 教学

考核方式

1 类与对象 深入理解封装机制

正确运用类的组合关系

3

4

课后作业

项目报告

2 继承与派生 深入理解继承机制

正确设计继承体系

5

4

课后作业

项目报告

3 多态性 深入理解多态机制

正确设利用多态特性

7 4 课后作业

项目报告

4 模版与 STL 理解范型编程

了解 STL相关

8 4 自主学习

项目报告

Page 128: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

128

七、实践项目实施计划表

序号 项目名称 项目

类型

教学

周 项目内容 项目成果

实施

方法

课内

学时

考核

方式

实践

场所 实验类型

1 类与对象(1) 单元

项目 2

掌握类的定义及对象的使用

理解及使用成员函数

定义构造函数和析构函数

了解类中静态成员,常成员以及友元的用法

运算符重载应用

程序代码 实验

教学 4

课程

作业

课堂、

课下

验证型

2 类与对象(2) 单元

项目 3

面向科学或工程问题

设计类的组合关系

运算符重载

程序代码

实验

教学

4 课程

作业

课堂、

课下

验证型、

综合型

3 派生与继承 单元

项目 5

面向科学或工程问题

利用继承设计类的关系

程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

4 多态性 单元

项目 6

面向科学或工程问题

利用多态性构造程序 程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

5 模版 单元

项目 8

面向科学或工程问题

应用类模版或函数模版 程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

6 小项目开发 综合

项目 10

面向较复杂科学或工程问题

开发小型游戏或信息管理系统 项目报告

实践

教学 4

课程

作业

课堂、

课下

综合型

实验

Page 129: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

129

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力

目标

掌握

程度 教学实施

各教学环节学时分配

理论教学 实践教学

课内

小计

1

概述

1.1 面向对象

的基本概念

本课程研究的对象、内容

面向对象技术的基本概念及特征

1-②

5-②

中级

了解 讲授演示

自主学习 1 1

1.2

从 C到 C++ C++面向过程部分的扩展语法

掌握

了解

讲授演示

自主学习 3 3

2

类与

对象

2.1 类定义及

对象定义

掌握类的定义及对象的使用

理解及使用成员函数

1-②

5-②

中级

掌握

应用

讲授演示

自主学习 2 2 4

2.2 构造函数

和析构函数

构造函数的特点

定默认、有参构造和复制构造函数

析构函数的特点、定义和调用

1-②

5-②

中级

掌握

应用

讲授演示

自主学习 2 2 4

2.3 复杂对象

对象数组,指针及 this

组合类的设计方法

3-③

中级

掌握

应用

讲授演示

自主学习 4 2 6

2.4 数据共享

和保护

类中静态成员,常成员以及友元的用

法 static ,const 及 friend

5-②

中级 了解 讲授演示

自主学习 2 2 4

3

运算

3.1 运算符重

载规则

运算符重载的意义

运算符重载规则

2-②

中级 理解

讲授

自主学习 1 1 2

Page 130: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

130

符重

载 3.2 常见运算

符重载

常见运算符重载的方法:

算术运算符、关系和逻辑运算符

赋值、增量和下标运算符

1-②

5-②

中级

掌握

应用

讲授演示

自主学习 3 2 5

测试 A 类的封装性

2-②

3-③

5-②

应用 上机测试 1 1

4

继承

与派

4.1 类的继承 继承的相关概念

继承的语法实现

1-②

中级

理解

应用

讲授演示

自主学习 1 1 2

4.2 继承访问

权限控制

掌握继承体系下类成员的访问权限控

1-②

中级 掌握

讲授演示

自主学习 1 1 2

4.3 派生类构

造和析构函数

派生类构造及析构函数的定义方式 2-②

中级

掌握

应用

讲授演示

自主学习 1 1 2

4.4 多继承

多继承的意义

多继承的语法

多继承的数据访问问题

1-②

中级 了解 讲授演示

自主学习 1 1 2

4.5 案例分析

类的继承关系与复用性

2-②

3-③

5-②

应用 讲授演示

自主学习 2 2

5

多态

5.1多态的基

本概念

静态多态的实现

虚函数与动态动态多态

实现多态的意义

1-②

5-②

中级

理解 讲授演示

自主学习 1 1

5.2 动态多态

的实现 动态多态实现的语法要素

1-②

5-②

3-③

掌握

应用

讲授演示

自主学习 2 1 3

5.3 纯虚函数

与抽象类

纯虚函数的语法和意义

抽象类的用法和意义

1-②

5-② 理解

讲授演示

自主学习 1 1 2

Page 131: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

131

5.4 多态应用 案例分析 1-②

3-③ 运用

讲授演示

自主学习 2 2

测试 B 继承与多态

1-②

5-②

3-③

运用 上机测试

1 1

6

输入

输出

6.1 IO流的概

念及结构 输入输出流的概念及作用

1-②

5-②

中级

理解 讲授演示

自主学习 2 2

6.2 基本 IO

操作

常用非格式化/格式化 IO 操作相

关成员函数

掌握

运用

讲授演示

自主学习 2 2

6.3 文件流

文件打开与关闭

文件的读写操作

文件状态检测

掌握

运用

讲授演示

自主学习 2 1 3

作业 2 基本 IO 操作 应用

7

模板

7.1 模板的概

模板的概念及作用

范型编程的基本概念

1-②

5-②

中级

理解 讲授演示

自主学习 1 1 2

7.2 函数模版

与类模版

函数模板与模板函数

类模板与模板类的用法

标准模版库 STL

掌握

了解

讲授演示

自主学习 1 3 4

作业 3 模版的使用 应用

8

异常

8.1 异常处理

的基本思想 异常处理的实现

1-②

5-②

中级

理解 讲授演示

自主学习 1 1

8.2 异常处理

的实现 常处理的基本语法

1-②

5-②

中级

掌握

运用

讲授演示

自主学习 1 1

合计 40 24 64 0

Page 132: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

132

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课通过面向对象程序设计的基础知识

讲解、案例分析以及项目实践,不断提升学生程序设计能力。以课堂讲授、课堂练习和

测试、实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

平时考核

作业 每章课后练习上机题目 上机检查 第 3-8 周 15%

测验 A 类的封装机制 上机测试 第 4 周 5%

测验 B 继承与多态性 上机测试 第 6 周 5%

小组项目 面向对象三大特性 项目报告 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 书面考试 考试周 70 %

(二)命题要求

Page 133: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

133

考核项目 重点考核知识点、技能点 备注

课后作业 1-②、5-②、 3-③ 占总成绩 15%

上机测试 1-②、5-②、 3-③ 占总成绩 10%

小组项目 1-②、5-②、 3-③ 占总成绩 5%

期末考试 1-②、5-②、 3-③ 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

问答题:

5个、20%

程序填空:

5个、20%

编程题

3 个,20%

面向对象程序设计

1 个 10 %

其 他:

个 %

试题难易程度

基本题: 50% 灵活题:30% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(95% )

备注

(四)总成绩评定标准

平时成绩(30 分)+ 期末试卷(100 分)×70%

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

Page 134: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

134

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.2

制定人签字:田琳琳

审核人签字:田琳琳

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

Page 135: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

135

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090430022

2. 课程中文名称: 面向对象方法与 C++程序设计

3. 课程英文名称: Oriented Object Programming and C++ language

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程/网络工程类

7. 开课学期: 第一学年第 2学期

8. 先修课程: 《程序设计基础与 C程序设计》

9. 后继课程: 《C/C++课程设计》《数据结构与算法》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 40 24 8 3.5 16

二、任课教师

蒋光远(工程师)、刘斌(副教授)、姜国海(工程师)、田琳琳(讲师)、赵小薇(讲师)

三、教材及主要参考资料

教 材: 蒋光远,田琳琳,赵小薇,于红编著.《C++语言程序设计教程》

清华大学出版社, 2011.

参考资料: 郑莉编著.《C++语言程序设计 (第 3 版)》. 清华大学出版社,2011

裘宗燕译.《C++程序设计语言(特别版)》. 机械工业出版社,2009

刘宗田等译《C++编程思想》. 机械工业出版社,2002.

四、课程简介

《C++程序设计语言》是软件工程相关专业的一门专业必修课,通过本课程的理论学习

与实践,使学生通过学习 C++语言的相关语法,掌握面向对象程序的基本概念、原理及设计

方法,理解封装、继承与多态特性,了解模版、重载及异常等面向对象程序的编程技术。教

学的主要目的是培养学生利用程序设计的方法解决实际工程问题及科学问题的,采用面

向对象程序设计思想开发具有一定规模的程序,进一步提升编程能力,为后续课程的学习

Page 136: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

136

打下基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将高

等数理基础、工程技术基

础、社会科学基础和软件工

程专业知识用于解决软件

工程及应用领域的复杂工

程问题。

2.掌握软件工程基础及专

业知识。

(中级能力)

应用面向对象程序设计的

方式解决科学及工程问题

的能力。

3. 设计 /开发解决方

案:能够设计针对复杂软件

工程问题的解决方案,设计

满足软件工程及应用领域

的特定需求的系统、组件或

模型;并能够在系统设计与

开发过程中体现创新意识,

考虑社会、健康、安全、法

律、文化以及环境等因素。

3.构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

力。

(中级级级力)

运用流程图、类图及伪代码

等形式描述设计思路

5. 使用现代工具:能够

针对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

2.掌握开发、选择与使用

现代软件开发工具。

(中级级能力)

掌握使用相关 IDE 开发程

序的方法以及调试程序基

本方法

(二)教学目标

目标内容 具体目标

专业知识

理解面向对象程序设计的思想

理解封装机制,掌握类的设计与实现方法

理解继承机制,掌握类的继承与派生方法

理解多态机制,掌握实现动态及静态多态的方法

理解范型编程机制,掌握模版及 STL相关技术

了解异常机制与基本 IO 操作

Page 137: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

137

专业技能

运用面向对象思想和技术开发程序

掌握类图的基本绘制方法

熟练运用类与对象构造程序

掌握程序调试和测试的方法

(三)教学任务

13. 通过理论教学讲授程序设计相关知识,使学生熟练掌握 C++语言的基本语

法,具备利用计算机高级语言进行程序设计的能力。

14. 通过理论教学讲授面向对象程序设计的技术,使学生理解面向过程设计的思

想,以及与面向过程方法相比的优势。

15. 通过实验教学训练学生具备面向对象程序设计基本技能,熟练掌握常用 C++

程序开发平台的使用,掌握调试与测试程序的方法。

4. 通过实践教学培养学生的计算机思维和基本职业素养,培养兼具计算机科学理

论探索精神与能力和软件工程创新精神与素质的软件工程师。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

教学内容 教学要求 学

36) 面向对象概述

1.面向对象技术的基本概念

2.面向对象技术的基本特征

了解本课程研究的对象、内容

了解面向对象技术的基本概念

掌握 C++对 C 的扩展语法

4

37) 类与对象

14. 类定义及对象定义

15. 构造函数和析构函数

16. 对象数组,指针及 this

17. static ,const 及 friend

掌握类的定义及对象的使用

理解及使用成员函数

定义构造函数和析构函数

了解类中静态成员,常成员以及友元的用法

理解掌握组合类的设计方法

10

38) 运算符重载

1.运算符重载规则

2.常见运算符重载

理解运算符重载的意义

掌握运算符重载规则

掌握常见运算符重载的方法

4

39) 继承与派生

14. 类的继承性与复用

15. 继承访问权限控制

16. 派生类的构造和析构函数

17. 多继承

理解类的继承关系与复用性

掌握继承体系下类成员的访问权限控制

掌握派生类构造及析构函数的定义方式

了解多继承的语法及意义

6

Page 138: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

138

40) 多态性

1.虚函数

2.多态的实现机制

3.纯虚函数与抽象类

掌握虚函数的使用方法

理解多态的实现机制

理解纯虚函数与抽象类

了解多态的设计思想

6

41) 输入输出流

1.流的概念及结构

2.非格式化/格式化 IO

3.文件流

理解流的概念及作用

掌握常用非格式化/格式化输入与输出成员函数

了解文件流的操作方法

6

42) 模板

1.模板的概念

2.函数模板与模板函数

3.类模板与模板类

理解模板的概念及作用

掌握函数模板与模板函数

掌握类模板与模板类的用法

了解 STL

2

43) 异常处理

1.异常处理的基本思想

2.异常处理的实现

理解异常处理的基本思想

掌握异常处理的基本语法 2

(二)课外学习内容及要求

序号 具体内容 要求 教学

考核方式

1 类与对象 深入理解封装机制

正确运用类的组合关系

3

4

课后作业

项目报告

2 继承与派生 深入理解继承机制

正确设计继承体系

5

4

课后作业

项目报告

3 多态性 深入理解多态机制

正确设利用多态特性

7 4 课后作业

项目报告

4 模版与 STL 理解范型编程

了解 STL相关

8 4 自主学习

项目报告

Page 139: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

139

七、实践项目实施计划表

序号 项目名称 项目

类型

教学

周 项目内容 项目成果

实施

方法

课内

学时

考核

方式

实践

场所 实验类型

1 类与对象(1) 单元

项目 2

掌握类的定义及对象的使用

理解及使用成员函数

定义构造函数和析构函数

了解类中静态成员,常成员以及友元的用法

运算符重载应用

程序代码 实验

教学 4

课程

作业

课堂、

课下

验证型

2 类与对象(2) 单元

项目 3

面向科学或工程问题

设计类的组合关系

运算符重载

程序代码

实验

教学

4 课程

作业

课堂、

课下

验证型、

综合型

3 派生与继承 单元

项目 5

面向科学或工程问题

利用继承设计类的关系

程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

4 多态性 单元

项目 6

面向科学或工程问题

利用多态性构造程序 程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

5 模版 单元

项目 8

面向科学或工程问题

应用类模版或函数模版 程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

6 小项目开发 综合

项目 10

面向较复杂科学或工程问题

开发小型游戏或信息管理系统 项目报告

实践

教学 4

课程

作业

课堂、

课下

综合型

实验

Page 140: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

140

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力

目标

掌握

程度 教学实施

各教学环节学时分配

理论教学 实践教学

课内

小计

1

概述

1.1 面向对象

的基本概念

本课程研究的对象、内容

面向对象技术的基本概念及特征

1-②

5-②

中级

了解 讲授演示

自主学习 1 1 1

1.2

从 C到 C++ C++面向过程部分的扩展语法

掌握

了解

讲授演示

自主学习 3 1 1

2

类与

对象

2.1 类定义及

对象定义

掌握类的定义及对象的使用

理解及使用成员函数

1-②

5-②

中级

掌握

应用

讲授演示

自主学习 2 2 1 4 1

2.2 构造函数

和析构函数

构造函数的特点

定默认、有参构造和复制构造函数

析构函数的特点、定义和调用

1-②

5-②

中级

掌握

应用

讲授演示

自主学习 2 2 1 2 1

2.3 复杂对象

对象数组,指针及 this

组合类的设计方法

3-③

中级

掌握

应用

讲授演示

自主学习 4 2 2 4 2

2.4 数据共享

和保护

类中静态成员,常成员以及友元的用

法 static ,const 及 friend

5-②

中级 了解 讲授演示

自主学习 2 2 4

3

运算

3.1 运算符重

载规则

运算符重载的意义

运算符重载规则

2-②

中级 理解

讲授

自主学习 1 1 2

Page 141: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

141

符重

载 3.2 常见运算

符重载

常见运算符重载的方法:

算术运算符、关系和逻辑运算符

赋值、增量和下标运算符

1-②

5-②

中级

掌握

应用

讲授演示

自主学习 3 2 5

测试 A 类的封装性

2-②

3-③

5-②

应用 上机测试 1 1

4

继承

与派

4.1 类的继承 继承的相关概念

继承的语法实现

1-②

中级

理解

应用

讲授演示

自主学习 1 1 1 2 1

4.2 继承访问

权限控制

掌握继承体系下类成员的访问权限控

1-②

中级 掌握

讲授演示

自主学习 1 1 1 2 1

4.3 派生类构

造和析构函数

派生类构造及析构函数的定义方式 2-②

中级

掌握

应用

讲授演示

自主学习 1 1 1 2 1

4.4 多继承

多继承的意义

多继承的语法

多继承的数据访问问题

1-②

中级 了解 讲授演示

自主学习 1 1 2

4.5 案例分析

类的继承关系与复用性

2-②

3-③

5-②

应用 讲授演示

自主学习 2 1 2 1

5

多态

5.1多态的基

本概念

静态多态的实现

虚函数与动态动态多态

实现多态的意义

1-②

5-②

中级

理解 讲授演示

自主学习 1 1 1

5.2 动态多态

的实现 动态多态实现的语法要素

1-②

5-②

3-③

掌握

应用

讲授演示

自主学习 2 2 2 4 1

5.3 纯虚函数

与抽象类

纯虚函数的语法和意义

抽象类的用法和意义

1-②

5-② 理解

讲授演示

自主学习 1 1 2 2 2

Page 142: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

142

5.4 多态应用 案例分析 1-②

3-③ 运用

讲授演示

自主学习 2 2

测试 B 继承与多态

1-②

5-②

3-③

运用 上机测试

1 1

6

输入

输出

6.1 IO流的概

念及结构 输入输出流的概念及作用

1-②

5-②

中级

理解 讲授演示

自主学习

2

2

6.2 基本 IO

操作

常用非格式化/格式化 IO 操作相

关成员函数

掌握

运用

讲授演示

自主学习 2 2

6.3 文件流

文件打开与关闭

文件的读写操作

文件状态检测

掌握

运用

讲授演示

自主学习 2 1 2

作业 2 基本 IO 操作 应用

7

模板

7.1 模板的概

模板的概念及作用

范型编程的基本概念

1-②

5-②

中级

理解 讲授演示

自主学习 1 1 1 1

7.2 函数模版

与类模版

函数模板与模板函数

类模板与模板类的用法

标准模版库 STL

掌握

了解

讲授演示

自主学习 1 3 1 3

作业 3 模版的使用 应用

8

异常

8.1 异常处理

的基本思想 异常处理的实现

1-②

5-②

中级

理解 讲授演示

自主学习 1 1

8.2 异常处理

的实现 常处理的基本语法

1-②

5-②

中级

掌握

运用

讲授演示

自主学习 1 1

合计 40 24 76 16

Page 143: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

143

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课通过面向对象程序设计的基础知识

讲解、案例分析以及项目实践,不断提升学生程序设计能力。以课堂讲授、课堂练习和

测试、实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

平时考核

作业 每章课后练习上机题目 上机检查 第 3-8 周 15%

测验 A 类的封装机制 上机测试 第 4 周 5%

测验 B 继承与多态性 上机测试 第 6 周 5%

小组项目 面向对象三大特性 项目报告 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 书面考试 考试周 70 %

(二)命题要求

Page 144: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

144

考核项目 重点考核知识点、技能点 备注

课后作业 1-②、5-②、 3-③ 占总成绩 15%

上机测试 1-②、5-②、 3-③ 占总成绩 10%

小组项目 1-②、5-②、 3-③ 占总成绩 5%

期末考试 1-②、5-②、 3-③ 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

问答题:

5个、20%

程序填空:

5个、20%

编程题

3 个,20%

面向对象程序设计

1 个 10 %

其 他:

个 %

试题难易程度

基本题: 50% 灵活题:30% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(95% )

备注

(四)总成绩评定标准

平时成绩(30 分)+ 期末试卷(100 分)×70%

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

Page 145: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

145

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.2

制定人签字:田琳琳

审核人签字:田琳琳

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 146: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

146

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090430020

2. 课程中文名称: 面向对象方法与 C++程序设计

3. 课程英文名称: Oriented Object Programming and C++ language

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程/网络工程类

7. 开课学期: 第一学年第 2学期

8. 先修课程: 《程序设计基础与 C程序设计》

9. 后继课程: 《C/C++课程设计》《数据结构与算法》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 8 3.5 16

二、任课教师

刘斌(副教授)、于红(副教授)、田琳琳(讲师)、许真珍(讲师)、蒋光远(工程师)

三、教材及主要参考资料

教材: 蒋光远,田琳琳,赵小薇,于红编著.《C++语言程序设计教程》

清华大学出版社, 2011.

参考资料: 郑莉编著.《C++语言程序设计 (第 3 版)》. 清华大学出版社,2011

裘宗燕译.《C++程序设计语言(特别版)》. 机械工业出版社,2009

刘宗田等译《C++编程思想》. 机械工业出版社,2002.

四、课程简介

《C++程序设计语言》是软件工程相关专业的一门专业必修课,通过本课程的理论学习

与实践,使学生通过学习 C++语言的相关语法,掌握面向对象程序的基本概念、原理及设计

方法,理解封装、继承与多态特性,了解模版、重载及异常等面向对象程序的编程技术。教

学的主要目的是培养学生利用程序设计的方法解决实际工程问题及科学问题的,采用面

向对象程序设计思想开发具有一定规模的程序,进一步提升编程能力,为后续课程的学习

Page 147: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

147

打下基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

2.问题分析:能够应用数

学、自然科学和工程科学的

基本原理,识别、表达、并

通过文献研究分析复杂工

程问题,以获得有效结论。

②运用草稿、图表、流程表

等工程方法描述问题

(中级能力)

应用面向对象程序设计的

方式解决科学及工程问题,

运用流程图、类图及伪代码

等形式描述设计思路。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

②理解和评价技术发展可能

带来的环境、社会问题

(初级能力)

了解程序设计技术的更新

对人类社会发展的影响。

(二)教学目标

目标内容 具体目标

专业知识

理解面向对象程序设计的思想

理解封装机制,掌握类的设计与实现方法

理解继承机制,掌握类的继承与派生方法

理解多态机制,掌握实现动态及静态多态的方法

理解范型编程机制,掌握模版及 STL相关技术

了解异常机制与基本 IO 操作

专业技能

运用面向对象思想和技术开发程序

掌握类图的基本绘制方法

熟练运用类与对象构造程序

掌握程序调试和测试的方法

(三)教学任务

16. 通过理论教学讲授程序设计相关知识,使学生熟练掌握 C++语言的基本语

法,具备利用计算机高级语言进行程序设计的能力。

17. 通过理论教学讲授面向对象程序设计的技术,使学生理解面向过程设计的思

想,以及与面向过程方法相比的优势。

18. 通过实验教学训练学生具备面向对象程序设计基本技能,熟练掌握常用 C++

程序开发平台的使用,掌握调试与测试程序的方法。

Page 148: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

148

4. 通过实践教学培养学生的计算机思维和基本职业素养,培养兼具计算机科学理

论探索精神与能力和软件工程创新精神与素质的软件工程师。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

教学内容 教学要求 学

44) 面向对象概述

1.面向对象技术的基本概念

2.面向对象技术的基本特征

了解本课程研究的对象、内容

了解面向对象技术的基本概念

掌握 C++对 C 的扩展语法

2

45) 类与对象

18. 类定义及对象定义

19. 构造函数和析构函数

20. 对象数组,指针及 this

21. static ,const 及 friend

掌握类的定义及对象的使用

理解及使用成员函数

定义构造函数和析构函数

了解类中静态成员,常成员以及友元的用法

理解掌握组合类的设计方法

8

46) 运算符重载

1.运算符重载规则

2.常见运算符重载

理解运算符重载的意义

掌握运算符重载规则

掌握常见运算符重载的方法

4

47) 继承与派生

18. 类的继承性与复用

19. 继承访问权限控制

20. 派生类的构造和析构函数

21. 多继承

理解类的继承关系与复用性

掌握继承体系下类成员的访问权限控制

掌握派生类构造及析构函数的定义方式

了解多继承的语法及意义

4

48) 多态性

1.虚函数

2.多态的实现机制

3.纯虚函数与抽象类

掌握虚函数的使用方法

理解多态的实现机制

理解纯虚函数与抽象类

了解多态的设计思想

4

49) 输入输出流

1.流的概念及结构

2.非格式化/格式化 IO

3.文件流

理解流的概念及作用

掌握常用非格式化/格式化输入与输出成员函数

了解文件流的操作方法

6

50) 模板

1.模板的概念

2.函数模板与模板函数

3.类模板与模板类

理解模板的概念及作用

掌握函数模板与模板函数

掌握类模板与模板类的用法

了解 STL

2

51) 异常处理

1.异常处理的基本思想

2.异常处理的实现

理解异常处理的基本思想

掌握异常处理的基本语法 2

Page 149: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

149

(二)课外学习内容及要求

序号 具体内容 要求 教学

考核方式

1 类与对象 深入理解封装机制

正确运用类的组合关系

3

4

课后作业

项目报告

2 继承与派生 深入理解继承机制

正确设计继承体系

5

4

课后作业

项目报告

3 多态性 深入理解多态机制

正确设利用多态特性

7 4 课后作业

项目报告

4 模版与 STL 理解范型编程

了解 STL相关

8 4 自主学习

项目报告

Page 150: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

150

七、实践项目实施计划表

序号 项目名称 项目

类型

教学

周 项目内容 项目成果

实施

方法

课内

学时

考核

方式

实践

场所 实验类型

1 类与对象(1) 单元

项目 2

掌握类的定义及对象的使用

理解及使用成员函数

定义构造函数和析构函数

了解类中静态成员,常成员以及友元的用法

运算符重载应用

程序代码 实验

教学 4

课程

作业

课堂、

课下

验证型

2 类与对象(2) 单元

项目 3

面向科学或工程问题

设计类的组合关系

运算符重载

程序代码

实验

教学

4 课程

作业

课堂、

课下

验证型、

综合型

3 派生与继承 单元

项目 4

面向科学或工程问题

利用继承设计类的关系

程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

4 多态性 单元

项目 5

面向科学或工程问题

利用多态性构造程序 程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

5 模版 单元

项目 6

面向科学或工程问题

应用类模版或函数模版 程序代码

实验

教学

4 课程

作业

课堂、

课下

综合型、

验证型

6 小项目开发 综合

项目 8

面向较复杂科学或工程问题

开发小型游戏或信息管理系统 项目报告

实践

教学 4

课程

作业

课堂、

课下

综合型

实验

Page 151: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

151

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力

目标

掌握

程度 教学实施

各教学环节学时分配

理论教学 实践教学

课内

小计

1

面向

对象

概述

1.1

面向对象技术

的基本概念

本课程研究的对象、内容

面向对象技术的基本概念及特征

2-②

中级

7-②

初级

了解 讲授演示

自主学习 1 1 1

1.2

从 C到 C++ C++对 C 的扩展语法

掌握

了解

讲授演示

自主学习 1 1 1

作业 A C++面向过程部分的扩展语法 掌握

2

类与

对象

2.1 类定义及

对象定义

掌握类的定义及对象的使用

理解及使用成员函数

2-②

中级 掌握

应用

讲授演示

自主学习 2 1 1 3 1

2.2 构造函数

和析构函数

构造函数的特点

定默认、有参构造和复制构造函数

析构函数的特点、定义和调用

2-②

中级 掌握

应用

讲授演示

自主学习 2 1 1 3 1

2.3 复杂对象

对象数组,指针及 this

组合类的设计方法

2-②

中级

掌握

应用

讲授演示

自主学习 2 2 2 4 2

Page 152: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

152

2.4 数据共享

和保护

类中静态成员,常成员以及友元的用

static ,const 及 friend

2-②

中级 了解 讲授演示

自主学习 2 1 3

3

运算

符重

3.1 运算符重

载规则

运算符重载的意义

运算符重载规则

2-②

中级 理解 讲授

自主学习 1 1

3.2 常见运算

符重载

常见运算符重载的方法:

算术运算符、关系和逻辑运算符

赋值、增量和下标运算符

2-②

中级 掌握

应用

讲授演示

自主学习 3 2 5

测试 A 类的封装性

2-②

中级 应用 上机测试 1 1

4

继承

与派

4.1 类的继承

类的继承关系与复用性

继承的相关概念

继承的语法实现

2-②

中级 理解

应用

讲授演示

自主学习 1 2 1 3 1

4.2 继承访问

权限控制

掌握继承体系下类成员的访问权限控

2-②

中级 掌握

讲授演示

自主学习 1 1 1 2 1

4.3 派生类构

造和析构函数

派生类构造及析构函数的定义方式 2-②

中级

掌握

应用

讲授演示

自主学习 1 1 1 2 1

4.4多继承

多继承的意义

多继承的语法

多继承的数据访问问题

2-②

中级 了解 讲授演示

自主学习 1 1 1 1

5

多态

5.1多态的基

本概念

静态多态的实现

虚函数与动态动态多态

实现多态的意义

2-②

中级

7-②

理解 讲授演示

自主学习 1 1 1

Page 153: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

153

5.2 动态多态

的实现 动态多态实现的语法要素

2-②

中级

掌握

应用

讲授演示

自主学习 2 2 2 4 1

5.3 纯虚函数

与抽象类

纯虚函数的语法和意义

抽象类的用法和意义

2-②

中级 理解

讲授演示

自主学习 1 1 2 2 2

测试 B 继承与多态 2-②

中级 运用

上机测试

1 1

6

输入

输出

6.1 IO流的概

念及结构 输入输出流的概念及作用

2-②

中级

理解 讲授演示

自主学习

2

2

6.2 基本 IO

操作

常用非格式化/格式化 IO 操作相

关成员函数

掌握

运用

讲授演示

自主学习 2 2

6.3 文件流

文件打开与关闭

文件的读写操作

文件状态检测

掌握

运用

讲授演示

自主学习 2 1 2

作业 2 基本 IO 操作 应用

7

模板

7.1 模板的概

模板的概念及作用

范型编程的基本概念

2-②

中级

7-②

初级

理解 讲授演示

自主学习 1 1 1 1

7.2 函数模版

与类模版

函数模板与模板函数

类模板与模板类的用法

标准模版库 STL

掌握

了解

讲授演示

自主学习 1 3 1 3

作业 3 模版的使用 应用

8

异常

8.1 异常处理

的基本思想 异常处理的实现

7-②

初级 理解

讲授演示

自主学习 1 1

8.2 异常处理

的实现 常处理的基本语法

2-②

中级

掌握

运用

讲授演示

自主学习 1 1

合计 32 24 76 16

Page 154: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

154

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课通过面向对象程序设计的基础知识

讲解、案例分析以及项目实践,不断提升学生程序设计能力。以课堂讲授、课堂练习和

测试、实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

平时考核

作业 1 每章课后练习上机题目 上机检查 第 1 周 5%

作业 2 基本 IO 操作 上机检查 第 5 周 5%

作业 3 模版的使用 上机检查 第 7 周 5%

测验 A 类的封装机制 上机测试 第 4 周 5%

测验 B 继承与多态性 上机测试 第 6 周 5%

小组项目 面向对象三大特性 项目报告 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 书面考试 考试周 70 %

Page 155: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

155

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1 2-②中级能力、7-②初级能力 占总成绩 5%

课后作业 2 2-②中级能力 占总成绩 5%

课后作业 3 2-②中级能力 、7-②初级能力 占总成绩 5%

上机测试 A 2-②中级能力 占总成绩 5%

上机测试 B 2-②中级能力 占总成绩 5%

小组项目 2-②中级能力、7-②初级能力 占总成绩 5%

期末考试 2-②中级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□等级制

终结性

考核方式 试卷考试 学生考核提交类型

■纸版

□电子版

□其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

问答题:

5个、20%

程序填空:

5个、20%

编程题

3 个,20%

面向对象程序设计

1个 10 %

其他:

个 %

试题难易程度

基本题:50% 灵活题:30% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(95% )

备注

(四)总成绩评定标准

平时成绩(30 分)+期末试卷(100 分)×70%

Page 156: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

156

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:田琳琳

审核人签字:田琳琳

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 6月

Page 157: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

157

《软件工程》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090440010

2. 课程中文名称: 软件工程

3. 课程英文名称: Software Engineering

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《数据结构与算法》、《程序设计基础与 C程序设

计》、《面向对象方法与 C++程序设计》

9. 后继课程: 《系统分析与设计》、《软件测试与质量保证》等

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 48 0 4 3

二、任课教师

周勇(副教授)、朴勇(副教授)、梁文新(副教授)、陈鑫(讲师)

三、教材及主要参考资料

教 材: 《软件工程导论》(第 6版). 张海藩编著. 清华大学出版社.

2013.

参考资料: 《软件工程:实践者的研究方法指南》(第 8版).(美)普雷

斯曼 著,郑人杰 等译. 机械工业出版社.2016.

四、课程简介

《软件工程》是软件工程专业大类课程之一,主要围绕软件的系统工程化开发过程,

介绍相关的理论、方法、技术和工具。以面向对象的分析和设计为主线,遵循 UML 2 标

准,从基本理论为出发点,介绍对软件开发的组织管理以及业务流程分析;重点针对软

Page 158: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

158

件开发的生命周期,讨论对业务需求进行分析、面向对象的概要设计、从概要设计到代

码框架的生成、面向对象的详细设计、设计优化、面向对象实现、交互设计、测试与质

量保证等重要环节;介绍软件开发环境,包括项目计划管理与跟踪以及主流配置管理工

具的使用。

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

① 掌握软件生命周期要

素,了解软件开发过程管理

模型、ISO 国际质量标准、

CMMI软件评价标准

(中级能力)掌握软件开发

过程的基本规律和规范,了

解 ISO 及 CMMI 的原理及适

用范围。

5.使用现代工具:能够针对

复杂工程问题,开发、选择

与使用恰当的技术、资源、

现代工程工具和信息技术

工具,包括对复杂工程问题

的预测与模拟,并能够理解

其局限性。

③ 对复杂工程问题进行预

测与模拟,并能够理解其局

限性

(初级能力)掌握复杂工程

问题分析方法,通过分析方

法对问题进行预测与模拟,

提出其局限性

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

① 具备基于工程相关背景

知识进行合理分析的能力

② 具备评价专业工程实践

和复杂工程问题解决方案

的能力,能够评价对社会、

健康、安全、法律以及文化

的影响

(高级能力)培养学生的工

程实践学习能力,使学生掌

握软件建模和实现的工程

方法,具有运用软件工程自

动化平台开发软件的能力。

(初级能力)评估软件系统

对社会的影响及作用的能

力,理解开发人员应具有的

社会责任。

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并能在多学科环境中

应用。

①掌握技术管理、人员管

理、工程管理的原理

② 理解并掌握与成本、风

险等相关的经济决策方法

(中级能力)了解项目管理

中的技术管理、人员管理、

工程管理方法和应用的能

力。

(二)教学目标

目标内容 具体目标

Page 159: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

159

专业知识 了解可行性分析的方法和原理

掌握需求分析方法

了解结构化设计的启发式规则,知道系统抽象、模块化、信息隐藏、

功能独立等

了解面向对象的设计原则

掌握系统宏观设计方法

掌握系统详细设计方法

掌握系统测试与实现方法

了解软件架构、设计模式

了解系统集成、项目管理方法

专业技能 掌握使用数据流图方法

掌握使用数据字典分析系统方法

掌握结构化设计的架构设计方法,会使用变换流和事物流的方

法完成总体设计

掌握软件逻辑的详细设计方法,会用程序流程图、盒图、PAD

图、伪码等方法设计程序逻辑

掌握数据库设计方法

掌握基于 UML 的面向对象系统分析与设计方法

(三)教学任务

本课程的任务是使学生从软件生存期的角度,建立软件开发的系统工程方法认识,

初步学习和掌软件开发中的分析、设计、质量检验、过程管理等现代软件工程的普遍原

理和方法,具备能够运用各种方法来规范化、系统化地表达实现简单系统的软件开发能

力,为进一步开发复杂软件系统建立扎实的基础。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:第一部分概述软件工程相关的概念、技术与方法;第二部分

围绕软件开发过程,对软件开发的组织管理以及过程分析;第三部分主要围绕软件工程

开发的生命周期,讨论对业务需求进行分析、概要设计、详细设计、设计优化、实现、

交互设计、测试与质量保证等内容;第四部分包括软件开发环境,项目计划管理与跟踪

等。

第一部分:软件工程基本原理

学生要了解的基础知识:软件危机的产生以及软件工程的由来、软件工程包括的主

要内容以及软件开发的主要方法及技术等。

1. 软件危机的基本概念及产生原因

内容包括:软件危机的概念,软件的特点,软件危机产生的原因,软件危机的

Page 160: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

160

表现,软件危机的应对。

2. 软件的分类及发展历史

内容包括:软件的分类方法,软件发展历史以及前沿发展动向。

3. 软件工程的意义及主要内容

内容包括:软件工程的引入及其必要性,软件工程的作用,软件工程知识体系,

系统工程与 UML。

4. 软件开发的主要方法及技术

内容包括:结构化和面向对象开发方法的概念和各自特点,适用场合及其理解。

第二部分:软件过程

软件开发过程以及软件开发生命周期的定义,软件产品开发的任务框架和规范。软

件开发过程模型,包括传统的瀑布模型、增量模型、螺旋模型、喷泉模型等以及敏捷模

型中的极限编程、SCRUM、MSF等。软件开发过程中的过程建模,使用 UML的活动图进行

过程建模的方法以及风险管理过程。

1. 软件开发过程及生命周期

内容包括:开发过程与生命周期的定义及其联系,过程模型的说明。

2. 传统的过程模型

内容包括:瀑布模型、快速原型模型、增量模型、喷泉模型及其特点,适用情

况。

3. 迭代开发等敏捷开发模型

内容包括:敏捷模型的特点,敏捷宣言,以极限编程、SCRUM、MSF等为代表的

敏捷模型的特点及其适用情况。

4. 过程建模的方法及风险管理过程

内容包括:应用 UML活动图进行建模的方法,风险管理过程及其模型。

第三部分:软件开发活动

本部分主要介绍完整的软件系统的开发过程,涵盖需求分析、概要设计、详细设计、

实现及测试等各个环节的详细介绍。本部分包含了软件开发的主要活动,也是本课程的

主题部分,着重培养学生分析解决实际工程问题的技术和能力。

1. 软件需求分析

内容包括:可行性分析、需求的获取、系统目标和涉众的确定、基于数据流图的分

析方法、用例建模与用例规约、功能需求与非功能需求。

2. 软件系统概要设计

内容包括:传统模块化的层次方法、基于类图的设计方法、通过顺序图对设计的补

充和验证、需求跟踪。

3. 软件系统详细设计

内容包括:详细设计中的主要活动、传统过程化的详细设计方法、通过状态图对详

细设计的丰富、对象约束语言(OCL)。

4. 交互设计

内容包括:人机工程、可用性的概念和内涵、可用性的验证方法。

5. 设计优化

Page 161: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

161

内容包括:结构化设计的启发式规则,如系统抽象、模块化、信息隐藏、功能独立

等。面向对象的设计原则、设计模式以及架构模式。

6. 软件系统的实现与测试

内容包括: CASE 实现工具,类图中单个类、关联关系、归属关系的代码生成方法,

软件架构的代码组织、其它影响程序运行的因素等实现方法。非功能需求、分布式系统、

XML、程序库、组件、框架、数据的持久化、领域特定语言、模型驱动架构(MDA)、重

构等具体实现技术。

形式化验证、断言、单元测试与 junit、可测试性等测试相关的概念和技术,等价

类、控制流等测试方法,测试分类与测试环境、测试度量、建设性质量保证、人工测试

等其它测试活动。

第四部分:软件开发环境

主要介绍软件开发人员进行团队开发所涉及到的相关管理方法、技术和工具,包括

软件配置管理、项目计划、质量管理与过程改进以及人员的组织和管理。

1. 软件配置管理

内容包括:软件配置管理的基本原理与主要活动,生成管理,发布管理及变更管理。

2. 项目计划与跟踪

内容包括:项目计划与工作分解、任务安排与工程网络图、项目组织与甘特图、项

目计划与跟踪。

3. 工作量估算

内容包括:软件规模的评估方法,开发成本的评估方法。

4. 质量管理

内容包括:质量管理与过程改进,能力成熟度与过程模型。

5. 项目人员与沟通

内容包括:项目中的人员管理与组织,人员沟通模型。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,进行系统

需求分析

提出系统需求方案,

同时考虑社会、环境

等因素

5 2 课后作业

2 运用数据流图、数

据字典、UML 等软

件工程方法设计系

统架构

掌握系统分析与设

计全过程中的开发

工具

8 10 课后作业

3 构建系统宏观架

构,实现系统详细

设计

实现系统需求、设计

具有创新、考虑社

会、环境等因素

Page 162: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

162

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 5

面向具有工程背景

的案例,进行系统

需求分析

完成系统

分析报告 实践教学 课程作业 课下

综合型试

2 框架设计 单元项目 8

运用开发工具和

UML 软件工程方法、

进行设计系统架构

设计

完成系统

框架设计

报告

实践教学 课程作业 课下 综合型试

3 详细设计 单元项目 12

运用开发工具和

UML 软件工程方法、

进行设计系统详细

设计

完成系统

详细设计

报告

实践教学 课程作业 课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 15

评价实施方案,考

虑创新性、社会、

法律等影响

完成系统

测试与实

施报告

实践教学 课程作业 课下 综合型试

Page 163: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

163

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 软件危机

的基本概念及

其产生原因

软件危机的概念,软件特点,软件

危机产生的原因,软件危机的表

现,软件危机的应对

6-①初级 了解 讲授、

讨论

0.

5

0.

5

1.2 软件的分

类及发展历史

软件的分类方法,软件发展历史以

及前沿发展动向 6-①初级 了解

讲授、

讨论

0.

5

0.

5

1.3 软件工程

的意义及主要

内容

软件工程引入的必要性,软件工程

的作用,软件工程知识体系,系统

工程与 UML

6-①初级 了解 讲授、

讨论

0.

5

0.

5

1.4 软件开发

的主要方法及

技术

结构化和面向对象开发方法的概念

和各自特点,适用场合及其理解 6-①中级 了解

讲授、

讨论

0.

5

0.

5

2

2.1 软件开发

过程及生命周

开发过程与生命周期的定义及关

系,过程模型的概念

6-②中级

3-①中级 掌握

讲授、

讨论 1 1

Page 164: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

164

程 2.2 传统的过

程模型

瀑布模型、快速原型模型、增量模

型、喷泉模型及其特点、适用情况

6-②中级

3-①中级 掌握

讲授、

讨论 1 1

2.3 迭代开发

等敏捷开发模

敏捷模型的特点,敏捷宣言,以极

限编程、SCRUM、MSF 等为代表的敏

捷模型的特点及其适用情况。

3-①中级

5-初级 了解

讲授、

讨论 1 1

2.4 过程建模

的方法及风险

管理过程

应用 UML 活动图进行建模的方法,

风险管理过程及其模型 5-初级 掌握

讲授、

讨论 1 1

测试 A 5-初级 随堂

测试

3

软件

开发

活动

3.1 软件需求

分析

可行性分析、需求的获取、系统目

标和涉众、基于数据流图的分析方

法、用例建模与用例规约、功能需

求与非功能需求。

3-①高级

5-初级

6-①高级

掌握/

运用/

分析

讲授、

讨论 6 6

需求分析 面向具有工程背景的案例,进行系

统需求分析

3-①高级

5-初级

6-①高级

掌握/

运用/

分析

讨论 课后

作业

3.2 软件系统

概要设计

传统模块化的层次方法、基于类图

的设计方法、通过顺序图对设计的

补充和验证、需求跟踪。

3-①高级

6-①高级

6-②初级

掌握/

运用/

设计

讲授、

讨论 5 5

Page 165: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

165

框架设计 运用开发工具和 UML软件工程方法、

进行设计系统架构设计

3-①高级

6-①高级

掌握/

运用/

设计

讨论 课后

作业

3.3 软件系统

详细设计

详细设计中的主要活动、传统过程

化的详细设计方法、通过状态图对

详细设计的丰富、对象约束语言

(OCL)。

3-①高级

6-①高级

掌握/

运用/

设计

讲授、

讨论 5 5

3.4 交互设计 人机工程、可用性概念和内涵、可

用性的验证方法

3-①高级

6-①高级

6-②初级

了解 讲授、

讨论 2 2

3.5 设计优化

结构化设计的启发式规则,如系统

抽象、模块化、信息隐藏、功能独

立等。面向对象的设计原则、设计

模式以及架构模式

3-①高级

6-①高级

6-②初级

掌握 讲授、

讨论 4 4

详细设计 运用开发工具和 UML 软件工程方

法、进行设计系统详细设计

3-①高级

6-①高级

掌握/

运用/

设计

讨论 课后

作业

测试 B

3-①高级

5-初级

6-①高级

随堂

测试

3.6 软件系统

的实现与测试

CASE 实现工具,类图中单个类、关

联关系、归属关系的代码生成方法,

软件架构的代码组织、其它影响程

序运行的因素等实现方法。

非功能需求、分布式系统、XML、程

序库、组件、框架、数据的持久化、

3-①高级

6-①高级

6-②初级

掌握 讲授、

讨论 14 14

Page 166: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

166

领域特定语言、模型驱动架构

(MDA)、重构等具体实现技术。

形式化验证、断言、单元测试与

junit、可测试性等测试相关的概念

和技术,等价类、控制流等测试方

法,测试分类与测试环境、测试度

量、建设性质量保证、人工测试等

其它测试活动。

测试 C 3-①高级

6-①高级

随堂

测试

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

法律等影响

3-①高级

6-①高级

6-②初级

掌握/

运用/

实现

讨论 课后

作业

4

软件

开发

环境

4.1 软件配置

管理

软件配置管理的基本原理与主要活

动,生成管理,发布管理及变更管

理。

11-①中级 掌握 讲授、

讨论 2 2

4.2 项目计划

与跟踪

项目计划与工作分解、任务安排与

工程网络图、项目组织与甘特图、

项目计划与跟踪。

11-①中级 掌握 讲授、

讨论 1 1

4.3 工作量估

软件规模的评估方法,开发成本的

评估方法 11-②中级 掌握

讲授、

讨论 1 1

4.4 质量管理 质量管理与过程改进,能力成熟度

与过程模型

3-①高级

11-①中级 了解

讲授、

讨论 1 1

4.5 人员管理

与沟通

项目中的人员管理与组织,人员沟

通模型。

6-②初级

11-①中级 了解

讲授、

讨论 1 1

Page 167: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

167

测试 D 11-①中级

11-②中级

随堂

测试

合计 48 48

Page 168: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

168

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

课后作业 需求分析 第 5 周

20% 课后作业 概要设计 第 8 周

课后作业 详细设计 第 12 周

课后作业 实现与测试 第 15 周

测验 A 软件工程基础 第 2 周

20% 测验 B 需求分析与设计 第 12 周

测验 C 软件实现与测试 第 15 周

测验 D 软件开发环境 第 16 周

终结性考核 期末考试 全部知识单元教学内容 考试周 60 %

Page 169: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

169

(二)命题要求

考核项目 重点考核知识点、技能点 备注

日常考核 占总成绩 10%

课后作业 3-①高级,5-初级,6-①高级

占总成绩 15% 课后作业 3-①高级,6-①高级

课后作业 3-①高级,6-①高级

课后作业 3-①高级,6-①高级,6-②初级

测试 A 5-初级

占总成绩 15% 测试 B 3-①高级,5-初级,6-①高级

测试 C 3-①高级,6-①高级

测试 D 11-①中级,11-②中级

期末考试 3-②高级,5-初级,6-①高级,11-①中级,11-②

中级 占总成绩 60%

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

20 个、40 分

简答题:

5 个、15 分

分析题:

3 个、45 分

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

Page 170: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

170

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:周勇

审核人签字:周勇

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

Page 171: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

171

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090440010

2. 课程中文名称: 软件工程

3. 课程英文名称: Software Engineering

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《数据结构与算法》、《程序设计基础与 C 程序设

计》、《面向对象方法与 C++程序设计》

9. 后继课程: 《系统分析与设计》、《软件测试与质量保证》等

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 48 4 3 12

二、任课教师

周勇(副教授)、朴勇(副教授)、梁文新(副教授)、陈鑫(讲师)

三、教材及主要参考资料

教 材: 《软件工程导论》(第 6 版). 张海藩编著. 清华大学出版社.

2013.

参考资料: 《软件工程:实践者的研究方法指南》(第 8 版).(美)普雷

斯曼 著,郑人杰 等译. 机械工业出版社.2016.

四、课程简介

《软件工程》是软件工程专业大类课程之一,主要围绕软件的系统工程化开发过程,

介绍相关的理论、方法、技术和工具。以面向对象的分析和设计为主线,遵循 UML 2 标

准,从基本理论为出发点,介绍对软件开发的组织管理以及业务流程分析;重点针对软

件开发的生命周期,讨论对业务需求进行分析、面向对象的概要设计、从概要设计到代

码框架的生成、面向对象的详细设计、设计优化、面向对象实现、交互设计、测试与质

量保证等重要环节;介绍软件开发环境,包括项目计划管理与跟踪以及主流配置管理工

具的使用。

Page 172: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

172

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

① 掌握软件生命周期要

素,了解软件开发过程管理

模型、ISO 国际质量标准、

CMMI软件评价标准

(中级能力)掌握软件开发

过程的基本规律和规范,了

解 ISO 及 CMMI 的原理及适

用范围。

5.使用现代工具:能够针对

复杂工程问题,开发、选择

与使用恰当的技术、资源、

现代工程工具和信息技术

工具,包括对复杂工程问题

的预测与模拟,并能够理解

其局限性。

③ 对复杂工程问题进行预

测与模拟,并能够理解其局

限性

(初级能力)掌握复杂工程

问题分析方法,通过分析方

法对问题进行预测与模拟,

提出其局限性

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

① 具备基于工程相关背景

知识进行合理分析的能力

② 具备评价专业工程实践

和复杂工程问题解决方案

的能力,能够评价对社会、

健康、安全、法律以及文化

的影响

(高级能力)培养学生的工

程实践学习能力,使学生掌

握软件建模和实现的工程

方法,具有运用软件工程自

动化平台开发软件的能力。

(初级能力)评估软件系统

对社会的影响及作用的能

力,理解开发人员应具有的

社会责任。

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并能在多学科环境中

应用。

①掌握技术管理、人员管

理、工程管理的原理

② 理解并掌握与成本、风

险等相关的经济决策方法

(中级能力)了解项目管理

中的技术管理、人员管理、

工程管理方法和应用的能

力。

(二)教学目标

目标内容 具体目标

专业知识 了解可行性分析的方法和原理

掌握需求分析方法

了解结构化设计的启发式规则,知道系统抽象、模块化、信息隐藏、

功能独立等

Page 173: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

173

了解面向对象的设计原则

掌握系统宏观设计方法

掌握系统详细设计方法

掌握系统测试与实现方法

了解软件架构、设计模式

了解系统集成、项目管理方法

专业技能 掌握使用数据流图方法

掌握使用数据字典分析系统方法

掌握结构化设计的架构设计方法,会使用变换流和事物流的方

法完成总体设计

掌握软件逻辑的详细设计方法,会用程序流程图、盒图、PAD

图、伪码等方法设计程序逻辑

掌握数据库设计方法

掌握基于 UML的面向对象系统分析与设计方法

(三)教学任务

本课程的任务是使学生从软件生存期的角度,建立软件开发的系统工程方法认识,

初步学习和掌软件开发中的分析、设计、质量检验、过程管理等现代软件工程的普遍原

理和方法,具备能够运用各种方法来规范化、系统化地表达实现简单系统的软件开发能

力,为进一步开发复杂软件系统建立扎实的基础。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:第一部分概述软件工程相关的概念、技术与方法;第二部分

围绕软件开发过程,对软件开发的组织管理以及过程分析;第三部分主要围绕软件工程

开发的生命周期,讨论对业务需求进行分析、概要设计、详细设计、设计优化、实现、

交互设计、测试与质量保证等内容;第四部分包括软件开发环境,项目计划管理与跟踪

等。

第一部分:软件工程基本原理

学生要了解的基础知识:软件危机的产生以及软件工程的由来、软件工程包括的主

要内容以及软件开发的主要方法及技术等。

5. 软件危机的基本概念及产生原因

内容包括:软件危机的概念,软件的特点,软件危机产生的原因,软件危机的

表现,软件危机的应对。

6. 软件的分类及发展历史

内容包括:软件的分类方法,软件发展历史以及前沿发展动向。

7. 软件工程的意义及主要内容

Page 174: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

174

内容包括:软件工程的引入及其必要性,软件工程的作用,软件工程知识体系,

系统工程与 UML。

8. 软件开发的主要方法及技术

内容包括:结构化和面向对象开发方法的概念和各自特点,适用场合及其理解。

第二部分:软件过程

软件开发过程以及软件开发生命周期的定义,软件产品开发的任务框架和规范。软

件开发过程模型,包括传统的瀑布模型、增量模型、螺旋模型、喷泉模型等以及敏捷模

型中的极限编程、SCRUM、MSF等。软件开发过程中的过程建模,使用 UML的活动图进行

过程建模的方法以及风险管理过程。

5. 软件开发过程及生命周期

内容包括:开发过程与生命周期的定义及其联系,过程模型的说明。

6. 传统的过程模型

内容包括:瀑布模型、快速原型模型、增量模型、喷泉模型及其特点,适用情

况。

7. 迭代开发等敏捷开发模型

内容包括:敏捷模型的特点,敏捷宣言,以极限编程、SCRUM、MSF等为代表的

敏捷模型的特点及其适用情况。

8. 过程建模的方法及风险管理过程

内容包括:应用 UML活动图进行建模的方法,风险管理过程及其模型。

第三部分:软件开发活动

本部分主要介绍完整的软件系统的开发过程,涵盖需求分析、概要设计、详细设计、

实现及测试等各个环节的详细介绍。本部分包含了软件开发的主要活动,也是本课程的

主题部分,着重培养学生分析解决实际工程问题的技术和能力。

7. 软件需求分析

内容包括:可行性分析、需求的获取、系统目标和涉众的确定、基于数据流图的分

析方法、用例建模与用例规约、功能需求与非功能需求。

8. 软件系统概要设计

内容包括:传统模块化的层次方法、基于类图的设计方法、通过顺序图对设计的补

充和验证、需求跟踪。

9. 软件系统详细设计

内容包括:详细设计中的主要活动、传统过程化的详细设计方法、通过状态图对详

细设计的丰富、对象约束语言(OCL)。

10. 交互设计

内容包括:人机工程、可用性的概念和内涵、可用性的验证方法。

11. 设计优化

内容包括:结构化设计的启发式规则,如系统抽象、模块化、信息隐藏、功能独立

等。面向对象的设计原则、设计模式以及架构模式。

12. 软件系统的实现与测试

内容包括: CASE 实现工具,类图中单个类、关联关系、归属关系的代码生成方法,

Page 175: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

175

软件架构的代码组织、其它影响程序运行的因素等实现方法。非功能需求、分布式系统、

XML、程序库、组件、框架、数据的持久化、领域特定语言、模型驱动架构(MDA)、重

构等具体实现技术。

形式化验证、断言、单元测试与 junit、可测试性等测试相关的概念和技术,等价

类、控制流等测试方法,测试分类与测试环境、测试度量、建设性质量保证、人工测试

等其它测试活动。

第四部分:软件开发环境

主要介绍软件开发人员进行团队开发所涉及到的相关管理方法、技术和工具,包括

软件配置管理、项目计划、质量管理与过程改进以及人员的组织和管理。

6. 软件配置管理

内容包括:软件配置管理的基本原理与主要活动,生成管理,发布管理及变更管理。

7. 项目计划与跟踪

内容包括:项目计划与工作分解、任务安排与工程网络图、项目组织与甘特图、项

目计划与跟踪。

8. 工作量估算

内容包括:软件规模的评估方法,开发成本的评估方法。

9. 质量管理

内容包括:质量管理与过程改进,能力成熟度与过程模型。

10. 项目人员与沟通

内容包括:项目中的人员管理与组织,人员沟通模型。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,进行系统

需求分析

提出系统需求方案,

同时考虑社会、环境

等因素

5 2 课后作业

2 运用数据流图、数

据字典、UML 等软

件工程方法设计系

统架构

掌握系统分析与设

计全过程中的开发

工具

8 10 课后作业

3 构建系统宏观架

构,实现系统详细

设计

实现系统需求、设计

具有创新、考虑社

会、环境等因素

Page 176: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

176

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 5

面向具有工程背景

的案例,进行系统

需求分析

完成系统

分析报告 实践教学 课程作业 课下

综合型试

2 框架设计 单元项目 8

运用开发工具和

UML 软件工程方法、

进行设计系统架构

设计

完成系统

框架设计

报告

实践教学 课程作业 课下 综合型试

3 详细设计 单元项目 12

运用开发工具和

UML 软件工程方法、

进行设计系统详细

设计

完成系统

详细设计

报告

实践教学 课程作业 课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 15

评价实施方案,考

虑创新性、社会、

法律等影响

完成系统

测试与实

施报告

实践教学 课程作业 课下 综合型试

Page 177: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

177

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 软件危机

的基本概念及

其产生原因

软件危机的概念,软件特点,软件

危机产生的原因,软件危机的表

现,软件危机的应对

6-①初级 了解 讲授、

讨论

0.

5

0.

5

1.2 软件的分

类及发展历史

软件的分类方法,软件发展历史以

及前沿发展动向 6-①初级 了解

讲授、

讨论

0.

5

0.

5

1.3 软件工程

的意义及主要

内容

软件工程引入的必要性,软件工程

的作用,软件工程知识体系,系统

工程与 UML

6-①初级 了解 讲授、

讨论

0.

5

0.

5

1.4 软件开发

的主要方法及

技术

结构化和面向对象开发方法的概念

和各自特点,适用场合及其理解 6-①中级 了解

讲授、

讨论

0.

5

0.

5

2

2.1 软件开发

过程及生命周

开发过程与生命周期的定义及关

系,过程模型的概念

6-②中级

3-①中级 掌握

讲授、

讨论 1 1

Page 178: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

178

程 2.2 传统的过

程模型

瀑布模型、快速原型模型、增量模

型、喷泉模型及其特点、适用情况

6-②中级

3-①中级 掌握

讲授、

讨论 1 1

2.3 迭代开发

等敏捷开发模

敏捷模型的特点,敏捷宣言,以极

限编程、SCRUM、MSF 等为代表的敏

捷模型的特点及其适用情况。

3-①中级

5-初级 了解

讲授、

讨论 1 1

2.4 过程建模

的方法及风险

管理过程

应用 UML 活动图进行建模的方法,

风险管理过程及其模型 5-初级 掌握

讲授、

讨论 1 1

测试 A 5-初级 随堂

测试

3

软件

开发

活动

3.1 软件需求

分析

可行性分析、需求的获取、系统目

标和涉众、基于数据流图的分析方

法、用例建模与用例规约、功能需

求与非功能需求。

3-①高级

5-初级

6-①高级

掌握/

运用/

分析

讲授、

讨论 6 6

需求分析 面向具有工程背景的案例,进行系

统需求分析

3-①高级

5-初级

6-①高级

掌握/

运用/

分析

讨论 课后

作业 2 2

3.2 软件系统

概要设计

传统模块化的层次方法、基于类图

的设计方法、通过顺序图对设计的

补充和验证、需求跟踪。

3-①高级

6-①高级

6-②初级

掌握/

运用/

设计

讲授、

讨论 5 5

Page 179: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

179

框架设计 运用开发工具和 UML软件工程方法、

进行设计系统架构设计

3-①高级

6-①高级

掌握/

运用/

设计

讨论 课后

作业 4 4

3.3 软件系统

详细设计

详细设计中的主要活动、传统过程

化的详细设计方法、通过状态图对

详细设计的丰富、对象约束语言

(OCL)。

3-①高级

6-①高级

掌握/

运用/

设计

讲授、

讨论 5 5

3.4 交互设计 人机工程、可用性概念和内涵、可

用性的验证方法

3-①高级

6-①高级

6-②初级

了解 讲授、

讨论 2 2

3.5 设计优化

结构化设计的启发式规则,如系统

抽象、模块化、信息隐藏、功能独

立等。面向对象的设计原则、设计

模式以及架构模式

3-①高级

6-①高级

6-②初级

掌握 讲授、

讨论 4 4

详细设计 运用开发工具和 UML 软件工程方

法、进行设计系统详细设计

3-①高级

6-①高级

掌握/

运用/

设计

讨论 课后

作业 4 4

测试 B

3-①高级

5-初级

6-①高级

随堂

测试

3.6 软件系统

的实现与测试

CASE 实现工具,类图中单个类、关

联关系、归属关系的代码生成方法,

软件架构的代码组织、其它影响程

序运行的因素等实现方法。

非功能需求、分布式系统、XML、程

序库、组件、框架、数据的持久化、

3-①高级

6-①高级

6-②初级

掌握 讲授、

讨论 14 14

Page 180: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

180

领域特定语言、模型驱动架构

(MDA)、重构等具体实现技术。

形式化验证、断言、单元测试与

junit、可测试性等测试相关的概念

和技术,等价类、控制流等测试方

法,测试分类与测试环境、测试度

量、建设性质量保证、人工测试等

其它测试活动。

测试 C 3-①高级

6-①高级

随堂

测试

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

法律等影响

3-①高级

6-①高级

6-②初级

掌握/

运用/

实现

讨论 课后

作业 2 2

4

软件

开发

环境

4.1 软件配置

管理

软件配置管理的基本原理与主要活

动,生成管理,发布管理及变更管

理。

11-①中级 掌握 讲授、

讨论 2 2

4.2 项目计划

与跟踪

项目计划与工作分解、任务安排与

工程网络图、项目组织与甘特图、

项目计划与跟踪。

11-①中级 掌握 讲授、

讨论 1 1

4.3 工作量估

软件规模的评估方法,开发成本的

评估方法 11-②中级 掌握

讲授、

讨论 1 1

4.4 质量管理 质量管理与过程改进,能力成熟度

与过程模型

3-①高级

11-①中级 了解

讲授、

讨论 1 1

4.5 人员管理

与沟通

项目中的人员管理与组织,人员沟

通模型。

6-②初级

11-①中级 了解

讲授、

讨论 1 1

Page 181: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

181

测试 D 11-①中级

11-②中级

随堂

测试

合计 48 12 48 12

Page 182: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

182

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 10%

课后作业 需求分析 第 5 周

15% 课后作业 概要设计 第 8 周

课后作业 详细设计 第 12 周

课后作业 实现与测试 第 15 周

测验 A 软件工程基础 第 2 周

15% 测验 B 需求分析与设计 第 12 周

测验 C 软件实现与测试 第 15 周

Page 183: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

183

测验 D 软件开发环境 第 16 周

终结性考核 期末考试 全部知识单元教学内容 考试周 60 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

日常考核 占总成绩 10%

课后作业 3-①高级,5-初级,6-①高级

占总成绩 15% 课后作业 3-①高级,6-①高级

课后作业 3-①高级,6-①高级

课后作业 3-①高级,6-①高级,6-②初级

测试 A 5-初级

占总成绩 15% 测试 B 3-①高级,5-初级,6-①高级

测试 C 3-①高级,6-①高级

测试 D 11-①中级,11-②中级

期末考试 3-②高级,5-初级,6-①高级,11-①中级,11-②

中级 占总成绩 60%

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

20 个、40分

简答题:

5个、15分

分析题:

3个、45分

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

Page 184: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

184

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:周勇

审核人签字:周勇

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 185: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

185

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090440010

2. 课程中文名称: 软件工程

3. 课程英文名称: Software Engineering

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《数据结构与算法》、《程序设计基础与 C 程序设

计》、《面向对象方法与 C++程序设计》

9. 后继课程: 《系统分析与设计》、《软件测试与质量保证》等

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 48 4 3 12

二、任课教师

周勇(副教授)、朴勇(副教授)、梁文新(副教授)、陈鑫(讲师)

三、教材及主要参考资料

教 材: 《软件工程导论》(第 6 版). 张海藩编著. 清华大学出版社.

2013.

参考资料: 《软件工程:实践者的研究方法指南》(第 7 版).(美)普雷

斯曼 著,郑人杰 等译. 机械工业出版社.2011.

四、课程简介

《软件工程》是软件工程专业大类课程之一,主要围绕软件的系统工程化开发过程,

介绍相关的理论、方法、技术和工具。以面向对象的分析和设计为主线,遵循 UML 2 标

准,从基本理论为出发点,介绍对软件开发的组织管理以及业务流程分析;重点针对软

件开发的生命周期,讨论对业务需求进行分析、面向对象的概要设计、从概要设计到代

码框架的生成、面向对象的详细设计、设计优化、面向对象实现、交互设计、测试与质

量保证等重要环节;介绍软件开发环境,包括项目计划管理与跟踪以及主流配置管理工

Page 186: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

186

具的使用。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

①掌握软件生命周期要素,

了解软件开发过程管理模

型、ISO 国际质量标准、

CMMI软件评价标准

② 具备设计符合需求、具

有创新性的解决方案的能

力,同时考虑考虑社会、健

康、安全、法律、文化以及

环境等因素

(高级能力)掌握软件开发

过程的基本规律和规范,了

解 ISO 及 CMMI 的原理及适

用范围。

(高级能力)掌握系统需

求、设计具有创新性的系统

框架、同时考虑社会、环境

等因素。

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

①具备基于工程相关背景

知识进行合理分析的能力

②具备评价专业工程实践

和复杂工程问题解决方案

的能力,能够评价对社会、

健康、安全、法律以及文化

的影响

(中级能力)培养学生的工

程实践学习能力,使学生掌

握软件建模和实现的工程

方法,具有运用软件工程自

动化平台开发软件的能力。

(初级能力)评估软件系统

对社会的影响及作用的能

力,理解开发人员应具有的

社会责任。

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并能在多学科环境中

应用。

①掌握技术管理、人员管

理、工程管理的原理

②理解并掌握与成本、风险

等相关的经济决策方法

(中级能力)掌握项目管理

中的技术管理、人员管理、

工程管理方法和应用的能

力。

(初级能力)了解项目管理

中的成本、风险分析方法

(二)教学目标

目标内容 具体目标

专业知识 了解可行性分析的方法和原理

掌握需求分析方法

了解结构化设计的启发式规则,知道系统抽象、模块化、信息隐藏、

功能独立等

了解面向对象的设计原则

掌握系统宏观设计方法

掌握系统详细设计方法

Page 187: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

187

掌握系统测试与实现方法

了解软件架构、设计模式

了解系统集成、项目管理方法

专业技能 掌握使用数据流图方法

掌握使用数据字典分析系统方法

掌握结构化设计的架构设计方法,会使用变换流和事物流的方

法完成总体设计

掌握软件逻辑的详细设计方法,会用程序流程图、盒图、PAD

图、伪码等方法设计程序逻辑

掌握数据库设计方法

掌握基于 UML的面向对象系统分析与设计方法

(三)教学任务

本课程的任务是使学生从软件生存期的角度,建立软件开发的系统工程方法认识,

初步学习和掌软件开发中的分析、设计、质量检验、过程管理等现代软件工程的普遍原

理和方法,具备能够运用各种方法来规范化、系统化地表达实现简单系统的软件开发能

力,为进一步开发复杂软件系统建立扎实的基础。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:第一部分概述软件工程相关的概念、技术与方法;第二部分

围绕软件开发过程,对软件开发的组织管理以及过程分析;第三部分主要围绕软件工程

开发的生命周期,讨论对业务需求进行分析、概要设计、详细设计、设计优化、实现、

交互设计、测试与质量保证等内容;第四部分包括软件开发环境,项目计划管理与跟踪

等。

第一部分:软件工程基本原理

学生要了解的基础知识:软件危机的产生以及软件工程的由来、软件工程包括的主

要内容以及软件开发的主要方法及技术等。

9. 软件危机的基本概念及产生原因

内容包括:软件危机的概念,软件的特点,软件危机产生的原因,软件危机的

表现,软件危机的应对。

10. 软件的分类及发展历史

内容包括:软件的分类方法,软件发展历史以及前沿发展动向。

11. 软件工程的意义及主要内容

内容包括:软件工程的引入及其必要性,软件工程的作用,软件工程知识体系,

系统工程与 UML。

12. 软件开发的主要方法及技术

内容包括:结构化和面向对象开发方法的概念和各自特点,适用场合及其理解。

Page 188: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

188

第二部分:软件过程

软件开发过程以及软件开发生命周期的定义,软件产品开发的任务框架和规范。软

件开发过程模型,包括传统的瀑布模型、增量模型、螺旋模型、喷泉模型等以及敏捷模

型中的极限编程、SCRUM、MSF等。软件开发过程中的过程建模,使用 UML的活动图进行

过程建模的方法以及风险管理过程。

9. 软件开发过程及生命周期

内容包括:开发过程与生命周期的定义及其联系,过程模型的说明。

10. 传统的过程模型

内容包括:瀑布模型、快速原型模型、增量模型、喷泉模型及其特点,适用情

况。

11. 迭代开发等敏捷开发模型

内容包括:敏捷模型的特点,敏捷宣言,以极限编程、SCRUM、MSF等为代表的

敏捷模型的特点及其适用情况。

12. 过程建模的方法及风险管理过程

内容包括:应用 UML活动图进行建模的方法,风险管理过程及其模型。

第三部分:软件开发活动

本部分主要介绍完整的软件系统的开发过程,涵盖需求分析、概要设计、详细设计、

实现及测试等各个环节的详细介绍。本部分包含了软件开发的主要活动,也是本课程的

主题部分,着重培养学生分析解决实际工程问题的技术和能力。

13. 软件需求分析

内容包括:可行性分析、需求的获取、系统目标和涉众的确定、基于数据流图的分

析方法、用例建模与用例规约、功能需求与非功能需求。

14. 软件系统概要设计

内容包括:传统模块化的层次方法、基于类图的设计方法、通过顺序图对设计的补

充和验证、需求跟踪。

15. 软件系统详细设计

内容包括:详细设计中的主要活动、传统过程化的详细设计方法、通过状态图对详

细设计的丰富、对象约束语言(OCL)。

16. 交互设计

内容包括:人机工程、可用性的概念和内涵、可用性的验证方法。

17. 设计优化

内容包括:结构化设计的启发式规则,如系统抽象、模块化、信息隐藏、功能独立

等。面向对象的设计原则、设计模式以及架构模式。

18. 软件系统的实现与测试

内容包括:CASE实现工具,类图中单个类、关联关系、归属关系的代码生成方法,

软件架构的代码组织、其它影响程序运行的因素等实现方法。非功能需求、分布式系统、

XML、程序库、组件、框架、数据的持久化、领域特定语言、模型驱动架构(MDA)、重

构等具体实现技术。

形式化验证、断言、单元测试与 junit、可测试性等测试相关的概念和技术,等价

Page 189: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

189

类、控制流等测试方法,测试分类与测试环境、测试度量、建设性质量保证、人工测试

等其它测试活动。

第四部分:软件开发环境

主要介绍软件开发人员进行团队开发所涉及到的相关管理方法、技术和工具,包括

软件配置管理、项目计划、质量管理与过程改进以及人员的组织和管理。

11. 软件配置管理

内容包括:软件配置管理的基本原理与主要活动,生成管理,发布管理及变更管理。

12. 项目计划与跟踪

内容包括:项目计划与工作分解、任务安排与工程网络图、项目组织与甘特图、项

目计划与跟踪。

13. 工作量估算

内容包括:软件规模的评估方法,开发成本的评估方法。

14. 质量管理

内容包括:质量管理与过程改进,能力成熟度与过程模型。

15. 项目人员与沟通

内容包括:项目中的人员管理与组织,人员沟通模型。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,进行系统

需求分析

提出系统需求方案,

同时考虑社会、环境

等因素

5 2 课后作业

2 运用数据流图、数

据字典、UML 等软

件工程方法设计系

统架构

掌握系统分析与设

计全过程中的开发

工具

8 10 课后作业

3 构建系统宏观架

构,实现系统详细

设计

实现系统需求、设计

具有创新、考虑社

会、环境等因素

Page 190: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

190

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 5

面向具有工程背景

的案例,进行系统

需求分析

完成系统

分析报告 实践教学 课程作业 课下

综合型试

2 框架设计 单元项目 8

运用开发工具和

UML 软件工程方法、

进行设计系统架构

设计

完成系统

框架设计

报告

实践教学 课程作业 课下 综合型试

3 详细设计 单元项目 12

运用开发工具和

UML 软件工程方法、

进行设计系统详细

设计

完成系统

详细设计

报告

实践教学 课程作业 课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 15

评价实施方案,考

虑创新性、社会、

法律等影响

完成系统

测试与实

施报告

实践教学 课程作业 课下 综合型试

Page 191: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

191

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握程

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

软件

工程

基本

原理

1.1 软件危机的

基本概念及其产

生原因

软件危机的概念,软件特点,软件危机产

生的原因,软件危机的表现,软件危机的

应对

3-①高级 了解 讲授、讨

0.

5 0.5

1.2 软件的分类

及发展历史

软件的分类方法,软件发展历史以及前沿

发展动向 3-①高级 了解

讲授、讨

0.

5 0.5

1.3 软件工程的

意义及主要内容

软件工程引入的必要性,软件工程的作

用,软件工程知识体系,系统工程与 UML 3-①高级 了解

讲授、讨

0.

5 0.5

1.4 软件开发的

主要方法及技术

结构化和面向对象开发方法的概念和各

自特点,适用场合及其理解 3-①高级 了解

讲授、讨

0.

5 0.5

2

软件

2.1 软件开发过

程及生命周期

开发过程与生命周期的定义及关系,过程

模型的概念 3-①高级 掌握

讲授、讨

论 1 1

Page 192: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

192

过程

2.2 传统的过程

模型

瀑布模型、快速原型模型、增量模型、喷

泉模型及其特点、适用情况 3-①高级 掌握

讲授、讨

论 1 1

2.3 迭代开发等

敏捷开发模型

敏捷模型的特点,敏捷宣言,以极限编程、

SCRUM、MSF 等为代表的敏捷模型的特点及

其适用情况。

3-①高级 了解 讲授、讨

论 1 1

2.4 过程建模的

方法及风险管理

过程

应用 UML 活动图进行建模的方法,风险管

理过程及其模型 3-①高级 掌握

讲授、讨

论 1 1

测试 A 3-①高级 随堂

测试

3

软件

开发

活动

3.1 软件需求分

可行性分析、需求的获取、系统目标和涉

众、基于数据流图的分析方法、用例建模

与用例规约、功能需求与非功能需求。

3-②高级

掌握/运

用/分析

讲授、讨

论 6 6

需求分析 面向具有工程背景的案例,进行系统需求

分析

3-②高级

掌握/运

用/分析 讨论

课后

作业 2 2

3.2 软件系统概

要设计

传统模块化的层次方法、基于类图的设计

方法、通过顺序图对设计的补充和验证、

需求跟踪。

3-②高级

6-①中级

6-②初级

掌握/运

用/设计

讲授、讨

论 5 5

框架设计 运用开发工具和 UML 软件工程方法、进行

设计系统架构设计

3-②高级

6-①中级

掌握/运

用/设计 讨论

课后

作业 4 4

Page 193: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

193

3.3 软件系统详

细设计

详细设计中的主要活动、传统过程化的详

细设计方法、通过状态图对详细设计的丰

富、对象约束语言(OCL)。

3-②高级

6-①中级

掌握/运

用/设计

讲授、讨

论 5 5

3.4 交互设计 人机工程、可用性概念和内涵、可用性的

验证方法

3-②高级

6-①中级

6-②初级

了解 讲授、讨

论 2 2

3.5 设计优化

结构化设计的启发式规则,如系统抽象、

模块化、信息隐藏、功能独立等。面向对

象的设计原则、设计模式以及架构模式

3-②高级

6-①中级

6-②初级

掌握 讲授、讨

论 4 4

详细设计 运用开发工具和 UML 软件工程方法、进行

设计系统详细设计

3-②高级

6-①中级

掌握/运

用/设计 讨论

课后

作业 4 4

测试 B

3-①高级

3-②高级

6-①中级

随堂

测试

3.6 软件系统的

实现与测试

CASE 实现工具,类图中单个类、关联关系、

归属关系的代码生成方法,软件架构的代

码组织、其它影响程序运行的因素等实现

方法。

非功能需求、分布式系统、XML、程序库、

组件、框架、数据的持久化、领域特定语

言、模型驱动架构(MDA)、重构等具体实

现技术。

形式化验证、断言、单元测试与 junit、

可测试性等测试相关的概念和技术,等价

类、控制流等测试方法,测试分类与测试

环境、测试度量、建设性质量保证、人工

3-②高级

6-①中级

6-②初级

掌握 讲授、讨

论 14 14

Page 194: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

194

测试等其它测试活动。

测试 C 3-②高级

6-①中级

随堂

测试

系统测试与实施

方案

评价实施方案,考虑创新性、社会、法律

等影响

3-②高级

6-①中级

6-②初级

掌握/运

用/实现 讨论

课后

作业 2 2

4

软件

开发

环境

4.1 软件配置管

软件配置管理的基本原理与主要活动,生

成管理,发布管理及变更管理。 11-①中级 掌握

讲授、讨

论 2 2

4.2 项目计划与

跟踪

项目计划与工作分解、任务安排与工程网

络图、项目组织与甘特图、项目计划与跟

踪。

11-①中级 掌握 讲授、讨

论 1 1

4.3 工作量估算 软件规模的评估方法,开发成本的评估方

法 11-②初级 掌握

讲授、讨

论 1 1

4.4 质量管理 质量管理与过程改进,能力成熟度与过程

模型 11-①中级 了解

讲授、讨

论 1 1

4.5 人员管理与

沟通

项目中的人员管理与组织,人员沟通模

型。 11-①中级 了解

讲授、讨

论 1 1

测试 D 11-①中级

11-②初级

随堂

测试

合计 48 12 48 12

Page 195: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

195

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 10%

课后作业 需求分析 第 5 周

10% 课后作业 概要设计 第 8 周

课后作业 详细设计 第 12 周

课后作业 实现与测试 第 15 周

测验 A 软件工程基础 第 2 周

10% 测验 B 需求分析与设计 第 12 周

测验 C 软件实现与测试 第 15 周

Page 196: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

196

测验 D 软件开发环境 第 16 周

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

日常考核 占总成绩 10%

课后作业 3-①高级,3-②高级,6-①中级

占总成绩 10% 课后作业 3-②高级,6-①中级

课后作业 3-②高级,6-①中级

课后作业 3-②高级,6-①中级,6-②初级

测试 A 3-②高级,3-①高级

占总成绩 10% 测试 B 3-①高级,3-②高级,6-②初级,6-①中级

测试 C 3-②高级,6-①高级

测试 D 11-①中级,11-②初级

期末考试 3-①高级,3-②高级,6-②初级,6-①中级,11-①

中级,11-②初级 占总成绩 70%

(三)终结性考核安排

考试时间 100分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

20 个、40分

简答题:

5个、15分

分析题:

3个、45分

其 他:

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

Page 197: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

197

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:周勇

审核人签字:周勇

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 3月

Page 198: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

198

《离散数学》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430060

2. 课程中文名称: 离散数学

3. 课程英文名称: Discrete Mathematics

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程、网络工程、数字媒体等专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《高等数学》、《C语言》

9. 后继课程: 《数据结构》、《数据库》、《软件工程》、《操作系统》、

《数据挖掘》等

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

64 64 0 4 4 0

二、任课教师

陈志奎(教授)、周勇(副教授)、刘日升(副教授)、高静(讲师)

三、教材及主要参考资料

教 材: 《离散数学》(第 1 版). 陈志奎、周勇 编著. 清华大学出版

社. 2016.

参考资料: 《DISCRITE MATHEMATICAL STRUCTURES》Bernard Kolman Robert

C. Busby, Shron Cutler Ross 高等教育出版社

《DISCRITE MATHEMATICS and its applications》Rosen 华章

出版社

《离散数学与算法》曹晓东 原旭 编著 机械工业出版社

《离散数学》曲婉玲,耿素云,张立昂著 高等教育出版社

四、课程简介

Page 199: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

199

《离散数学》是计算机科学与技术及相关专业的核心、骨干课程,是计算机科学与技术

的基础理论之一。

离散数学在本科计算机专业的授课内容一般分为四大部分:数理逻辑、集合论、代数

系统、图论,这四个部分紧密连接。数理逻辑描述了一个符号化体系,这个体系可以描述集

合论中的所有概念。集合论中又有三个小模块:集合、关系、函数。关系是集合中迪卡尔乘

积的子集,函数是关系的子集,代数系统是定义函数的运算,图论是一类特殊的代数系统。

离散数学课程设置的主要目的是培养学生的抽象思维能力和逻辑推理能力,并为后续课

程,如数据结构、编译原理、数据库、操作系统、软件工程、软件测试、人工智能、数据挖

掘等课程提供必要的数学基础。

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

① 掌握数理、工程技术、

人文和社会科学的基础知

(高级能力)用离散数学的

基础理论来分析和探索软

件工程领域中信息处理的

基本方法、基本技术,归纳

和提炼软件工程领域中的

科学问题。

2. 问题分析:能够应用数

学、自然科学和工程科学的

基本原理,识别、表达、并

通过文献研究分析复杂工

程问题,以获得有效结论。

① 运用数理及工程技术

方法制定分析系统模型。

(高级能力)实体化数学模

型、运用逻辑推理方法、关

系理论以及图论的相关方

法等来描述软件工程方法

系统需求、系统架构、系统

的实现方法等

(二)教学目标

目标内容 具体目标

专业知识 掌握数理逻辑的基本理论

掌握数理逻辑的推理规则和证明方法

掌握集合理论和关系理论

掌握集合和关系的运算

掌握代数系统的基本理论和一些特殊的代数系统

掌握图论的基本理论

Page 200: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

200

掌握一些特殊图及其应用

了解逻辑推理中的各种范式和转化

了解关系、格和图的关联关系

了解集合的基数及其应用

了解图运算的一些通用算法

专业技能 掌握逻辑推理的符号化、公式化方法

掌握数理逻辑公式的标准化(范式)转换方法

掌握使用关系理论划分数据集合的方法

掌握代数群理论划分数据集的方法

掌握集合、关系和图的各种描述和计算方法

掌握树的一些运算方法

(三)教学任务

本课程主要以课堂理论讲授为主,习题课和复习课为辅,结合课后答疑和网络在线

讨论与答疑,多途径使学生更深入地理解和掌握数理逻辑、集合理论、关系理论、代数

系统和图论的基本概念、基本性质、描述方法和计算方法,能够应用逻辑推理、集合划

分、群理论、图论的计算,来分析和探索一些计算机科学所面临的工程问题。并为后续

课程,如数据结构、编译原理、数据库、操作系统、软件工程、软件测试、人工智能等课程

提供必要的数学基础。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:数理逻辑,集合论,代数系统和图论。

第一部分:数理逻辑

学生要了解的基础知识:命题,逻辑联结词和合式公式的定义;合式公式的类型;

范式的定义;命题逻辑的推理规则;谓词,个体和量词的定义;前束范式的定义;谓词

逻辑下的推理规则。

1.熟练掌握将自然语言的问题描述转化为符号化语言的描述

内容包括:命题,逻辑联结词,个体,谓词,量词,合式公式

2.熟练掌握合式公式类型的判定方法

内容包括:永真式,永假式,可满足式,真值表,逻辑恒等式,主范式,论域

3.熟练掌握逻辑推理规则

内容包括:逻辑恒等式,永真蕴含式,PT规则,附加前提证明法,反证法

第二部分:集合论

学生要了解的基础知识:集合,关系和函数的定义;集合,关系和函数的基本运算

和性质;关系图和关系矩阵的表示方法;等价关系和序关系;基数

4.熟练掌握应用关系描述实际问题的方法

Page 201: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

201

内容包括:笛卡尔乘积,关系的构造和表示方法,关系的运算和性质

5.掌握应用容斥原理来统计集合中的元素个数

内容包括:集合,集合运算,集合恒等式,容斥原理

6.掌握无限集合基数的计算方法

内容包括:双射函数,幂集,康托定理

第三部分:代数系统

学生要了解的基础知识:运算和代数系统的定义;运算的性质;同态和同构;群的

定义和性质;格的定义和性质

7.掌握判断运算性质的方法

内容包括:交换律,结合律,分配率,幂等律,幺元,零元,逆元

8.熟练掌握判断代数系统同态和同构的方法

内容包括:同态函数,二元运算,双射函数,满同态

9.熟练掌握子群判定方法和拉格朗日定理

内容包括:子群判定的三个定理,子群的元素数同母群元素数之间的关系

10.掌握格同偏序集之间的关系

内容包括:最大元,最小元

第四部分:图论

学生要了解的基础知识:图的定义及表示方法;度的定义;路径和回路的定义;连

通图的定义;欧拉图和哈密尔顿图的定义和判定方式;二部图的定义;平面图的定义和

性质;树的定义和性质。

11.熟练掌握图的表示方法

内容包括:节点,边,有向图,无向图,邻接矩阵,可达性矩阵,关联矩阵

12.熟练掌握判断图的连通性的方法

内容包括:连通图,极大连通子图,割边,割点,应用矩阵判断图连通性的方法

13.熟练掌握欧拉图和哈密尔顿图的判定方法

内容包括:欧拉通路,欧拉回路,判定欧拉图的充要条件,哈密尔顿通路,哈密尔

顿回路,判定哈密尔顿图的充分条件和必要条件

14.掌握应用二部图进行匹配的方法

内容包括:匹配,完美匹配,完美匹配的充要条件和充分条件

15.掌握平面图的对偶图和着色问题

内容包括:欧拉定理,四色定理

16.熟练掌握生成最小生成树和最优二叉树的方法

内容包括:生成树,最小生成树,最小生成树的生成算法,加权二叉树,最优二叉

树,最优二叉树的生成算法

Page 202: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

202

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,提出符号

化的模型

符号化模型可以有

效的描述工程问题

的各种需求

4 4 课后作业

2 运用关系方法,提

取实际工程问题中

各个要素之间的联

系。

可以通过关系的各

种运算,有效地建立

各个要素之间的联

10 4 课后作业

3 应用图模型描述实

际工程问题

设计适当的节点和

边,并用图的性质来

描述问题的解

15 4 课后作业

Page 203: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

203

七、实践项目实施计划表

本课程为专业核心基础课,没有设置实践项目。

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 熟练掌握

将自然语言

的问题描述

转化为符号

化语言的描

命题,逻辑联结词,个体,谓词,

量词,合式公式 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 4

1.2 熟练掌握

合式公式类

型的判定方

永真式,永假式,可满足式,真值

表,逻辑恒等式,主范式,论域 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 1 5

1.3 熟练掌握

逻辑推理规

逻辑恒等式,永真蕴含式,PT 规

则,附加前提证明法,反证法 2-①高级

掌握/

运用/

分析

讲授、

讨论 6 1 7

Page 204: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

204

工程建模 面向具有工程背景的问题,提出符

号化的模型 2-①高级

掌握/

运用/

分析

讨论 课后

作业 4 4

2

2.1 熟练掌握

应用关系描

述实际问题

的方法

集合的运算,笛卡尔乘积,关系的

构造和表示方法,关系的运算和性

质,函数的运算和性质

2-①高级

掌握/

运用/

分析

讲授、

讨论 14 2 16

2.2 掌握应用

容斥原理来

统计集合中

的元素个数

集合,集合运算,集合恒等式,容

斥原理

1-①高级

2-①高级 掌握

讲授、

讨论 2 2

2.3 掌握无限

集合基数的

计算方法

双射函数,幂集,康托定理 1-①高级

2-①高级 掌握

讲授、

讨论 2 2

需求分析 运用关系方法,提取实际工程问题

中各个要素之间的联系。

1-①高级

2-①高级

掌握/

运用/

分析

讨论 课后

作业 4 4

3

3.1 掌握判断

运算性质的

方法

交换律,结合律,分配率,幂等律,

幺元,零元,逆元

1-①高级

2-①高级 掌握

讲授、

讨论 2 2

Page 205: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

205

统 3.2 熟练掌握

判断代数系

统同态和同

构的方法

同态函数,二元运算,双射函数,

满同态 2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 3

3.3 熟练掌握

子群判定方

法和拉格朗

日定理

子群判定的三个定理,子群的元素

数同母群元素数之间的关系 2-①高级

掌握/

运用/

分析

讲授、

讨论 6 1 7

3.4 掌握格

同偏序集之

间的关系

最大元,最小元 1-①高级

2-①高级 掌握

讲授、

讨论 2 2

4

4.1 熟练掌握

图的表示方

节点,边,有向图,无向图,邻接

矩阵,可达性矩阵,关联矩阵 2-①高级

掌握/

运用/

分析

讲授、

讨论 1 1

4.2 熟练掌握

判断图的连

通性的方法

连通图,极大连通子图,割边,割

点,应用矩阵判断图连通性的方法 2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 3

4.3 熟练掌握

欧拉图和哈

密尔顿图的

判定方法

欧拉通路,欧拉回路,判定欧拉图

的充要条件,哈密尔顿通路,哈密

尔顿回路,判定哈密尔顿图的充分

条件和必要条件

2-①高级

掌握/

运用/

分析

讲授、

讨论 4 1 5

Page 206: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

206

4.4 掌握应用

二部图进行

匹配的方法

匹配,完美匹配,完美匹配的充要

条件和充分条件

1-①高级

2-①高级 掌握

讲授、

讨论 2 2

4.5 掌握平面

图的对偶图

和着色问题

欧拉定理,四色定理 1-①高级

2-①高级 掌握

讲授、

讨论 1 1

4.6 熟练掌

握生成最小

生成树和最

优二叉树的

方法

生成树,最小生成树,最小生成树

的生成算法,加权二叉树,最优二

叉树,最优二叉树的生成算法

2-①高级

掌握/

运用/

分析

讲授、

讨论 2 2

工程建模及求

设计适当的节点和边,并用图的性

质来描述问题的解

1-①高级

2-①高级

掌握/

运用/

分析

课后

作业 4 4

合计 56 8 12 64 12

Page 207: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

207

九、教学方法及组织形式

1.课堂讲授为主,课后作业为辅。本课程从以实例教学为驱动,对离散数学的基

础知识进行讲解分析,不断提升学生能力。以课堂讲授、课堂练习和测试等手段,最终

实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和运行引入教

学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

使用投影仪,采用多媒体与板书相结合教学手段

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核 课后作业 基础知识 每周 30%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 2-①高级能力、1-①高级能力 占总成绩 30%

期末考试 2-①高级能力、1-①高级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

Page 208: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

208

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

填空题:

15个、30%

应用题:

1个、10%

证明题:

2 个、20%

计算题:

1个、10%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,作业完成情况优秀,期末总成绩在

90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,作业完成情况良好,期末总成绩在

80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,作业完成情况中等,期末总成绩在

70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,作业完成情况

一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业完成情况较差,期末总成

绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

Page 209: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

209

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver2.0

制定人签字:陈志奎

审核人签字:陈志奎

专业负责人签字:夏锋

主管院长:江贺

制定日期:2017年 4月

Page 210: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

210

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090430060

2. 课程中文名称: 离散数学

3. 课程英文名称: Discrete Mathematics

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程、网络工程、数字媒体等专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《高等数学》、《C语言》

9. 后继课程: 《数据结构》、《数据库》、《软件工程》、《操作系统》、

《数据挖掘》等

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

64 64 0 4 4 0

二、任课教师

陈志奎(教授)、周勇(副教授)、刘日升(副教授)、高静(讲师)

三、教材及主要参考资料

教 材: 《离散数学》(第 1 版). 陈志奎、周勇 编著. 清华大学出版

社. 2016.

参考资料: 《DISCRITE MATHEMATICAL STRUCTURES》Bernard Kolman Robert

C. Busby, Shron Cutler Ross 高等教育出版社

《DISCRITE MATHEMATICS and its applications》Rosen 华章

出版社

《离散数学与算法》曹晓东 原旭 编著 机械工业出版社

《离散数学》曲婉玲,耿素云,张立昂著 高等教育出版社

四、课程简介

《离散数学》是计算机科学与技术及相关专业的核心、骨干课程,是计算机科学与技术

的基础理论之一。

Page 211: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

211

离散数学在本科计算机专业的授课内容一般分为四大部分:数理逻辑、集合论、代数

系统、图论,这四个部分紧密连接。数理逻辑描述了一个符号化体系,这个体系可以描述集

合论中的所有概念。集合论中又有三个小模块:集合、关系、函数。关系是集合中迪卡尔乘

积的子集,函数是关系的子集,代数系统是定义函数的运算,图论是一类特殊的代数系统。

离散数学课程设置的主要目的是培养学生的抽象思维能力和逻辑推理能力,并为后续课

程,如数据结构、编译原理、数据库、操作系统、软件工程、软件测试、人工智能、数据挖

掘等课程提供必要的数学基础。

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

① 掌握数理、工程技术、

人文和社会科学的基础知

(高级能力)用离散数学的

基础理论来分析和探索软

件工程领域中信息处理的

基本方法、基本技术,归纳

和提炼软件工程领域中的

科学问题。

2. 问题分析:能够应用数

学、自然科学和工程科学的

基本原理,识别、表达、并

通过文献研究分析复杂工

程问题,以获得有效结论。

① 运用数理及工程技术

方法制定分析系统模型。

(高级能力)实体化数学模

型、运用逻辑推理方法、关

系理论以及图论的相关方

法等来描述软件工程方法

系统需求、系统架构、系统

的实现方法等

(二)教学目标

目标内容 具体目标

专业知识 掌握数理逻辑的基本理论

掌握数理逻辑的推理规则和证明方法

掌握集合理论和关系理论

掌握集合和关系的运算

掌握代数系统的基本理论和一些特殊的代数系统

掌握图论的基本理论

掌握一些特殊图及其应用

了解逻辑推理中的各种范式和转化

Page 212: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

212

了解关系、格和图的关联关系

了解集合的基数及其应用

了解图运算的一些通用算法

专业技能 掌握逻辑推理的符号化、公式化方法

掌握数理逻辑公式的标准化(范式)转换方法

掌握使用关系理论划分数据集合的方法

掌握代数群理论划分数据集的方法

掌握集合、关系和图的各种描述和计算方法

掌握树的一些运算方法

(三)教学任务

本课程主要以课堂理论讲授为主,习题课和复习课为辅,结合课后答疑和网络在线

讨论与答疑,多途径使学生更深入地理解和掌握数理逻辑、集合理论、关系理论、代数

系统和图论的基本概念、基本性质、描述方法和计算方法,能够应用逻辑推理、集合划

分、群理论、图论的计算,来分析和探索一些计算机科学所面临的工程问题。并为后续

课程,如数据结构、编译原理、数据库、操作系统、软件工程、软件测试、人工智能等课程

提供必要的数学基础。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:数理逻辑,集合论,代数系统和图论。

第一部分:数理逻辑

学生要了解的基础知识:命题,逻辑联结词和合式公式的定义;合式公式的类型;

范式的定义;命题逻辑的推理规则;谓词,个体和量词的定义;前束范式的定义;谓词

逻辑下的推理规则。

1.熟练掌握将自然语言的问题描述转化为符号化语言的描述

内容包括:命题,逻辑联结词,个体,谓词,量词,合式公式

2.熟练掌握合式公式类型的判定方法

内容包括:永真式,永假式,可满足式,真值表,逻辑恒等式,主范式,论域

3.熟练掌握逻辑推理规则

内容包括:逻辑恒等式,永真蕴含式,PT规则,附加前提证明法,反证法

第二部分:集合论

学生要了解的基础知识:集合,关系和函数的定义;集合,关系和函数的基本运算

和性质;关系图和关系矩阵的表示方法;等价关系和序关系;基数

4.熟练掌握应用关系描述实际问题的方法

内容包括:笛卡尔乘积,关系的构造和表示方法,关系的运算和性质

5.掌握应用容斥原理来统计集合中的元素个数

Page 213: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

213

内容包括:集合,集合运算,集合恒等式,容斥原理

6.掌握无限集合基数的计算方法

内容包括:双射函数,幂集,康托定理

第三部分:代数系统

学生要了解的基础知识:运算和代数系统的定义;运算的性质;同态和同构;群的

定义和性质;格的定义和性质

7.掌握判断运算性质的方法

内容包括:交换律,结合律,分配率,幂等律,幺元,零元,逆元

8.熟练掌握判断代数系统同态和同构的方法

内容包括:同态函数,二元运算,双射函数,满同态

9.熟练掌握子群判定方法和拉格朗日定理

内容包括:子群判定的三个定理,子群的元素数同母群元素数之间的关系

10.掌握格同偏序集之间的关系

内容包括:最大元,最小元

第四部分:图论

学生要了解的基础知识:图的定义及表示方法;度的定义;路径和回路的定义;连

通图的定义;欧拉图和哈密尔顿图的定义和判定方式;二部图的定义;平面图的定义和

性质;树的定义和性质。

11.熟练掌握图的表示方法

内容包括:节点,边,有向图,无向图,邻接矩阵,可达性矩阵,关联矩阵

12.熟练掌握判断图的连通性的方法

内容包括:连通图,极大连通子图,割边,割点,应用矩阵判断图连通性的方法

13.熟练掌握欧拉图和哈密尔顿图的判定方法

内容包括:欧拉通路,欧拉回路,判定欧拉图的充要条件,哈密尔顿通路,哈密尔

顿回路,判定哈密尔顿图的充分条件和必要条件

14.掌握应用二部图进行匹配的方法

内容包括:匹配,完美匹配,完美匹配的充要条件和充分条件

15.掌握平面图的对偶图和着色问题

内容包括:欧拉定理,四色定理

16.熟练掌握生成最小生成树和最优二叉树的方法

内容包括:生成树,最小生成树,最小生成树的生成算法,加权二叉树,最优二叉

树,最优二叉树的生成算法

(二)课外学习内容及要求

Page 214: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

214

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,提出符号

化的模型

符号化模型可以有

效的描述工程问题

的各种需求

4 4 课后作业

2 运用关系方法,提

取实际工程问题中

各个要素之间的联

系。

可以通过关系的各

种运算,有效地建立

各个要素之间的联

10 4 课后作业

3 应用图模型描述实

际工程问题

设计适当的节点和

边,并用图的性质来

描述问题的解

15 4 课后作业

Page 215: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

215

七、实践项目实施计划表

本课程为专业核心基础课,没有设置实践项目。

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 熟练掌

握将自然语

言的问题描

述转化为符

号化语言的

描述

命题,逻辑联结词,个体,谓词,

量词,合式公式 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 4

1.2 熟练掌

握合式公式

类型的判定

方法

永真式,永假式,可满足式,真值

表,逻辑恒等式,主范式,论域 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 1 5

1.3 熟练掌握

逻辑推理规

逻辑恒等式,永真蕴含式,PT 规

则,附加前提证明法,反证法 2-①高级

掌握/

运用/

分析

讲授、

讨论 6 1 7

Page 216: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

216

工程建模 面向具有工程背景的问题,提出符

号化的模型 2-①高级

掌握/

运用/

分析

讨论 课后

作业 4 4

2

2.1 熟练掌

握应用关系

描述实际问

题的方法

集合的运算,笛卡尔乘积,关系的

构造和表示方法,关系的运算和性

质,函数的运算和性质

2-①高级

掌握/

运用/

分析

讲授、

讨论 18 2 20

2.2 掌握应

用容斥原理

来统计集合

中的元素个

集合,集合运算,集合恒等式,容

斥原理

1-①高级

2-①高级 掌握

讲授、

讨论 2 2

2.3 掌握无

限集合基数

的计算方法

双射函数,幂集,康托定理 1-①高级

2-①高级 掌握

讲授、

讨论 2 2

需求分析 运用关系方法,提取实际工程问题

中各个要素之间的联系。

1-①高级

2-①高级

掌握/

运用/

分析

讨论 课后

作业 4 4

3

3.1 掌握判

断运算性质

的方法

交换律,结合律,分配率,幂等律,

幺元,零元,逆元

1-①高级

2-①高级 掌握

讲授、

讨论 2 2

Page 217: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

217

统 3.2 熟练掌

握判断代数

系统同态和

同构的方法

同态函数,二元运算,双射函数,

满同态 2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 2

3.3 熟练掌

握子群判定

方法和拉格

朗日定理

子群判定的三个定理,子群的元素

数同母群元素数之间的关系 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 1 5

3.4 掌握格

同偏序集之

间的关系

最大元,最小元 1-①高级

2-①高级 掌握

讲授、

讨论 2 2

4

4.1 熟练掌

握图的表示

方法

节点,边,有向图,无向图,邻接

矩阵,可达性矩阵,关联矩阵 2-①高级

掌握/

运用/

分析

讲授、

讨论 1 1

4.2 熟练掌

握判断图的

连通性的方

连通图,极大连通子图,割边,割

点,应用矩阵判断图连通性的方法 2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 3

4.3 熟练掌

握欧拉图和

哈密尔顿图

的判定方法

欧拉通路,欧拉回路,判定欧拉图

的充要条件,哈密尔顿通路,哈密

尔顿回路,判定哈密尔顿图的充分

条件和必要条件

2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 3

Page 218: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

218

4.4 掌握应

用二部图进

行匹配的方

匹配,完美匹配,完美匹配的充要

条件和充分条件

1-①高级

2-①高级 掌握

讲授、

讨论 2 2

4.5 掌握平

面图的对偶

图和着色问

欧拉定理,四色定理 1-①高级

2-①高级 掌握

讲授、

讨论 1 1

4.6 熟练掌

握生成最小

生成树和最

优二叉树的

方法

生成树,最小生成树,最小生成树

的生成算法,加权二叉树,最优二

叉树,最优二叉树的生成算法

2-①高级

掌握/

运用/

分析

讲授、

讨论 2 2

工程建模及求

设计适当的节点和边,并用图的性

质来描述问题的解

1-①高级

2-①高级

掌握/

运用/

分析

课后

作业 4 4 4

合计 56 8 12 64 12

Page 219: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

219

九、教学方法及组织形式

1.课堂讲授为主,课后作业为辅。本课程从以实例教学为驱动,对离散数学的基

础知识进行讲解分析,不断提升学生能力。以课堂讲授、课堂练习和测试等手段,最终

实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和运行引入教

学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

使用投影仪,采用多媒体与板书相结合教学手段

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

课后作业 基础知识 每周 30%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 2-①高级能力、1-①高级能力 占总成绩 30%

期末考试 2-①高级能力、1-①高级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

Page 220: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

220

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

填空题:

15个、30%

应用题:

1个、10%

证明题:

2 个、20%

计算题:

1个、10%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,作业完成情况优秀,期末总成绩在

90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,作业完成情况良好,期末总成绩在

80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,作业完成情况中等,期末总成绩在

70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,作业完成情况

一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业完成情况较差,期末总成

绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

Page 221: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

221

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver2.0

制定人签字:陈志奎

审核人签字:陈志奎

专业负责人签字:夏锋

主管院长:江贺

制定日期:2016年 12月

Page 222: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

222

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090440030

2. 课程中文名称: 离散数学

3. 课程英文名称: Discrete Mathematics

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程、网络工程、数字媒体等专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《高等数学》、《C语言》

9. 后继课程: 《数据库》、《软件工程》、《操作系统》等

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

64 64 0 4 4 12

二、任课教师

陈志奎(教授)、曹晓东(教授)、周勇(副教授)、刘日升(副教授)、高静(讲师)

三、教材及主要参考资料

教 材: 《离散数学》(第 1 版). 陈志奎、周勇 编著. 邮电出版社.

2013.

参考资料: 《DISCRITE MATHEMATICAL STRUCTURES》Bernard Kolman Robert

C. Busby, Shron Cutler Ross 高等教育出版社

《DISCRITE MATHEMATICS and its applications》Rosen 华章

出版社

《离散数学与算法》曹晓东 原旭 编著 机械工业出版社

《离散数学》曲婉玲,耿素云,张立昂著 高等教育出版社

四、课程简介

《离散数学》是计算机科学与技术及相关专业的核心、骨干课程,是计算机科学与技术

的基础理论之一。

Page 223: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

223

离散数学在本科计算机专业的授课内容一般分为四大部分:数理逻辑、集合论、代数

系统、图论,这四个部分紧密连接。数理逻辑描述了一个符号化体系,这个体系可以描述集

合论中的所有概念。集合论中又有三个小模块:集合、关系、函数。关系是集合中迪卡尔乘

积的子集,函数是关系的子集,代数系统是定义函数的运算,图论是一类特殊的代数系统。

离散数学课程设置的主要目的是培养学生的抽象思维能力和逻辑推理能力,并为后续课

程,如数据结构、编译原理、数据库、操作系统、软件工程、软件测试、人工智能等课程提

供必要的数学基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

2.问题分析:能够应用数

学、自然科学和工程科学的

基本原理,识别、表达、并

通过文献研究分析复杂工

程问题,以获得有效结论。

①运用数理方法制定分析

模型

(高级能力)熟练掌握应用

数理知识描述和解决工程

问题的方法

12.终身学习:具有自主学

习和终身学习的意识,有不

断学习和适应发展的能力。

②掌握自主文献检索、资料

查询及运用现代信息技术

跟踪并获取相关信息的基

本方法

(中级能力)掌握基础知识

并可以通过信息化手段追

踪其最新发展,用以解决实

际工程问题。

(二)教学目标

目标内容 具体目标

专业知识 掌握在命题逻辑和谓词逻辑中对公式进行判定和推理的方法

了解容斥定理,康托定理和判断集合等势的方法

掌握关系的表示方法和各种运算

掌握判断代数系统同态和同构的方法

掌握群和子群的性质。

掌握图和树的性质。

了解环,域,格和布尔代数等代数等代数系统

专业技能 掌握应用谓词逻辑将实际工程问题符号化的方法

掌握应用关系的方法对工程问题中的各个要素进行分析的方法。

掌握应用图模型描述实际工程问题的方法。

(三)教学任务

Page 224: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

224

本课程将理论讲授与课上操作、课后作业环节相结合,使学生更深入地理解和掌握

应用数理逻辑,集合论,代数系统和图论等知识来解决实际工程问题的基本方法,可以

将实际工程问题转化为相应的数学模型,并通过对模型的分析,找出适合的解决方法,

为在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:数理逻辑,集合论,代数系统和图论。

第一部分:数理逻辑

学生要了解的基础知识:命题,逻辑联结词和合式公式的定义;合式公式的类型;

范式的定义;命题逻辑的推理规则;谓词,个体和量词的定义;前束范式的定义;谓词

逻辑下的推理规则。

1.熟练掌握将自然语言的问题描述转化为符号化语言的描述

内容包括:命题,逻辑联结词,个体,谓词,量词,合式公式

2.熟练掌握合式公式类型的判定方法

内容包括:永真式,永假式,可满足式,真值表,逻辑恒等式,主范式,论域

3.熟练掌握逻辑推理规则

内容包括:逻辑恒等式,永真蕴含式,PT规则,附加前提证明法,反证法

第二部分:集合论

学生要了解的基础知识:集合,关系和函数的定义;集合,关系和函数的基本运算

和性质;关系图和关系矩阵的表示方法;等价关系和序关系;基数

4.熟练掌握应用关系描述实际问题的方法

内容包括:笛卡尔乘积,关系的构造和表示方法,关系的运算和性质

5.掌握应用容斥原理来统计集合中的元素个数

内容包括:集合,集合运算,集合恒等式,容斥原理

6.掌握无限集合基数的计算方法

内容包括:双射函数,幂集,康托定理

第三部分:代数系统

学生要了解的基础知识:运算和代数系统的定义;运算的性质;同态和同构;群的

定义和性质;格的定义和性质

7.掌握判断运算性质的方法

内容包括:交换律,结合律,分配率,幂等律,幺元,零元,逆元

8.熟练掌握判断代数系统同态和同构的方法

内容包括:同态函数,二元运算,双射函数,满同态

9.熟练掌握子群判定方法和拉格朗日定理

内容包括:子群判定的三个定理,子群的元素数同母群元素数之间的关系

10.掌握格同偏序集之间的关系

内容包括:最大元,最小元

Page 225: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

225

第四部分:图论

学生要了解的基础知识:图的定义及表示方法;度的定义;路径和回路的定义;连

通图的定义;欧拉图和哈密尔顿图的定义和判定方式;二部图的定义;平面图的定义和

性质;树的定义和性质。

11.熟练掌握图的表示方法

内容包括:节点,边,有向图,无向图,邻接矩阵,可达性矩阵,关联矩阵

12.熟练掌握判断图的连通性的方法

内容包括:连通图,极大连通子图,割边,割点,应用矩阵判断图连通性的方法

13.熟练掌握欧拉图和哈密尔顿图的判定方法

内容包括:欧拉通路,欧拉回路,判定欧拉图的充要条件,哈密尔顿通路,哈密尔

顿回路,判定哈密尔顿图的充分条件和必要条件

14.掌握应用二部图进行匹配的方法

内容包括:匹配,完美匹配,完美匹配的充要条件和充分条件

15.掌握平面图的对偶图和着色问题

内容包括:欧拉定理,四色定理

16.熟练掌握生成最小生成树和最优二叉树的方法

内容包括:生成树,最小生成树,最小生成树的生成算法,加权二叉树,最优二叉

树,最优二叉树的生成算法

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,提出符号

化的模型

符号化模型可以有

效的描述工程问题

的各种需求

4 4 课后作业

2 运用关系方法,提

取实际工程问题中

各个要素之间的联

系。

可以通过关系的各

种运算,有效地建立

各个要素之间的联

10 4 课后作业

3 应用图模型描述实

际工程问题

设计适当的节点和

边,并用图的性质来

描述问题的解

15 4 课后作业

Page 226: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

226

七、实践项目实施计划表

本课程为专业核心基础课,没有设置实践项目。

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 熟练掌握

将自然语言

的问题描述

转化为符号

化语言的描

命题,逻辑联结词,个体,谓词,

量词,合式公式 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 4

1.2 熟练掌握

合式公式类

型的判定方

永真式,永假式,可满足式,真值

表,逻辑恒等式,主范式,论域 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 1 5

1.3 熟练掌握

逻辑推理规

逻辑恒等式,永真蕴含式,PT 规

则,附加前提证明法,反证法 2-①高级

掌握/

运用/

分析

讲授、

讨论 6 1 7

Page 227: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

227

工程建模 面向具有工程背景的问题,提出符

号化的模型 2-①高级

掌握/

运用/

分析

讨论 课后

作业 4 4

2

2.1 熟练掌握

应用关系描

述实际问题

的方法

集合的运算,笛卡尔乘积,关系的

构造和表示方法,关系的运算和性

质,函数的运算和性质

2-①高级

掌握/

运用/

分析

讲授、

讨论 18 2 20

2.2 掌握应用

容斥原理来

统计集合中

的元素个数

集合,集合运算,集合恒等式,容

斥原理

12-②中级

级 掌握

讲授、

讨论 2 2

2.3 掌握无限

集合基数的

计算方法

双射函数,幂集,康托定理 12-②中级

级 掌握

讲授、

讨论 2 2

需求分析 运用关系方法,提取实际工程问题

中各个要素之间的联系。

2-①高级

12-②中级

掌握/

运用/

分析

讨论 课后

作业 4 4

3

3.1 掌握判断

运算性质的

方法

交换律,结合律,分配率,幂等律,

幺元,零元,逆元

12-②中级

级 掌握

讲授、

讨论 2 2

Page 228: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

228

统 3.2 熟练掌握

判断代数系

统同态和同

构的方法

同态函数,二元运算,双射函数,

满同态 2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 2

3.3 熟练掌握

子群判定方

法和拉格朗

日定理

子群判定的三个定理,子群的元素

数同母群元素数之间的关系 2-①高级

掌握/

运用/

分析

讲授、

讨论 4 1 5

3.4 掌握格

同偏序集之

间的关系

最大元,最小元 12-②中级 掌握 讲授、

讨论 2 2

4

4.1 熟练掌握

图的表示方

节点,边,有向图,无向图,邻接

矩阵,可达性矩阵,关联矩阵 2-①高级

掌握/

运用/

分析

讲授、

讨论 1 1

4.2 熟练掌握

判断图的连

通性的方法

连通图,极大连通子图,割边,割

点,应用矩阵判断图连通性的方法 2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 3

4.3 熟练掌握

欧拉图和哈

密尔顿图的

判定方法

欧拉通路,欧拉回路,判定欧拉图

的充要条件,哈密尔顿通路,哈密

尔顿回路,判定哈密尔顿图的充分

条件和必要条件

2-①高级

掌握/

运用/

分析

讲授、

讨论 2 1 3

Page 229: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

229

4.4 掌握应用

二部图进行

匹配的方法

匹配,完美匹配,完美匹配的充要

条件和充分条件 12-②中级 掌握

讲授、

讨论 2 2

4.5 掌握平面

图的对偶图

和着色问题

欧拉定理,四色定理 12-②中级 掌握 讲授、

讨论 1 1

4.6 熟练掌

握生成最小

生成树和最

优二叉树的

方法

生成树,最小生成树,最小生成树

的生成算法,加权二叉树,最优二

叉树,最优二叉树的生成算法

2-①高级

掌握/

运用/

分析

讲授、

讨论 2 2

工程建模及求

设计适当的节点和边,并用图的性

质来描述问题的解

12-①高级

12-②中级

掌握/

运用/

分析

课后

作业 4 4 4

合计 56 8 12 64 12

Page 230: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

230

九、教学方法及组织形式

1.课堂讲授为主,课后作业为辅。本课程从以实例教学为驱动,对离散数学的基

础知识进行讲解分析,不断提升学生能力。以课堂讲授、课堂练习和测试等手段,最终

实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和运行引入教

学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

使用投影仪,采用多媒体与板书相结合教学手段

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

课后作业 基础知识 每周 30%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 2-①高级能力、12-②中级能力 占总成绩 30%

期末考试 2-①高级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

Page 231: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

231

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

填空题:

15个、30%

应用题:

1个、10%

证明题:

2 个、20%

计算题:

1个、10%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

Page 232: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

232

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:陈志奎

审核人签字:陈志奎

专业负责人签字:夏锋

主管院长:郭禾

制定日期:2015年 3月

Page 233: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

233

《软件测试与质量保证》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090441050

2. 课程中文名称: 软件测试与质量保证

3. 课程英文名称: Software Testing and Quality Assurance

4. 课程性质: 限选课

5. 考核方式: 平时成绩 + 实验成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《软件工程》、《UML》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 8 3 0

二、任课教师

周勇(副教授)、朴勇(副教授)

三、教材及主要参考资料

教 材: 《软件测试》(第 3版). Paul C. Jorgensen著,李海峰、马

琳译. 人民邮电出版社. 2011.

参考资料: 《软件测试与质量保证-理论与实践》. Kshirasagar Naik,

Priyadarshi Tripathy著,郁莲等译. 电子工业出版社.2013.

CMMI/CMU

四、课程简介

《软件测试与质量保证》是为软件工程专业方向开设的专业特色课程之一。本课程

的任务是,使学生认识到软件测试和质量保证技术是保证软件质量与可靠性的关键因

Page 234: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

234

素,软件开发失败的主要原因是由于软件测试和质量保证出现问题或者是不充分。掌握

软件开发生命周期中需要使用的测试阶段、标准和理论方法,能够熟练使用工程方法分

析设计测试策略和测试用例,掌握在结构化分析设计和面向对象技术中的软件测试技

术,熟练掌握主流的测试自动化平台,掌握质量保证的规范、流程、实施方法以及不符

合问题的处理等能力。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

② 评价专业工程实践和复

杂工程问题解决方案,评价

对社会、健康、安全、法律

以及文化的影响

(初级能力)了解软件质量

的国际标准和模型,了解软

件生命周期中对缺陷对产

品造成的影响,了解软件的

质量控制与检验的重要性。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

① 识别及预测软件开发、

实施、维护中可能出现问

题,并采取恰当的应对措施

(高级能力)掌握软件系统

中的单元、集成、系统测试

分方法,掌握软件质量保证

的规程和方法,掌握主流测

试的工具平台。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

② 理解和评价技术发展可

能带来的环境、社会问题

(中级能力)掌握软件新技

术下的测试要求和方法,包

括功能和非功能测试技术。

(二)教学目标

目标内容 具体目标

专业知识 学习软件测试和质量保证的基本理论知识,掌握软件缺陷、测试模型

技术、质量保证规范等基本知识,了解 ISO/CMMI 等软件质量标准和模

掌握质量保证过程和方法

掌握软件测试的 V 模型

掌握单元测试、集成测试、系统测试技术

掌握白盒测试和黑盒测试方法

掌握面向对象软件的测试方法

掌握自动化测试和测试工具和性能测试方法

Page 235: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

235

了解软件测试与质量保证的前沿和新发展动向

专业技能 掌握 QA 对软件质量的评审流程和方法,具有计划和安排软件质量保证

工作的能力

掌握使用逻辑覆盖率和路径覆盖率的白盒测试方法,具有设计软件结

构测试用例的能力

掌握使用等价类、决策表、边界值等黑盒测试方法,具有设计软件功

能测试用例的能力

掌握基于用例、时序图、状态图等面向对象软件测试方法,具有设计

类、构件、系统的测试用例和测试驱动的能力;

掌握软件测试自动化框架,具有应用主流软件测试工具平台的能力

(三)教学任务

本课程将理论讲授与上机实验环节相结合,使学生更深入地理解和掌握软件测试和

质量保证的基本原理、方法、应用技术,熟练应用黑盒、白盒技术方法对软件的结构和

功能及非功能进行完备的测试,并能使用质量模型评估和检查软件过程的质量,培养学

生的工程实践学习能力,使学生掌握主流软件测试平台的实验方法,获得实验技能的基

本训练,具有运用软件测试与质量保证规范和方法的能力。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

一、 软件测试基本知识

讲授软件测试与质量保证的研究对象、内容,测试的一般理论基础和机械设计的基

本要求和一般设计过程。

(1) 了解软件测试的概念

(2) 了解软件危机和缺陷案例,软件的质量评价,软件缺陷的定义,软件测试的

意义

(3) 了解软件的开发过程和模式,软件测试的生命周期

(4) 掌握软件测试中黑盒和白盒测试的一般理论和分类

二、 软件质量保证的原理和流程

学习软件质量体系和软件质量保证规范

(1) 了解 ISO,CMMI 质量体系。

(2) 掌握 SQA规范流程。

(3) 掌握评审方法。

三、 白盒测试技术

学习逻辑覆盖率测试和结构路径测试

(1) 了解白盒测试技术的基本原理。

(2) 掌握语句、判定、条件等白盒测试方法。

Page 236: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

236

(3) 掌握独立路径的白盒测试方法。

(4) 掌握代码静态审查的测试方法

四、 黑盒测试技术

学习黑盒测试思想和黑盒测试方法

(1) 了解黑盒测试技术的基本原理。

(2) 掌握等价类的黑盒测试方法。

(3) 掌握边界值的黑盒测试方法。

(4) 掌握决策表的黑盒测试方法

五、 软件测试模型

学习软件测试 V模型和软件测试的阶段

(1) 了解软件测试 V模型基本原理。

(2) 掌握单元测试的测试要点。

(3) 掌握集成测试的测试要点。

(4) 掌握系统及验收测试的测试要点

六、 软件测试分类

学习软件测试需求与测试策略

(1) 了解边界、约束、强度、安全等等方面的测试要求和方法。

(2) 了解软件的配置测试、兼容性测试、语言测试、易用性测试,文档测试。

七、 面向对象软件测试技术

学习面向对象技术的逻辑覆盖率测试和结构路径测试

(1) 了解面向对象测试技术的基本原理。

(2) 掌握类方法和类状态测试方法。

(3) 掌握类或组件间的消息调用集成测试方法。

(4) 掌握面向用例场景的测试方法

八、 软件测试管理

学习软件测试的管理流程和缺陷报告与分析方法。

(1) 了解软件测试管理的基本原理。

(2) 掌握软件测试计划制定方法。

(3) 掌握缺陷报告方法。

(4) 掌握缺陷分析和质量评价技术

九、 软件测试自动化

学习软件测试自动技术和主流的测试自动化工具平台应用

(1) 了解软件测试自动化的基本原理。

(2) 掌握主流软件测试工具平台,用以完成代码和系统的自动化测试

Page 237: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

237

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 阅读 CMMI,特别是

PPQA内容

掌握质量体系,提出

PPQA的应用过程设

计,制定相应的评审

规程

4 2 课后作业

2 阅读性能测试原理 掌握软件性能测试

的度量评价指标和

方法,学习使用主流

性能测试工具

7 4 课后作业

Page 238: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

238

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 在线唱片

销售系统 单元项目 2 测试管理

完成测试

设计和报

实践教学 4 课程操作

和报告

软件测试

实验室 验证型

2 在线唱片

销售系统 单元项目 4 动态黑盒测试

完成测试

设计和报

实践教学 8 课程操作

和报告

软件测试

实验室

综合型试

3 洗衣机系

统 单元项目 6

静态和动态代码白

盒测试

完成测试

设计和报

实践教学 8 课程操作

和报告

软件测试

实验室

综合型试

4 飞机订票

系统 单元项目 8 性能测试

完成测试

设计和报

实践教学 4 课程操作

和报告

软件测试

实验室

综合型试

Page 239: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

239

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

软件

测试

基本

知识

1.1 了解软件

测试的概念 软件测试概念 7-②中级 了解

讲授、

讨论 1 1

1.2 了解软件

质量和缺陷

软件的质量评价指标,软件缺陷的

定义 7-①高级 了解

讲授、

讨论 1 1

1.3 了解软件

的开发过程和

模式,软件测

试的生命周期

软件过程模型,测试过程模型 6-②初级 了解 讲授、

讨论 1 1

1.4掌握软件

测试中黑盒和

白盒测试的一

般理论和分类

黑盒和白盒测试原理,测试用例,

测试的功能和非功能测试分类 6-②初级 掌握

讲授、

讨论 1 1

Page 240: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

240

2

软件

质量

保证

的原

理和

流程

2.1了解 ISO,

CMMI质量体系

ISO 9000-3,

CMMI 7-②中级 掌握

讲授、

讨论 1 1

2.2 掌握 PPQA

规范流程 软件过程与产品质量保证(PPQA) 7-①高级 掌握

讲授、

讨论 2 2

2.3 掌握评审

方法 走查、审查、评审流程和方法 7-①高级 掌握

讲授、

讨论 1 1

3

白盒

测试

技术

3.1 了解白盒

测试技术的基

本原理

白盒测试的代码结构与数据流分析 6-②初级 了解 讲授、

讨论 1 1

3.2 掌握逻辑

覆盖白盒测试

方法

语句、判定、条件等逻辑覆盖测试

用例设计方法 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

3.3 掌握独立

路径的白盒测

试方法。

代码环形复杂度计算,代码路径设

计和数量计算,代码路径测试用例

设计

7-①高级 掌握

讲授、

讨论、

实验

1 2 3

Page 241: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

241

3.4代码静态

审查 掌握代码静态审查的测试方法 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

4

白盒

测试

技术

4.1 了解黑盒

测试技术的基

本原理

设计测试用例,保证既充分又无冗

余 6-②初级 了解

讲授、

讨论 1 1

4.2 掌握等价

类的黑盒测试

方法

等价类测试原理,四种等价类测试

方法,测试用例数量的计算,案例

分析

7-①高级 掌握

讲授、

讨论、

实验

2 2 4

4.3 掌握边界

值的黑盒测试

方法

边界值测试原理,四种边界值测试

方法,测试用例数量的计算,案例

分析

7-①高级 掌握

讲授、

讨论、

实验

1 2 3

4.4掌握决策

表的黑盒测试

方法

决策表测试原理,条件设计包含主

次、互斥条件,规则数和测试用例

数量的计算,案例分析

7-①高级 掌握

讲授、

讨论、

实验

2 2 4

5

软件

5.1 了解软件

测试模型

软件测试的 V模型或者 W模型

7-②中级 了解

讲授、

讨论 0.5 0.5

Page 242: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

242

测试

模型

5.2 掌握单元

测试的测试要

单元测试测试点:代码模块定义、

参数、变量、逻辑、路径、容错处

理、返回值等

7-②中级 掌握 讲授、

讨论 0.5 0.5

5.3 掌握集成

测试的测试要

点。

增量测试方法,测试要点是:验证

模块间的接口和数据流 7-②中级 掌握

讲授、

讨论 0.5 0.5

5.4掌握系统

及验收测试的

测试要点

验证系统的功能和非功能流程的正

确性 7-②中级 掌握

讲授、

讨论 0.5 0.5

6

软件

测试

分类

6.1 了解软件

其他方面的测

试要求

边界、约束、强度、安全等测试要

求和方法。

6-②初级 了解 讲授、

讨论 1 1

6.2 了解软件

其他方面的测

试要求

配置测试、兼容性测试、语言测试、

易用性测试,文档测试等 7-②中级 了解

讲授、

讨论 1 1

7

面向

对象

7.1 了解面向

对象测试技术

的基本原理。

基于 UML模型的测试原理和映射 6-②初级 了解 讲授、

讨论 1 1

Page 243: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

243

软件

测试

技术

7.2 掌握类方

法和类状态测

试方法

基于类图类方法代码的逻辑覆盖测

试,类内方法调用产生的类状态测

试方法

7-①高级 掌握 讲授、

讨论 1 1

7.3 掌握类或

组件间的消息

调用集成测试

方法。

基于时序图的类对象间消息路径测

试 7-①高级 掌握

讲授、

讨论 1 1

7.4掌握面向

用例场景的测

试方法

基于用例场景的事件流路径测试 7-①高级 掌握 讲授、

讨论 1 1

8

软件

测试

管理

8.1 了解软件

测试管理的基

本原理。

软件测试的 PDCA 流程 7-②中级 了解 讲授、

讨论 1 1

8.2 掌握软件

测试计划制定

方法。

软件测试策划过程,软件测试计划

内容 7-①高级 掌握

讲授、

讨论、

实验

2 2 4

8.3 掌握缺陷

报告方法。 软件缺陷分类、状态,缺陷的报告 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

8.4掌握缺陷

分析和质量评

基于缺陷密度、龄期、趋势的缺陷

分析方法 7-①高级 掌握

讲授、

讨论、 1 2 3

Page 244: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

244

价技术 实验

9

软件

测试

自动

9.1 了解软件

测试自动化的

基本原理。

基于扑捉/回放的测试机制

性能测试的主要参数和框架 7-②中级 了解

讲授、

讨论 1 1

9.2 掌握主流

软件测试工具

平台,用以完

成代码和系统

的自动化测试

主流的软件测试平台使用 7-①高级 掌握

讲授、

讨论、

实验

1 6 7

合计 32 24 56

Page 245: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

245

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 3

分。

签到 日常考核 10%

实验 系统分析 实验报告 第 3-8 周 20%

课后作业 软件测试和质量保证方

法 作业 第 1-8 周 10%

终结性考核 期末考试 全部知识单元教学内容 考试 考试周 60 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

平时表现 占总成绩 10%

Page 246: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

246

课后作业 7-①高级、6-②初级 占总成绩 10%

实验 7-①高级、7-②中级 占总成绩 20%

期末考试 7-①高级、7-②中级、6-②初级 占总成绩 60 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

问答题:

3 个、30%

应用题:

3 个、50%

论述题:

计算题:

1 个

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 97 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

Page 247: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

247

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:周勇

审核人签字:周勇

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

Page 248: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

248

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090441050

2. 课程中文名称: 软件测试与质量保证

3. 课程英文名称: Software Testing and Quality Assurance

4. 课程性质: 限选课

5. 考核方式: 平时成绩 + 实验成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《软件工程》、《UML》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 8 3 6

二、任课教师

周勇(副教授)、朴勇(副教授)

三、教材及主要参考资料

教 材: 《软件测试》(第 3 版). Paul C. Jorgensen 著,李海峰、马

琳译. 人民邮电出版社. 2011.

参考资料: 《软件测试与质量保证-理论与实践》. Kshirasagar Naik,

Priyadarshi Tripathy著,郁莲等译. 电子工业出版社.2013.

CMMI/CMU

四、课程简介

《软件测试与质量保证》是为软件工程专业方向开设的专业特色课程之一。本课程

的任务是,使学生认识到软件测试和质量保证技术是保证软件质量与可靠性的关键因

素,软件开发失败的主要原因是由于软件测试和质量保证出现问题或者是不充分。掌握

软件开发生命周期中需要使用的测试阶段、标准和理论方法,能够熟练使用工程方法分

析设计测试策略和测试用例,掌握在结构化分析设计和面向对象技术中的软件测试技

术,熟练掌握主流的测试自动化平台,掌握质量保证的规范、流程、实施方法以及不符

Page 249: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

249

合问题的处理等能力。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

② 评价专业工程实践和复

杂工程问题解决方案,评价

对社会、健康、安全、法律

以及文化的影响

(初级能力)了解软件质量

的国际标准和模型,了解软

件生命周期中对缺陷对产

品造成的影响,了解软件的

质量控制与检验的重要性。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

① 识别及预测软件开发、

实施、维护中可能出现问

题,并采取恰当的应对措施

(高级能力)掌握软件系统

中的单元、集成、系统测试

分方法,掌握软件质量保证

的规程和方法,掌握主流测

试的工具平台。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

② 理解和评价技术发展可

能带来的环境、社会问题

(中级能力)掌握软件新技

术下的测试要求和方法,包

括功能和非功能测试技术。

(二)教学目标

目标内容 具体目标

专业知识 学习软件测试和质量保证的基本理论知识,掌握软件缺陷、测试模

型技术、质量保证规范等基本知识,了解 ISO/CMMI 等软件质量标

准和模型

掌握质量保证过程和方法

掌握软件测试的 V 模型

掌握单元测试、集成测试、系统测试技术

掌握白盒测试和黑盒测试方法

掌握面向对象软件的测试方法

掌握自动化测试和测试工具和性能测试方法

了解软件测试与质量保证的前沿和新发展动向

专业技能 掌握 QA 对软件质量的评审流程和方法,具有计划和安排软件质量

保证工作的能力

Page 250: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

250

掌握使用逻辑覆盖率和路径覆盖率的白盒测试方法,具有设计软件

结构测试用例的能力

掌握使用等价类、决策表、边界值等黑盒测试方法,具有设计软件

功能测试用例的能力

掌握基于用例、时序图、状态图等面向对象软件测试方法,具有设

计类、构件、系统的测试用例和测试驱动的能力;

掌握软件测试自动化框架,具有应用主流软件测试工具平台的能力

(三)教学任务

本课程将理论讲授与上机实验环节相结合,使学生更深入地理解和掌握软件测试和

质量保证的基本原理、方法、应用技术,熟练应用黑盒、白盒技术方法对软件的结构和

功能及非功能进行完备的测试,并能使用质量模型评估和检查软件过程的质量,培养学

生的工程实践学习能力,使学生掌握主流软件测试平台的实验方法,获得实验技能的基

本训练,具有运用软件测试与质量保证规范和方法的能力。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

十、 软件测试基本知识

讲授软件测试与质量保证的研究对象、内容,测试的一般理论基础和机械设计的基

本要求和一般设计过程。

了解软件测试的概念

了解软件危机和缺陷案例,软件的质量评价,软件缺陷的定义,软件测试的意义

了解软件的开发过程和模式,软件测试的生命周期

掌握软件测试中黑盒和白盒测试的一般理论和分类

十一、 软件质量保证的原理和流程

学习软件质量体系和软件质量保证规范

了解 ISO,CMMI 质量体系。

掌握 SQA规范流程。

掌握评审方法。

十二、 白盒测试技术

学习逻辑覆盖率测试和结构路径测试

了解白盒测试技术的基本原理。

掌握语句、判定、条件等白盒测试方法。

掌握独立路径的白盒测试方法。

掌握代码静态审查的测试方法

十三、 黑盒测试技术

学习黑盒测试思想和黑盒测试方法

Page 251: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

251

了解黑盒测试技术的基本原理。

掌握等价类的黑盒测试方法。

掌握边界值的黑盒测试方法。

掌握决策表的黑盒测试方法

十四、 软件测试模型

学习软件测试 V模型和软件测试的阶段

了解软件测试 V模型基本原理。

掌握单元测试的测试要点。

掌握集成测试的测试要点。

掌握系统及验收测试的测试要点

十五、 软件测试分类

学习软件测试需求与测试策略

了解边界、约束、强度、安全等等方面的测试要求和方法。

了解软件的配置测试、兼容性测试、语言测试、易用性测试,文档测试。

十六、 面向对象软件测试技术

学习面向对象技术的逻辑覆盖率测试和结构路径测试

了解面向对象测试技术的基本原理。

掌握类方法和类状态测试方法。

掌握类或组件间的消息调用集成测试方法。

掌握面向用例场景的测试方法

十七、 软件测试管理

学习软件测试的管理流程和缺陷报告与分析方法。

了解软件测试管理的基本原理。

掌握软件测试计划制定方法。

掌握缺陷报告方法。

掌握缺陷分析和质量评价技术

十八、 软件测试自动化

学习软件测试自动技术和主流的测试自动化工具平台应用

了解软件测试自动化的基本原理。

掌握主流软件测试工具平台,用以完成代码和系统的自动化测试

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 阅读 CMMI,特别是

PPQA内容

掌握质量体系,提出

PPQA的应用过程设

计,制定相应的评审

4 2 课后作业

Page 252: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

252

规程

2 阅读性能测试原理 掌握软件性能测试

的度量评价指标和

方法,学习使用主流

性能测试工具

7 4 课后作业

Page 253: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

253

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 在线唱片

销售系统 单元项目 2 测试管理

完成测试

设计和报

实践教学 4 课程操作

和报告

软件测试

实验室 验证型

2 在线唱片

销售系统 单元项目 4 动态黑盒测试

完成测试

设计和报

实践教学 8 课程操作

和报告

软件测试

实验室

综合型试

3 洗衣机系

统 单元项目 6

静态和动态代码白

盒测试

完成测试

设计和报

实践教学 8 课程操作

和报告

软件测试

实验室

综合型试

4 飞机订票

系统 单元项目 8 性能测试

完成测试

设计和报

实践教学 4 课程操作

和报告

软件测试

实验室

综合型试

Page 254: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

254

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

软件

测试

基本

知识

1.1 了解软件

测试的概念 软件测试概念 7-②中级 了解

讲授、

讨论 1 1

1.2 了解软件

质量和缺陷

软件的质量评价指标,软件缺陷的

定义 7-①高级 了解

讲授、

讨论 1 1

1.3 了解软件

的开发过程和

模式,软件测

试的生命周期

软件过程模型,测试过程模型 6-②初级 了解 讲授、

讨论 1 1

1.4掌握软件

测试中黑盒和

白盒测试的一

般理论和分类

黑盒和白盒测试原理,测试用例,

测试的功能和非功能测试分类 6-②初级 掌握

讲授、

讨论 1 1

Page 255: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

255

2

软件

质量

保证

的原

理和

流程

2.1了解 ISO,

CMMI质量体系

ISO 9000-3,

CMMI 7-②中级 掌握

讲授、

讨论 1 1 2

2.2 掌握 PPQA

规范流程 软件过程与产品质量保证(PPQA) 7-①高级 掌握

讲授、

讨论 2 2

2.3 掌握评审

方法 走查、审查、评审流程和方法 7-①高级 掌握

讲授、

讨论 1 1

3

白盒

测试

技术

3.1 了解白盒

测试技术的基

本原理

白盒测试的代码结构与数据流分析 6-②初级 了解 讲授、

讨论 1 1

3.2 掌握逻辑

覆盖白盒测试

方法

语句、判定、条件等逻辑覆盖测试

用例设计方法 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

3.3 掌握独立

路径的白盒测

试方法。

代码环形复杂度计算,代码路径设

计和数量计算,代码路径测试用例

设计

7-①高级 掌握

讲授、

讨论、

实验

1 2 3

Page 256: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

256

3.4代码静态

审查 掌握代码静态审查的测试方法 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

4

白盒

测试

技术

4.1 了解黑盒

测试技术的基

本原理

设计测试用例,保证既充分又无冗

余 6-②初级 了解

讲授、

讨论 1 1

4.2 掌握等价

类的黑盒测试

方法

等价类测试原理,四种等价类测试

方法,测试用例数量的计算,案例

分析

7-①高级 掌握

讲授、

讨论、

实验

2 2 4

4.3 掌握边界

值的黑盒测试

方法

边界值测试原理,四种边界值测试

方法,测试用例数量的计算,案例

分析

7-①高级 掌握

讲授、

讨论、

实验

1 2 3

4.4掌握决策

表的黑盒测试

方法

决策表测试原理,条件设计包含主

次、互斥条件,规则数和测试用例

数量的计算,案例分析

7-①高级 掌握

讲授、

讨论、

实验

2 2 4

5

软件

5.1 了解软件

测试模型

软件测试的 V模型或者 W模型

7-②中级 了解

讲授、

讨论 0.5 0.5

Page 257: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

257

测试

模型

5.2 掌握单元

测试的测试要

单元测试测试点:代码模块定义、

参数、变量、逻辑、路径、容错处

理、返回值等

7-②中级 掌握 讲授、

讨论 0.5 0.5

5.3 掌握集成

测试的测试要

点。

增量测试方法,测试要点是:验证

模块间的接口和数据流 7-②中级 掌握

讲授、

讨论 0.5 0.5

5.4掌握系统

及验收测试的

测试要点

验证系统的功能和非功能流程的正

确性 7-②中级 掌握

讲授、

讨论 0.5 0.5

6

软件

测试

分类

6.1 了解软件

其他方面的测

试要求

边界、约束、强度、安全等测试要

求和方法。

6-②初级 了解 讲授、

讨论 1 1

6.2 了解软件

其他方面的测

试要求

配置测试、兼容性测试、语言测试、

易用性测试,文档测试等 7-②中级 了解

讲授、

讨论 1 1

7

面向

对象

7.1 了解面向

对象测试技术

的基本原理。

基于 UML模型的测试原理和映射 6-②初级 了解 讲授、

讨论 1 1

Page 258: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

258

软件

测试

技术

7.2 掌握类方

法和类状态测

试方法

基于类图类方法代码的逻辑覆盖测

试,类内方法调用产生的类状态测

试方法

7-①高级 掌握 讲授、

讨论 1 1

7.3 掌握类或

组件间的消息

调用集成测试

方法。

基于时序图的类对象间消息路径测

试 7-①高级 掌握

讲授、

讨论 1 1

7.4掌握面向

用例场景的测

试方法

基于用例场景的事件流路径测试 7-①高级 掌握 讲授、

讨论 1 1

8

软件

测试

管理

8.1 了解软件

测试管理的基

本原理。

软件测试的 PDCA 流程 7-②中级 了解 讲授、

讨论 1 1

8.2 掌握软件

测试计划制定

方法。

软件测试策划过程,软件测试计划

内容 7-①高级 掌握

讲授、

讨论、

实验

2 2 4

8.3 掌握缺陷

报告方法。 软件缺陷分类、状态,缺陷的报告 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

8.4掌握缺陷

分析和质量评

基于缺陷密度、龄期、趋势的缺陷

分析方法 7-①高级 掌握

讲授、

讨论、 1 2 3

Page 259: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

259

价技术 实验

9

软件

测试

自动

9.1 了解软件

测试自动化的

基本原理。

基于扑捉/回放的测试机制

性能测试的主要参数和框架 7-②中级 了解

讲授、

讨论 1 1 4

9.2 掌握主流

软件测试工具

平台,用以完

成代码和系统

的自动化测试

主流的软件测试平台使用 7-①高级 掌握

讲授、

讨论、

实验

1 6 7

合计 32 24 56 6

Page 260: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

260

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 3

分。

签到 日常考核 10%

实验 系统分析 实验报告 第 3-8 周 20%

课后作业 软件测试和质量保证方

法 作业 第 1-8 周 10%

终结性考核 期末考试 全部知识单元教学内容 考试 考试周 60 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

平时表现 占总成绩 10%

课后作业 7-①高级、6-②初级 占总成绩 10%

实验 7-①高级、7-②中级 占总成绩 20%

期末考试 7-①高级、7-②中级、6-②初级 占总成绩 60 %

Page 261: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

261

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10个、20%

问答题:

3 个、30%

应用题:

3个、50%

论述题:

计算题:

1 个

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 97 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

Page 262: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

262

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:周勇

审核人签字:周勇

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 263: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

263

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090441050

2. 课程中文名称: 软件测试与质量保证

3. 课程英文名称: Software Testing and Quality Assurance

4. 课程性质: 限选课

5. 考核方式: 平时成绩 +实验成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《软件工程》、《UML》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 8 3 6

二、任课教师

周勇(副教授)、朴勇(副教授)

三、教材及主要参考资料

教 材: 《软件测试》(第 3 版). Paul C. Jorgensen 著,李海峰、马

琳译. 人民邮电出版社. 2011.

参考资料: 《软件测试与质量保证-理论与实践》.KshirasagarNaik,

PriyadarshiTripathy著,郁莲等译.电子工业出版社.2013.

CMMI/CMU

四、课程简介

《软件测试与质量保证》是为软件工程专业方向开设的专业特色课程之一。本课程

的任务是,使学生认识到软件测试和质量保证技术是保证软件质量与可靠性的关键因

素,软件开发失败的主要原因是由于软件测试和质量保证出现问题或者是不充分。掌握

软件开发生命周期中需要使用的测试阶段、标准和理论方法,能够熟练使用工程方法分

析设计测试策略和测试用例,掌握在结构化分析设计和面向对象技术中的软件测试技

术,熟练掌握主流的测试自动化平台,掌握质量保证的规范、流程、实施方法以及不符

Page 264: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

264

合问题的处理等能力。

五、课程目标

(一)课程培养能力体系

1 级能力指标 2级能力指标 课程培养能力指标

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

② 评价专业工程实践和复

杂工程问题解决方案,评价

对社会、健康、安全、法律

以及文化的影响

(初级能力)了解软件质量

的国际标准和模型,了解软

件生命周期中对缺陷对产

品造成的影响,了解软件的

质量控制与检验的重要性。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

① 识别及预测软件开发、

实施、维护中可能出现问

题,并采取恰当的应对措施

(高级能力)掌握软件系统

中的单元、集成、系统测试

分方法,掌握软件质量保证

的规程和方法,掌握主流测

试的工具平台。

7.环境和可持续发展:能够

理解和评价针对复杂工程

问题的工程实践对环境、社

会可持续发展的影响。

② 理解和评价技术发展可

能带来的环境、社会问题

(中级能力)掌握软件新技

术下的测试要求和方法,包

括功能和非功能测试技术。

(二)教学目标

目标内容 具体目标

专业知识 学习软件测试和质量保证的基本理论知识,掌握软件缺陷、测试模

型技术、质量保证规范等基本知识,了解 ISO/CMMI 等软件质量标

准和模型

掌握质量保证过程和方法

掌握软件测试的 V 模型

掌握单元测试、集成测试、系统测试技术

掌握白盒测试和黑盒测试方法

掌握面向对象软件的测试方法

掌握自动化测试和测试工具和性能测试方法

了解软件测试与质量保证的前沿和新发展动向

专业技能 掌握 QA 对软件质量的评审流程和方法,具有计划和安排软件质量

保证工作的能力

掌握使用逻辑覆盖率和路径覆盖率的白盒测试方法,具有设计软件

结构测试用例的能力

掌握使用等价类、决策表、边界值等黑盒测试方法,具有设计软件

功能测试用例的能力

掌握基于用例、时序图、状态图等面向对象软件测试方法,具有设

Page 265: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

265

计类、构件、系统的测试用例和测试驱动的能力;

掌握软件测试自动化框架,具有应用主流软件测试工具平台的能力

(三)教学任务

本课程将理论讲授与上机实验环节相结合,使学生更深入地理解和掌握软件测试和

质量保证的基本原理、方法、应用技术,熟练应用黑盒、白盒技术方法对软件的结构和

功能及非功能进行完备的测试,并能使用质量模型评估和检查软件过程的质量,培养学

生的工程实践学习能力,使学生掌握主流软件测试平台的实验方法,获得实验技能的基

本训练,具有运用软件测试与质量保证规范和方法的能力。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

十九、 软件测试基本知识

讲授软件测试与质量保证的研究对象、内容,测试的一般理论基础和机械设计的基

本要求和一般设计过程。

了解软件测试的概念

了解软件危机和缺陷案例,软件的质量评价,软件缺陷的定义,软件测试的意义

了解软件的开发过程和模式,软件测试的生命周期

掌握软件测试中黑盒和白盒测试的一般理论和分类

二十、 软件质量保证的原理和流程

学习软件质量体系和软件质量保证规范

了解 ISO,CMMI 质量体系。

掌握 SQA规范流程。

掌握评审方法。

二十一、 白盒测试技术

学习逻辑覆盖率测试和结构路径测试

(1) 了解白盒测试技术的基本原理。

(2) 掌握语句、判定、条件等白盒测试方法。

(3) 掌握独立路径的白盒测试方法。

(4) 掌握代码静态审查的测试方法

二十二、 黑盒测试技术

学习黑盒测试思想和黑盒测试方法

(1) 了解黑盒测试技术的基本原理。

(2) 掌握等价类的黑盒测试方法。

(3) 掌握边界值的黑盒测试方法。

(4) 掌握决策表的黑盒测试方法

二十三、 软件测试模型

学习软件测试 V模型和软件测试的阶段

(1) 了解软件测试 V模型基本原理。

(2) 掌握单元测试的测试要点。

Page 266: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

266

(3) 掌握集成测试的测试要点。

(4) 掌握系统及验收测试的测试要点

二十四、 软件测试分类

学习软件测试需求与测试策略

(1) 了解边界、约束、强度、安全等等方面的测试要求和方法。

(2) 了解软件的配置测试、兼容性测试、语言测试、易用性测试,文档测试。

二十五、 面向对象软件测试技术

学习面向对象技术的逻辑覆盖率测试和结构路径测试

(1) 了解面向对象测试技术的基本原理。

(2) 掌握类方法和类状态测试方法。

(3) 掌握类或组件间的消息调用集成测试方法。

(4) 掌握面向用例场景的测试方法

二十六、 软件测试管理

学习软件测试的管理流程和缺陷报告与分析方法。

(1) 了解软件测试管理的基本原理。

(2) 掌握软件测试计划制定方法。

(3) 掌握缺陷报告方法。

(4) 掌握缺陷分析和质量评价技术

二十七、 软件测试自动化

学习软件测试自动技术和主流的测试自动化工具平台应用

(1) 了解软件测试自动化的基本原理。

(2) 掌握主流软件测试工具平台,用以完成代码和系统的自动化测试

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 阅读 CMMI,特别是

PPQA内容

掌握质量体系,提出

PPQA的应用过程设

计,制定相应的评审

规程

4 2 课后作业

2 阅读性能测试原理 掌握软件性能测试

的度量评价指标和

方法,学习使用主流

性能测试工具

7 4 课后作业

Page 267: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

267

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 在线唱片

销售系统 单元项目 2 测试管理

完成测试

设计和报

实践教学 4 课程操作

和报告

软件测试

实验室 验证型

2 在线唱片

销售系统 单元项目 4 动态黑盒测试

完成测试

设计和报

实践教学 8 课程操作

和报告

软件测试

实验室

综合型试

3 洗衣机系

统 单元项目 6

静态和动态代码白

盒测试

完成测试

设计和报

实践教学 8 课程操作

和报告

软件测试

实验室

综合型试

4 飞机订票

系统 单元项目 8 性能测试

完成测试

设计和报

实践教学 4 课程操作

和报告

软件测试

实验室

综合型试

Page 268: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

268

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

软件

测试

基本

知识

1.1 了解软件

测试的概念 软件测试概念 7-②中级 了解

讲授、

讨论 1 1

1.2 了解软件

质量和缺陷

软件的质量评价指标,软件缺陷的

定义 7-①高级 了解

讲授、

讨论 1 1

1.3 了解软件

的开发过程和

模式,软件测

试的生命周期

软件过程模型,测试过程模型 6-②初级 了解 讲授、

讨论 1 1

1.4掌握软件

测试中黑盒和

白盒测试的一

般理论和分类

黑盒和白盒测试原理,测试用例,

测试的功能和非功能测试分类 6-②初级 掌握

讲授、

讨论 1 1

Page 269: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

269

2

软件

质量

保证

的原

理和

流程

2.1了解 ISO,

CMMI质量体系

ISO 9000-3,

CMMI 7-②中级 掌握

讲授、

讨论 1 1 2

2.2 掌握 PPQA

规范流程 软件过程与产品质量保证(PPQA) 7-①高级 掌握

讲授、

讨论 2 2

2.3 掌握评审

方法 走查、审查、评审流程和方法 7-①高级 掌握

讲授、

讨论 1 1

3

白盒

测试

技术

3.1 了解白盒

测试技术的基

本原理

白盒测试的代码结构与数据流分析 6-②初级 了解 讲授、

讨论 1 1

3.2 掌握逻辑

覆盖白盒测试

方法

语句、判定、条件等逻辑覆盖测试

用例设计方法 7-①高级 掌握

讲授、

讨论、

实验 1 2 3

3.3 掌握独立

路径的白盒测

试方法。

代码环形复杂度计算,代码路径设

计和数量计算,代码路径测试用例

设计

7-①高级 掌握 讲授、

讨论、

实验 1 2 3

3.4代码静态

审查 掌握代码静态审查的测试方法 7-①高级 掌握

讲授、

讨论、

实验 1 2 3

Page 270: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

270

4

白盒

测试

技术

4.1 了解黑盒

测试技术的基

本原理

设计测试用例,保证既充分又无冗

余 6-②初级 了解

讲授、

讨论 1 1

4.2 掌握等价

类的黑盒测试

方法

等价类测试原理,四种等价类测试

方法,测试用例数量的计算,案例

分析

7-①高级 掌握 讲授、

讨论、

实验 2 2 4

4.3 掌握边界

值的黑盒测试

方法

边界值测试原理,四种边界值测试

方法,测试用例数量的计算,案例

分析

7-①高级 掌握 讲授、

讨论、

实验 1 2 3

4.4掌握决策

表的黑盒测试

方法

决策表测试原理,条件设计包含主

次、互斥条件,规则数和测试用例

数量的计算,案例分析

7-①高级 掌握 讲授、

讨论、

实验

2 2 4

5

软件

测试

模型

5.1 了解软件

测试模型

软件测试的 V模型或者 W模型

7-②中级 了解

讲授、

讨论 0.5 0.5

5.2 掌握单元

测试的测试要

单元测试测试点:代码模块定义、

参数、变量、逻辑、路径、容错处

理、返回值等

7-②中级 掌握 讲授、

讨论 0.5 0.5

5.3 掌握集成

测试的测试要

点。

增量测试方法,测试要点是:验证

模块间的接口和数据流 7-②中级 掌握

讲授、

讨论 0.5 0.5

5.4掌握系统 验证系统的功能和非功能流程的正 7-②中级 掌握 讲授、 0.5 0.5

Page 271: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

271

及验收测试的

测试要点

确性 讨论

6

软件

测试

分类

6.1 了解软件

其他方面的测

试要求

边界、约束、强度、安全等测试要

求和方法。

6-②初级 了解 讲授、

讨论 1 1

6.2 了解软件

其他方面的测

试要求

配置测试、兼容性测试、语言测试、

易用性测试,文档测试等 7-②中级 了解

讲授、

讨论 1 1

7

面向

对象

软件

测试

技术

7.1 了解面向

对象测试技术

的基本原理。

基于 UML模型的测试原理和映射 6-②初级 了解 讲授、

讨论 1 1

7.2 掌握类方

法和类状态测

试方法

基于类图类方法代码的逻辑覆盖测

试,类内方法调用产生的类状态测

试方法

7-①高级 掌握 讲授、

讨论 1 1

7.3 掌握类或

组件间的消息

调用集成测试

方法。

基于时序图的类对象间消息路径测

试 7-①高级 掌握

讲授、

讨论 1 1

7.4掌握面向

用例场景的测

试方法

基于用例场景的事件流路径测试 7-①高级 掌握 讲授、

讨论 1 1

8

软件

8.1 了解软件

测试管理的基软件测试的 PDCA 流程 7-②中级 了解

讲授、

讨论 1 1

Page 272: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

272

测试

管理

本原理。

8.2 掌握软件

测试计划制定

方法。

软件测试策划过程,软件测试计划

内容 7-①高级 掌握

讲授、

讨论、

实验 2 2 4

8.3 掌握缺陷

报告方法。 软件缺陷分类、状态,缺陷的报告 7-①高级 掌握

讲授、

讨论、

实验

1 2 3

8.4掌握缺陷

分析和质量评

价技术

基于缺陷密度、龄期、趋势的缺陷

分析方法 7-①高级 掌握

讲授、

讨论、

实验 1 2 3

9

软件

测试

自动

9.1 了解软件

测试自动化的

基本原理。

基于扑捉/回放的测试机制

性能测试的主要参数和框架 7-②中级 了解

讲授、

讨论 1 1 4

9.2 掌握主流

软件测试工具

平台,用以完

成代码和系统

的自动化测试

主流的软件测试平台使用 7-①高级 掌握

讲授、

讨论、

实验 1 6 7

合计 32 24 56 6

Page 273: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

273

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 3

分。

签到 日常考核 10%

实验 系统分析 实验报告 第 3-8 周 20%

课后作业 软件测试和质量保证方

法 作业 第 1-8 周 10%

终结性考核 期末考试 全部知识单元教学内容 考试 考试周 60 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

平时表现 占总成绩 10%

Page 274: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

274

课后作业 7-①高级、6-②初级 占总成绩 10%

实验 7-①高级、7-②中级 占总成绩 20%

期末考试 7-①高级、7-②中级、6-②初级 占总成绩 60 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

问答题:

3个、30%

应用题:

3个、50%

论述题:

计算题:

1个

其 他:

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(97% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

Page 275: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

275

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:周勇

审核人签字:周勇

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 6月

Page 276: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

276

《数据结构与算法》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430050

2. 课程中文名称: 数据结构与算法

3. 课程英文名称: Data Structures and Algorithms

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《面向对象方法与 C++程序设计》、《离散数学》

9. 后继课程: 《编译技术》《操作系统》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 4 4 0

二、任课教师 张宪超(教授)、于红(副教授)、刘馨月(副教授)、何增有(教授)、张淼(副教授)

三、教材及主要参考资料

教 材: 《数据结构、算法及应用》. 张宪超、刘馨月、于红等 编著. 科

学出版社. 2012.

参考资料: 《数据结构与算法》.许卓群著. 高等教育出版社.

《数据结构》.严蔚敏著.清华大学出版社.

《数据结构与算法-C++版》.佐兹戴克著.清华大学出版社.

四、课程简介

本课程是工科软件工程专业大类课程之一,也是信息学科相关专业学生掌握计算机程序

与现实世界问题关联的入门课程。本课程的任务是使学生从应用角度出发,掌握基本数

据结构的逻辑结构、物理结构及常用算法,能够运用课程所讨论的结构和算法更好地进

行数据处理,为进一步提高程序设计的能力、进一步学习和掌握计算机专业基础知识奠

定基础。

Page 277: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

277

五、课程目标

(一)课程培养能力体系

1级能力指标 2 级能力指标 课程培养能力指标

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂工程问

题。

② 掌握软件工程基础及

专业知识。

(高级能力)掌握数据的逻

辑结构、存储结构以及操作

的定义和实现,掌握基本的

算法复杂度分析方法

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂工程问

题。

③掌握计算机系统及网络系

统构成,并能够综合运用上述

专业知识解决软件工程及应

用领域的复杂工程问题。

(中级能力)运用栈、队

列 、二叉排序树、哈夫曼

树、最小生成树、Dijstra

算法等模型来求解工程问

题。能够根据实际工程需求

选择、设计合理的数据结

构,设计有效的算法完成相

关的数据增、删、改、查等

操作。

(二)教学目标

目标内容 具体目标

专业知识 了解数据结构的应用领域

掌握算法分析方法

掌握线性结构特点、操作

掌握二叉树结构特点、操作

掌握图结构特点、操作

掌握常见的检索方法

掌握常见的排序方法

专业技能 掌握使用线性表结构求解问题

掌握使用二叉树结构求解问题

掌握使用图结构求解问题

掌握使用检索和排序方法

掌握使用类图设计和算法流程设计

(三)教学任务

本课程将理论讲授与上机实践、课后大作业环节相结合,使学生更深入地理解和掌握线

性表结构、树结构和图结构以及常见的查找和排序算法,能够根据实际工程需求选择、

设计合理的数据结构,设计有效的算法;并熟练应用栈、队列、二叉树、图的相关操作

Page 278: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

278

来求解复杂工程问题。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 5大部分:基本概念及线性表结构,树与二叉树,图,检索,排序。

第一部分:基本概念及线性表结构

学生要掌握的基础知识:数据结构与算法概念;线性表结构的逻辑结构、存储结构、操

作的定义与实现;栈、队列结构的定义、实现与应用;字符串操作的定义与实现。

1.1 掌握数据结构的基本概念

内容包括:数据结构的基本概念,数据的逻辑结构与物理结构的相互关系,算法概念及

计算复杂度的概念,基本的算法分析方法。

1.2 了解线性表结构的逻辑结构特性,掌握顺序存储定义与实现

内容包括:线性表的逻辑结构特性,以及线性表的两种存储实现方式;顺序表的定义与

实现,包括搜索、插入、删除等基本算法的实现,基本算法的最坏情况和平均情况时间

复杂度分析。

1.3 掌握线性表结构链式存储的定义与实现

内容包括:单链表的定义与实现,包括搜索、插入、删除等基本算法的实现,循环链表

的概念和循环链表上的基本操作,双向链表的概念和双向链表上的基本操作。

1.4 掌握栈的概念、特性与实现

内容包括:栈的概念、特性,栈的顺序存储结构和链式存储结构及相应的基本操作,

用栈结构解决基本问题的经典案例,递归的栈实现思想。

1.5 掌握队列的概念、特性与实现

内容包括:队列的概念、特性,队列的顺序存储结构和链式存储结构及相应的基本操作,

用队列结构解决问题的案例。

1.6 掌握字符串常规操作

内容包括:字符串类的实现及基本算法实现,简单模式匹配算法,KMP 算法思想。

第二部分:树与二叉树

详细介绍二叉树的逻辑结构、存储结构、二叉树的遍历操作;特殊二叉树的定义、实现

及应用;树、森林的定义以及与二叉树的转换。

2.1 掌握二叉树的逻辑结构、存储结构及遍历操作实现

内容包括:二叉树的概念、性质及二叉树的表示,二叉树的遍历方法,线索化二叉树的

特性及寻找某结点的前驱和后继的方法。

2.2 掌握堆的定义、堆操作的实现。

内容包括:堆的定义,堆的建立、堆的插入与删除、堆的向上和向下调整等算法以及用

来实现优先级队列的方法。

2.3 掌握二叉搜索树的定义、操作的实现。

内容包括:二叉搜索树的定义,插入、删除、搜索算法实现,AVL 树的定义,平衡化旋

转、构造、插入、删除时的调整方法。

2.4 掌握哈夫曼树的定义、实现;应用哈夫曼树进行编码和解码。

内容包括:霍夫曼树的实现方法、构造霍夫曼编码的方法及带权路径长度的计算,霍夫

曼树编码和解码规则。

2.5 了解树与森林的基本概念,掌握掌握树与二叉树的相互转换

内容包括:树与森林的逻辑概念、存储方法、树的遍历算法,树与二叉树的转换方法。

第三部分:图

Page 279: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

279

本章讲述图结构的定义、存储实现及遍历操作;还详细介绍最小生成树定义和生成算法、

最短路径计算方法定义及实现、关键路径的定义及求解算法。

3.1 掌握图的概念、性质、存储实现。

内容包括:图的概念、性质及基本存储方法:邻接矩阵和邻接表,多重邻接表和十字链

表。

3.2 掌握图的遍历算法,了解图连通性判断方法

内容包括:深度优先搜索和广度优先搜索算法定义和实现、求连通分量的方法。

3.3 掌握构造最小生成的算法,了解相关应用

内容包括:构造最小生成树的 Prim算法和 Kruskal 算法定义、实现和分析。

3.4 掌握最短路径算法,了解相关应用

内容包括:求单源最短路径的 Dijkstra 算法分析、实现,求任意点之间的最短路径的

Floyd算法分析、实现。

3.5 了解关键路径概念和求解算法

内容包括:活动网络的表示方法,求关键路径的算法。

第四部分:检索

介绍常见的检索算法。本部分详细介绍基于线性结构的检索方法、散列检索方法和基于

动态结构的检索方法。

4.1 了解检索的意义,掌握基于线性结构的检索方法

主要内容:检索的概念、索引的概念及常见的索引结构;基于线性结构的检索算法(顺

序查找、折半查找)。

4.2 了解散列的思想,掌握散列冲突的解决方案。

主要内容:散列的思想,常用的散列函数及冲突解决方案,分析线性探查、二次探查的

平均搜索长度。

4.3 了解动态检索技术

主要内容:B树,B+树的概念、思想、插入、查找和实现的定义、用途。

第五部分:排序

介绍常见的排序算法,分析排序算法的时间复杂度、空间复杂度。

5.1 了解排序的基本概念,掌握插入排序算法的实现

主要内容:排序的基本概念,插入排序和折半插入排序的定义、实现和分析;希尔排序

的定义与实现。

5.2 掌握交换排序算法

主要内容:冒泡排序、快速排序的定义、特点、实现与分析。

5.3 掌握选择排序和归并排序

主要内容:直接选择排序、堆排序、归并排序的定义、实现与分析。

5.4 掌握基数排序思想,了解各类排序算法的适用范围

主要内容:基数排序定义、分析;各类排序算法的对比。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 应用栈结构设计可编

程计算器

提出系统需求方案,给

出类图设计和主要算法

的流程设计

4 6 课后作业

2 应用队列仿真银行叫

号系统

提出系统需求方案,给

出类图设计和主要算法5 6 课后作业

Page 280: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

280

的流程设计

3 字符串匹配算法实现

及应用

给出具体项目中字符串

匹配的应用实现 6 6 课后作业

4 应用哈夫曼树进行图

像数据的编码和解码

掌握哈夫曼树的设计与

实现,数据编码和解码

的程序设计

8 6 课后作业

5 由遍历序列确定二叉

给出通过先序序列和中

序序列以及中序序列和

后序序列确定二叉树的

代码实现

9 6 课后作业

6 最小生成树算法实现

及应用

编码实现 Prim 算法和

Kruskal 算法,给出流程

设计

10 6 课后作业

7 应用最短路径方法求

解实际问题

分析在逃犯拦截问题中

最短路径方法的设计,

给出相关类定义和实现

12 6 课后作业

8 应用查找和排序方法

求解复杂工程问题

掌握在智能通讯录管理

系统中各查找方法和排

序方法的选择和实现

16 6 课后作业

Page 281: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

281

七、实践项目实施计划表

序号 项目名称 项 目

类型 教学周 项目内容 项目成果 实施方法

课 内

学时 考核方式 实践场所 实验类型

1 顺 序 表 实

现及应用

单 元

项目 1

编码实现顺序存储的线性表,

实现插入、删除和查找操作

类设计、算法流

程设计、代码 实践教学 3 课程作业

课堂、

课下 综合型、验证型试验

2 链 表 实 现

与应用

单 元

项目 2

编码实现链式存储的线性表,

实现插入、删除和查找操作

类设计、算法流

程设计、代码 实践教学 3 课程作业

课堂、

课下 综合型、验证型试验

3 栈 实 现 与

应用

单 元

项目 3

编码实现栈,分析实际问题的

数据操作特性,给出基于栈的

解决方案

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

4 队 列 实 现

与应用

单 元

项目 4

编码实现队列,分析实际问题

的数据操作特性,给出基于队

列的解决方案

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

5 二 叉 树 存

储及遍历

单 元

项目 7

实现二叉树的链式存储结构

和遍历算法

类设计报告、代

码 实践教学 2 课程作业

课堂、

课下 验证型试验

6 堆 操 作 实

单 元

项目 8

实现基础顺序存储的堆和相

关操作 代码 实践教学 2 课程作业

课堂、

课下 验证型试验

7

二 叉 搜 索

树 操 作 实

单 元

项目 9

给出二叉搜索树的具体实现

和操作,根据实际问题应用二

叉搜索树

设计报告、代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

8

图 的 存 储

和 遍 历 操

作实现

单 元

项目 10

编码实现基于顺序存储结构

的图以及遍历操作 代码 实践教学 2 课程作业

课堂、

课下 验证型试验

Page 282: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

282

9

最 短 路 径

算 法 实 现

及应用

单 元

项目 12

编码实现 Dijkstra 算法和

Floyd 算法,并应用 Dijstra

算法求解实际问题

设计报告、代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

10

检 索 算 法

实 现 与 应

单 元

项目 14

编码实现常见的检索算法,并

根据实际问题选择恰当的检

索算法进行求解。

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

11

排 序 算 法

实 现 与 应

单 元

项目 16

编码实现常见的排序算法,并

根据实际问题选择恰当的排

序算法进行求解。

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

Page 283: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

283

八、各单元知识点、技能点分布及学时分配表

单 元

标题 小节标题 知识点与技能点

能力

目标

掌 握

程度

教 学

实施

考 核

方式

各教学环节学时分配

理论教学 实践教学

课内

小计

课 外

小计 讲

1

基 本

概 念

及 线

性 表

结构

1.1 了解数据结

构的基本概念

数据结构的基本概念,数据的逻辑结构与

物理结构的相互关系,算法概念及计算复

杂度的概念,基本的算法分析方法。

1-②

高级 了解

讲授、

讨论 2 2

1.2 了解线性表

结构的逻辑结构

特性,掌握顺序

存储定义与实现

线性表的逻辑结构特性,以及线性表的两

种存储实现方式;顺序表的定义与实现,

包括搜索、插入、删除等基本算法的实现,

基本算法的最坏情况和平均情况时间复

杂度分析。

1-②

高级

1-③

中级

了解/

掌握

讲授、

讨论 2 3 5

1.3 掌握线性表

结构链式存储的

定义与实现

单链表的定义与实现,包括搜索、插入、

删除等基本算法的实现,循环链表的概念

和循环链表上的基本操作,双向链表的概

念和双向链表上的基本操作。

1-②

高级 掌握

讲授、

讨论 2 3 5

Page 284: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

284

1.4 掌握栈的概

念、特性与实现

栈的概念、特性,栈的顺序存储结构和链

式存储结构及相应的基本操作,用栈结构

解决基本问题的经典案例,递归的栈实现

思想。

1-②

高级

1-③

中级

掌握/

运用

讲授、

讨论 2 2 4

1.5 掌握队列的

概念、特性与实

队列的概念、特性,队列的顺序存储结构

和链式存储结构及相应的基本操作,用队

列结构解决问题的案例。

1-②

高级

1-③

中级

掌握/

运用

讲授、

讨论 2 2 4

1.6 了解字符串

常规操作

字符串类的实现及基本算法实现,简单模

式匹配算法,KMP 算法思想。

1-②

高级

1-③

中级

了解 讲授、

讨论 1 1

测试 A 线性表结构的定义、特点及操作、分析

1-②

高级

随 堂

测试 1 1

线性表结构综合

应用

面向实际问题,给出基于栈结构的求解方

案。

1-②

高级

1-③

中级

掌握 /

运用/

分析

讨论 课 后

作业

Page 285: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

285

2

树 与

二 叉

2.1 掌握二叉树

的逻辑结构、存

储结构及遍历操

作实现

二叉树的概念、性质及二叉树的表示,二

叉树的遍历方法,线索化二叉树的特性及

寻找某结点的前驱和后继的方法。

1-②

高级

掌握 讲授、

讨论 2 2 4

2.2 掌握堆的定

义、堆操作的实

现。

堆的定义,堆的建立、堆的插入与删除、

堆的向上和向下调整等算法以及用来实

现优先级队列的方法。

1-②

高级

掌握/

运用

讲授、

讨论 2 2 4

2.3 掌握二叉搜

索树的定义、操

作的实现。

二叉搜索树的定义,插入、删除、搜索算

法实现,AVL 树的定义,平衡化旋转、构

造、插入、删除时的调整方法。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2 4

2.4 掌握哈夫曼

树的定义、实现;

应用哈夫曼树进

行编码和解码。

哈夫曼树的实现方法、构造哈夫曼编码的

方法及带权路径长度的计算,哈夫曼树编

码和解码规则。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2

2.5 了解树与森

林的基本概念,

掌握掌握树与二

叉树的相互转换

树与森林的逻辑概念、存储方法、树的遍

历算法,树与二叉树的转换方法。

1-②

高级

了解 讲授、

讨论 2 2

测试 B 1-②

高级

随 堂

测试 2 2

Page 286: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

286

1-③

中级

二叉树结构综合

应用

应用哈夫曼树进行图像数据的编码和解

1-②

高级

1-③

中级

掌握 /

运用/

分析

讨论 课 后

作业

3

3.1 了解图的概

念、性质、存储

实现。

图的概念、性质及基本存储方法:邻接矩

阵和邻接表,多重邻接表和十字链表。

1-②

高级

了解 讲授、

讨论 1 1

3.2 掌握图的遍

历算法,了解图

连通性判断方法

深度优先搜索和广度优先搜索算法定义

和实现、求连通分量的方法。

1-②

高级

掌握 讲授、

讨论 2 2 4

3.3 掌握构造最

小生成的算法,

了解相关应用

构造最小生成树的 Prim 算法和 Kruskal 算

法定义、实现和分析。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2

3.4 掌握最短路

径算法,了解相

关应用

单源最短路径的 Dijkstra 算法分析、实现,

任意点之间的最短路径的 Floyd 算法分

析、实现。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2 4

3.5 了解关键路

径概念和求解算

活动网络的表示方法,求关键路径的算法

1-②

高级

1-③

中级

了解 讲授、

讨论 2 2

Page 287: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

287

测试 C

1-②

高级

1-③

中级

随 堂

测试 1 1

图结构综合应用 应用最短路径方法求解实际问题

1-②

高级

1-③

中级

课 后

作业

4

检索

4.1 了解检索

的意义,掌握基

于线性结构的检

索方法

检索的概念、索引的概念及常见的索引结

构;基于线性结构的检索算法(顺序查找、

折半查找)。

1-②

高级

了解/

掌握

讲授、

讨论 2 1 3

4.2 了解散列

的思想,掌握散

列冲突的解决方

案。

散列的思想,常用的散列函数及冲突解决

方案,分析线性探查、二次探查的平均搜

索长度。

1-②

高级

掌握 讲授、

讨论 2 1 3

4.3 了解动态

检索技术

B 树,B+树的概念、思想、插入、查找和实

现的定义、用途。

1-②

高级

1-③

中级

了解 讲授、

讨论 1 1

测试 D

1-②

高级

1-③

中级

随 堂

测试 1 1

5

软 件

5.1 了解排序的

基本概念,掌握

排序的基本概念,插入排序和折半插入排

序的定义、实现和分析;希尔排序的定义

1-②

高级 掌握

讲授、

讨论 2 1 3

Page 288: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

288

工 程

与 实

插入排序算法的

实现

与实现。

5.2 掌握交换

排序算法

冒泡排序、快速排序的定义、特点、实现

与分析。

1-②

高级

掌握 讲授、

讨论 2 1 3

5.3 掌握选择

排序和归并排序

直接选择排序、堆排序、归并排序的定义、

实现与分析。

1-②

高级

掌握 讲授、

讨论 2 2

5.4 掌握基数

排序思想,了解

各类排序算法的

适用范围

基数排序定义、分析;各类排序算法的对

比。

1-②

高级

1-③

中级

掌握/

运用/

分析

1 1

测试 E

1-②

高级

1-③

中级

随 堂

测试 1 1

检索和排序的综

合应用 应用检索和排序方法求解复杂工程问题

1-②

高级

1-③

中级

课 后

作业

合计 48 24 72

Page 289: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

289

九、教学方法及组织形式

1.课堂讲授为主,上机实验和课后作业为辅。本课程从通过数据结构的基础知识讲解、案

例分析以及综合项目实践,提升学生学习能力和求解复杂问题的能力。以课堂讲授、课堂练

习和测试、上机实验等手段,最终实现培养目标。

2.基于工程教育理念,采用互动、启发式和探究式教学模式,使用演示教学、练习教学、

实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和运行引入教学过

程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,运用启发引导、问题导向、分组讨论、

协同教学等多种互动式教学方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,包括课件、案例、录像、网络资源等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全方位的考

核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次上机实验时间为 4 学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

上机作业 各知识点的实验 每周 10%

课后作业 知识点的综合应用;求解

复杂问题能力

5,9,12,16

10%

测验 A 线性表结构及操作 第 5 周 2%

测验 B 二叉树结构及操作 第 9 周 2%

测验 C 图结构及操作 第 12 周 2%

测验 D 检索 第 14 周 2%

测验 E 排序 第 16 周 2%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

上机作业 1-② 高级、 1-③中级 占总成绩 10%

课后作业 1-② 高级、 1-③中级 占总成绩 10%

测试 A 1-② 高级 占总成绩 2%

测试 B 1-② 高级 占总成绩 2%

测试 C 1-② 高级、 1-③中级 占总成绩 2%

测试 D 1-①初级、2-①中级 占总成绩 2%

Page 290: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

290

测试 E 1-② 高级、 1-③中级 占总成绩 2%

期末考试 1-② 高级、 1-③中级 占总成绩 70 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个 30%

问答题:

个 %

应用题:

7 个、60%

论述题:

个 %

编程题:

1 个 10%

其 他 :

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与督导组,系、专业团队教学质量的管理人员,负责组织和实施对课程教

Page 291: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

291

学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评估,从课

程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提出存在问题和

改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课制度,监

控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课效果及教材等

资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学生对课程

掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各方面的意

见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建设等方面进行

持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:于红

审核人签字:于红

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017 年 4 月

Page 292: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

292

2016 年教学大纲

一、课程基本信息 1. 课程编号: 1090430050

2. 课程中文名称: 数据结构与算法

3. 课程英文名称: Data Structures and Algorithms

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《面向对象方法与 C++程序设计》、《离散数学》

9. 后继课程: 《编译技术》《操作系统》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

72 48 24 4 4 48

二、任课教师 张宪超(教授)、于红(副教授)、刘馨月(副教授)、何增有(教授)、张淼(副教授)

三、教材及主要参考资料

教 材: 《数据结构、算法及应用》. 张宪超、刘馨月、于红等 编著. 科

学出版社. 2012.

参考资料: 《数据结构与算法》.许卓群著. 高等教育出版社.

《数据结构》.严蔚敏著.清华大学出版社.

《数据结构与算法-C++版》.佐兹戴克著.清华大学出版社.

四、课程简介

本课程是工科软件工程专业大类课程之一,也是信息学科相关专业学生掌握计算机程序

与现实世界问题关联的入门课程。本课程的任务是使学生从应用角度出发,掌握基本数

据结构的逻辑结构、物理结构及常用算法,能够运用课程所讨论的结构和算法更好地进

行数据处理,为进一步提高程序设计的能力、进一步学习和掌握计算机专业基础知识奠

定基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2 级能力指标 课程培养能力指标

Page 293: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

293

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂工程问

题。

② 掌握软件工程基础及

专业知识。

(高级能力)掌握数据的逻

辑结构、存储结构以及操作

的定义和实现,掌握基本的

算法复杂度分析方法

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂工程问

题。

③掌握计算机系统及网络系

统构成,并能够综合运用上

述专业知识解决软件工程及

应用领域的复杂工程问题。

(中级能力)运用栈、队

列 、二叉排序树、哈夫曼

树、最小生成树、Dijstra

算法等模型来求解工程问

题。能够根据实际工程需求

选择、设计合理的数据结

构,设计有效的算法完成相

关的数据增、删、改、查等

操作。

(二)教学目标

目标内容 具体目标

专业知识 了解数据结构的应用领域

掌握算法分析方法

掌握线性结构特点、操作

掌握二叉树结构特点、操作

掌握图结构特点、操作

掌握常见的检索方法

掌握常见的排序方法

专业技能 掌握使用线性表结构求解问题

掌握使用二叉树结构求解问题

掌握使用图结构求解问题

掌握使用检索和排序方法

掌握使用类图设计和算法流程设计

(三)教学任务

本课程将理论讲授与上机实践、课后大作业环节相结合,使学生更深入地理解和掌握线

性表结构、树结构和图结构以及常见的查找和排序算法,能够根据实际工程需求选择、

设计合理的数据结构,设计有效的算法;并熟练应用栈、队列、二叉树、图的相关操作

来求解复杂工程问题。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 5大部分:基本概念及线性表结构,树与二叉树,图,检索,排序。

Page 294: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

294

第一部分:基本概念及线性表结构

学生要掌握的基础知识:数据结构与算法概念;线性表结构的逻辑结构、存储结构、操

作的定义与实现;栈、队列结构的定义、实现与应用;字符串操作的定义与实现。

1.1 掌握数据结构的基本概念

内容包括:数据结构的基本概念,数据的逻辑结构与物理结构的相互关系,算法概念及

计算复杂度的概念,基本的算法分析方法。

1.2 了解线性表结构的逻辑结构特性,掌握顺序存储定义与实现

内容包括:线性表的逻辑结构特性,以及线性表的两种存储实现方式;顺序表的定义与

实现,包括搜索、插入、删除等基本算法的实现,基本算法的最坏情况和平均情况时间

复杂度分析。

1.3 掌握线性表结构链式存储的定义与实现

内容包括:单链表的定义与实现,包括搜索、插入、删除等基本算法的实现,循环链表

的概念和循环链表上的基本操作,双向链表的概念和双向链表上的基本操作。

1.4 掌握栈的概念、特性与实现

内容包括:栈的概念、特性,栈的顺序存储结构和链式存储结构及相应的基本操作,

用栈结构解决基本问题的经典案例,递归的栈实现思想。

1.5 掌握队列的概念、特性与实现

内容包括:队列的概念、特性,队列的顺序存储结构和链式存储结构及相应的基本操作,

用队列结构解决问题的案例。

1.6 掌握字符串常规操作

内容包括:字符串类的实现及基本算法实现,简单模式匹配算法,KMP 算法思想。

第二部分:树与二叉树

详细介绍二叉树的逻辑结构、存储结构、二叉树的遍历操作;特殊二叉树的定义、实现

及应用;树、森林的定义以及与二叉树的转换。

2.1 掌握二叉树的逻辑结构、存储结构及遍历操作实现

内容包括:二叉树的概念、性质及二叉树的表示,二叉树的遍历方法,线索化二叉树的

特性及寻找某结点的前驱和后继的方法。

2.2 掌握堆的定义、堆操作的实现。

内容包括:堆的定义,堆的建立、堆的插入与删除、堆的向上和向下调整等算法以及用

来实现优先级队列的方法。

2.3 掌握二叉搜索树的定义、操作的实现。

内容包括:二叉搜索树的定义,插入、删除、搜索算法实现,AVL 树的定义,平衡化旋

转、构造、插入、删除时的调整方法。

2.4 掌握哈夫曼树的定义、实现;应用哈夫曼树进行编码和解码。

内容包括:霍夫曼树的实现方法、构造霍夫曼编码的方法及带权路径长度的计算,霍夫

曼树编码和解码规则。

2.5 了解树与森林的基本概念,掌握掌握树与二叉树的相互转换

内容包括:树与森林的逻辑概念、存储方法、树的遍历算法,树与二叉树的转换方法。

第三部分:图

本章讲述图结构的定义、存储实现及遍历操作;还详细介绍最小生成树定义和生成算法、

最短路径计算方法定义及实现、关键路径的定义及求解算法。

3.1 掌握图的概念、性质、存储实现。

内容包括:图的概念、性质及基本存储方法:邻接矩阵和邻接表,多重邻接表和十字链

Page 295: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

295

表。

3.2 掌握图的遍历算法,了解图连通性判断方法

内容包括:深度优先搜索和广度优先搜索算法定义和实现、求连通分量的方法。

3.3 掌握构造最小生成的算法,了解相关应用

内容包括:构造最小生成树的 Prim算法和 Kruskal 算法定义、实现和分析。

3.4 掌握最短路径算法,了解相关应用

内容包括:求单源最短路径的 Dijkstra 算法分析、实现,求任意点之间的最短路径的

Floyd算法分析、实现。

3.5 了解关键路径概念和求解算法

内容包括:活动网络的表示方法,求关键路径的算法。

第四部分:检索

介绍常见的检索算法。本部分详细介绍基于线性结构的检索方法、散列检索方法和基于

动态结构的检索方法。

4.1 了解检索的意义,掌握基于线性结构的检索方法

主要内容:检索的概念、索引的概念及常见的索引结构;基于线性结构的检索算法(顺

序查找、折半查找)。

4.2 了解散列的思想,掌握散列冲突的解决方案。

主要内容:散列的思想,常用的散列函数及冲突解决方案,分析线性探查、二次探查的

平均搜索长度。

4.3 了解动态检索技术

主要内容:B树,B+树的概念、思想、插入、查找和实现的定义、用途。

第五部分:排序

介绍常见的排序算法,分析排序算法的时间复杂度、空间复杂度。

5.1 了解排序的基本概念,掌握插入排序算法的实现

主要内容:排序的基本概念,插入排序和折半插入排序的定义、实现和分析;希尔排序

的定义与实现。

5.2 掌握交换排序算法

主要内容:冒泡排序、快速排序的定义、特点、实现与分析。

5.3 掌握选择排序和归并排序

主要内容:直接选择排序、堆排序、归并排序的定义、实现与分析。

5.4 掌握基数排序思想,了解各类排序算法的适用范围

主要内容:基数排序定义、分析;各类排序算法的对比。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 应用栈结构设计可编

程计算器

提出系统需求方案,给

出类图设计和主要算法

的流程设计

4 6 课后作业

2 应用队列仿真银行叫

号系统

提出系统需求方案,给

出类图设计和主要算法

的流程设计

5 6 课后作业

3 字符串匹配算法实现

及应用

给出具体项目中字符串

匹配的应用实现 6 6 课后作业

4 应用哈夫曼树进行图 掌握哈夫曼树的设计与 8 6 课后作业

Page 296: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

296

像数据的编码和解码 实现,数据编码和解码

的程序设计

5 由遍历序列确定二叉

给出通过先序序列和中

序序列以及中序序列和

后序序列确定二叉树的

代码实现

9 6 课后作业

6 最小生成树算法实现

及应用

编码实现 Prim 算法和

Kruskal 算法,给出流程

设计

10 6 课后作业

7 应用最短路径方法求

解实际问题

分析在逃犯拦截问题中

最短路径方法的设计,

给出相关类定义和实现

12 6 课后作业

8 应用查找和排序方法

求解复杂工程问题

掌握在智能通讯录管理

系统中各查找方法和排

序方法的选择和实现

16 6 课后作业

Page 297: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

297

七、实践项目实施计划表

序号 项目名称 项 目

类型 教学周 项目内容 项目成果 实施方法

课 内

学时 考核方式 实践场所 实验类型

1 顺 序 表 实

现及应用

单 元

项目 1

编码实现顺序存储的线性表,

实现插入、删除和查找操作

类设计、算法流

程设计、代码 实践教学 3 课程作业

课堂、

课下 综合型、验证型试验

2 链 表 实 现

与应用

单 元

项目 2

编码实现链式存储的线性表,

实现插入、删除和查找操作

类设计、算法流

程设计、代码 实践教学 3 课程作业

课堂、

课下 综合型、验证型试验

3 栈 实 现 与

应用

单 元

项目 3

编码实现栈,分析实际问题的

数据操作特性,给出基于栈的

解决方案

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

4 队 列 实 现

与应用

单 元

项目 4

编码实现队列,分析实际问题

的数据操作特性,给出基于队

列的解决方案

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

5 二 叉 树 存

储及遍历

单 元

项目 7

实现二叉树的链式存储结构

和遍历算法

类设计报告、代

码 实践教学 2 课程作业

课堂、

课下 验证型试验

6 堆 操 作 实

单 元

项目 8

实现基础顺序存储的堆和相

关操作 代码 实践教学 2 课程作业

课堂、

课下 验证型试验

7

二 叉 搜 索

树 操 作 实

单 元

项目 9

给出二叉搜索树的具体实现

和操作,根据实际问题应用二

叉搜索树

设计报告、代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

8

图 的 存 储

和 遍 历 操

作实现

单 元

项目 10

编码实现基于顺序存储结构

的图以及遍历操作 代码 实践教学 2 课程作业

课堂、

课下 验证型试验

Page 298: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

298

9

最 短 路 径

算 法 实 现

及应用

单 元

项目 12

编码实现 Dijkstra 算法和

Floyd 算法,并应用 Dijstra

算法求解实际问题

设计报告、代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

10

检 索 算 法

实 现 与 应

单 元

项目 14

编码实现常见的检索算法,并

根据实际问题选择恰当的检

索算法进行求解。

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

11

排 序 算 法

实 现 与 应

单 元

项目 16

编码实现常见的排序算法,并

根据实际问题选择恰当的排

序算法进行求解。

代码 实践教学 2 课程作业 课堂、

课下 综合型、验证型试验

Page 299: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

299

八、各单元知识点、技能点分布及学时分配表

单 元

标题 小节标题 知识点与技能点

能力

目标

掌 握

程度

教 学

实施

考 核

方式

各教学环节学时分配

理论教学 实践教学

课内

小计

课 外

小计 讲

1

基 本

概 念

及 线

性 表

结构

1.1 了解数据结

构的基本概念

数据结构的基本概念,数据的逻辑结构与

物理结构的相互关系,算法概念及计算复

杂度的概念,基本的算法分析方法。

1-②

高级 了解

讲授、

讨论 2 2

1.2 了解线性表

结构的逻辑结构

特性,掌握顺序

存储定义与实现

线性表的逻辑结构特性,以及线性表的两

种存储实现方式;顺序表的定义与实现,

包括搜索、插入、删除等基本算法的实现,

基本算法的最坏情况和平均情况时间复

杂度分析。

1-②

高级

1-③

中级

了解/

掌握

讲授、

讨论 2 3 5

1.3 掌握线性表

结构链式存储的

定义与实现

单链表的定义与实现,包括搜索、插入、

删除等基本算法的实现,循环链表的概念

和循环链表上的基本操作,双向链表的概

念和双向链表上的基本操作。

1-②

高级 掌握

讲授、

讨论 2 3 5

Page 300: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

300

1.4 掌握栈的概

念、特性与实现

栈的概念、特性,栈的顺序存储结构和链

式存储结构及相应的基本操作,用栈结构

解决基本问题的经典案例,递归的栈实现

思想。

1-②

高级

1-③

中级

掌握/

运用

讲授、

讨论 2 2 4

1.5 掌握队列的

概念、特性与实

队列的概念、特性,队列的顺序存储结构

和链式存储结构及相应的基本操作,用队

列结构解决问题的案例。

1-②

高级

1-③

中级

掌握/

运用

讲授、

讨论 2 2 6 4 6

1.6 了解字符串

常规操作

字符串类的实现及基本算法实现,简单模

式匹配算法,KMP 算法思想。

1-②

高级

1-③

中级

了解 讲授、

讨论 1 6 1 6

测试 A 线性表结构的定义、特点及操作、分析

1-②

高级

随 堂

测试 1 1

线性表结构综合

应用

面向实际问题,给出基于栈结构的求解方

案。

1-②

高级

1-③

中级

掌握/

运用/

分析

讨论 课 后

作业 6 6

Page 301: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

301

2

树 与

二 叉

2.1 掌握二叉树

的逻辑结构、存

储结构及遍历操

作实现

二叉树的概念、性质及二叉树的表示,二

叉树的遍历方法,线索化二叉树的特性及

寻找某结点的前驱和后继的方法。

1-②

高级

掌握 讲授、

讨论 2 2 4

2.2 掌握堆的定

义、堆操作的实

现。

堆的定义,堆的建立、堆的插入与删除、

堆的向上和向下调整等算法以及用来实

现优先级队列的方法。

1-②

高级

掌握/

运用

讲授、

讨论 2 2 4

2.3 掌握二叉搜

索树的定义、操

作的实现。

二叉搜索树的定义,插入、删除、搜索算

法实现,AVL 树的定义,平衡化旋转、构

造、插入、删除时的调整方法。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2 4

2.4 掌握哈夫曼

树的定义、实现;

应用哈夫曼树进

行编码和解码。

哈夫曼树的实现方法、构造哈夫曼编码的

方法及带权路径长度的计算,哈夫曼树编

码和解码规则。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2 2 2

2.5 了解树与森

林的基本概念,

掌握掌握树与二

叉树的相互转换

树与森林的逻辑概念、存储方法、树的遍

历算法,树与二叉树的转换方法。

1-②

高级

了解 讲授、

讨论 2 6 2 6

测试 B 1-②

高级

随 堂

测试 2 2

Page 302: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

302

1-③

中级

二叉树结构综合

应用

应用哈夫曼树进行图像数据的编码和解

1-②

高级

1-③

中级

掌握/

运用/

分析

讨论 课 后

作业 4 4

3

3.1 了解图的概

念、性质、存储

实现。

图的概念、性质及基本存储方法:邻接矩

阵和邻接表,多重邻接表和十字链表。

1-②

高级

了解 讲授、

讨论 1 1

3.2 掌握图的遍

历算法,了解图

连通性判断方法

深度优先搜索和广度优先搜索算法定义

和实现、求连通分量的方法。

1-②

高级

掌握 讲授、

讨论 2 2 4

3.3 掌握构造最

小生成的算法,

了解相关应用

构造最小生成树的 Prim 算法和 Kruskal

算法定义、实现和分析。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2 6

3.4 掌握最短路

径算法,了解相

关应用

单源最短路径的 Dijkstra 算法分析、实

现,任意点之间的最短路径的 Floyd 算法

分析、实现。

1-②

高级

1-③

中级

掌握/

运用/

分析

讲授、

讨论 2 2 4

3.5 了解关键路

径概念和求解算

活动网络的表示方法,求关键路径的算法

1-②

高级

1-③

中级

了解 讲授、

讨论 2 2

Page 303: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

303

测试 C

1-②

高级

1-③

中级

随 堂

测试 1 1

图结构综合应用 应用最短路径方法求解实际问题

1-②

高级

1-③

中级

课 后

作业 6 6

4

检索

4.1 了解检索

的意义,掌握基

于线性结构的检

索方法

检索的概念、索引的概念及常见的索引结

构;基于线性结构的检索算法(顺序查找、

折半查找)。

1-②

高级

了解/

掌握

讲授、

讨论 2 1 3

4.2 了解散列

的思想,掌握散

列冲突的解决方

案。

散列的思想,常用的散列函数及冲突解决

方案,分析线性探查、二次探查的平均搜

索长度。

1-②

高级

掌握 讲授、

讨论 2 1 3

4.3 了解动态

检索技术

B 树,B+树的概念、思想、插入、查找和实

现的定义、用途。

1-②

高级

1-③

中级

了解 讲授、

讨论 1 1

测试 D

1-②

高级

1-③

中级

随 堂

测试 1 1

5

软 件

5.1 了解排序的

基本概念,掌握

排序的基本概念,插入排序和折半插入排

序的定义、实现和分析;希尔排序的定义

1-②

高级 掌握

讲授、

讨论 2 1 3

Page 304: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

304

工 程

与 实

插入排序算法的

实现

与实现。

5.2 掌握交换

排序算法

冒泡排序、快速排序的定义、特点、实现

与分析。

1-②

高级

掌握 讲授、

讨论 2 1 3

5.3 掌握选择

排序和归并排序

直接选择排序、堆排序、归并排序的定义、

实现与分析。

1-②

高级

掌握 讲授、

讨论 2 2

5.4 掌握基数

排序思想,了解

各类排序算法的

适用范围

基数排序定义、分析;各类排序算法的对

比。

1-②

高级

1-③

中级

掌握/

运用/

分析

1 1

测试 E

1-②

高级

1-③

中级

随 堂

测试 1 1

检索和排序的综

合应用 应用检索和排序方法求解复杂工程问题

1-②

高级

1-③

中级

课 后

作业 6 6

合计 48 24 48 72 48

Page 305: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

305

九、教学方法及组织形式

1.课堂讲授为主,上机实验和课后作业为辅。本课程从通过数据结构的基础知识讲解、

案例分析以及综合项目实践,提升学生学习能力和求解复杂问题的能力。以课堂讲授、

课堂练习和测试、上机实验等手段,最终实现培养目标。

2.基于工程教育理念,采用互动、启发式和探究式教学模式,使用演示教学、练习教

学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和运行引

入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,运用启发引导、问题导向、分组

讨论、协同教学等多种互动式教学方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,包括课件、案例、录像、网络资源等

等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全方位

的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次上机实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 2

分。

日常考核 %

上机作业 各知识点的实验 每周 10%

课后作业 知识点的综合应用;求解

复杂问题能力

5,9,12,16

10%

测验 A 线性表结构及操作 第 5 周 2%

测验 B 二叉树结构及操作 第 9 周 2%

测验 C 图结构及操作 第 12 周 2%

测验 D 检索 第 14 周 2%

测验 E 排序 第 16 周 2%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

上机作业 1-② 高级、 1-③中级 占总成绩 10%

课后作业 1-② 高级、 1-③中级 占总成绩 10%

测试 A 1-② 高级 占总成绩 2%

Page 306: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

306

测试 B 1-② 高级 占总成绩 2%

测试 C 1-② 高级、 1-③中级 占总成绩 2%

测试 D 1-①初级、2-①中级 占总成绩 2%

测试 E 1-② 高级、 1-③中级 占总成绩 2%

期末考试 1-② 高级、 1-③中级 占总成绩 70 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个 30%

问答题:

个 %

应用题:

7个、60%

论述题:

个 %

编程题:

1个 10%

其 他 :

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

Page 307: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

307

十二、课程评价与持续改进

学院教学质量管理与督导组,系、专业团队教学质量的管理人员,负责组织和实施对课

程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评价、

持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评估,

从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提出存

在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课制度,

监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课效果及

教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学生对

课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各方面

的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建设等

方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:于红

审核人签字:于红

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016 年 12月

Page 308: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

308

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090430050

2. 课程中文名称: 数据结构与算法

3. 课程英文名称: Data Structures and Algorithms

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《面向对象方法与 C++程序设计》、《离散数学》

9. 后继课程: 《编译技术》《操作系统》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

120 48 72 8 4 16

二、任课教师

张宪超(教授)、于红(副教授)、刘馨月(副教授)、何增有(副教授)、张淼(副

教授)

三、教材及主要参考资料

教 材: 《数据结构、算法及应用》. 张宪超、刘馨月、于红等 编著. 科

学出版社. 2012.

参考资料: 《数据结构与算法》.许卓群著. 高等教育出版社.

《数据结构》.严蔚敏著.清华大学出版社.

《数据结构与算法-C++版》.佐兹戴克著.清华大学出版社.

四、课程简介

本课程是工科软件工程专业大类课程之一,也是信息学科相关专业学生掌握计算机

程序与现实世界问题关联的入门课程。本课程的任务是使学生从应用角度出发,掌握基

本数据结构的逻辑结构、物理结构及常用算法,能够运用课程所讨论的结构和算法更好

地进行数据处理,为进一步提高程序设计的能力、进一步学习和掌握计算机专业基础知

识奠定基础。

Page 309: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

309

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

① 掌握数理及自然科学的

基础知识

(初级能力)掌握数据的逻

辑结构、存储结构以及操作

的定义和实现,掌握基本的

算法复杂度分析方法

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

③ 运用解决复杂工程问题

方法

(高级能力)运用栈、队

列 、二叉排序树、哈夫曼

树、最小生成树、Dijstra

算法等模型来求解工程问

题。

2.问题分析:能够应用数

学、自然科学和工程科学的

基本原理,识别、表达、并

通过文献研究分析复杂工

程问题,以获得有效结论。

① 运用数理方法制定分析

模型

(中级能力)能够根据实际

工程需求选择、设计合理的

数据结构,设计有效的算法

完成相关的数据增、删、改、

查等操作。

(二)教学目标

目标内容 具体目标

专业知识 了解数据结构的应用领域

掌握算法分析方法

掌握线性结构特点、操作

掌握二叉树结构特点、操作

掌握图结构特点、操作

掌握常见的检索方法

掌握常见的排序方法

专业技能 掌握使用线性表结构求解问题

掌握使用二叉树结构求解问题

掌握使用图结构求解问题

掌握使用检索和排序方法

掌握使用类图设计和算法流程设计

(三)教学任务

本课程将理论讲授与上机实践、课后大作业环节相结合,使学生更深入地理解和掌

握线性表结构、树结构和图结构以及常见的查找和排序算法,能够根据实际工程需求选

择、设计合理的数据结构,设计有效的算法;并熟练应用栈、队列、二叉树、图的相关

Page 310: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

310

操作来求解复杂工程问题。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 5大部分:基本概念及线性表结构,树与二叉树,图,检索,排序。

第一部分:基本概念及线性表结构

学生要掌握的基础知识:数据结构与算法概念;线性表结构的逻辑结构、存储结构、

操作的定义与实现;栈、队列结构的定义、实现与应用;字符串操作的定义与实现。

1.1 掌握数据结构的基本概念

内容包括:数据结构的基本概念,数据的逻辑结构与物理结构的相互关系,算法概

念及计算复杂度的概念,基本的算法分析方法。

1.2 了解线性表结构的逻辑结构特性,掌握顺序存储定义与实现

内容包括:线性表的逻辑结构特性,以及线性表的两种存储实现方式;顺序表的定

义与实现,包括搜索、插入、删除等基本算法的实现,基本算法的最坏情况和平均情况

时间复杂度分析。

1.3 掌握线性表结构链式存储的定义与实现

内容包括:单链表的定义与实现,包括搜索、插入、删除等基本算法的实现,循环

链表的概念和循环链表上的基本操作,双向链表的概念和双向链表上的基本操作。

1.4 掌握栈的概念、特性与实现

内容包括:栈的概念、特性,栈的顺序存储结构和链式存储结构及相应的基本操作,

用栈结构解决基本问题的经典案例,递归的栈实现思想。

1.5 掌握队列的概念、特性与实现

内容包括:队列的概念、特性,队列的顺序存储结构和链式存储结构及相应的基本

操作,用队列结构解决问题的案例。

1.6 掌握字符串常规操作

内容包括:字符串类的实现及基本算法实现,简单模式匹配算法,KMP 算法思想。

第二部分:树与二叉树

详细介绍二叉树的逻辑结构、存储结构、二叉树的遍历操作;特殊二叉树的定义、

实现及应用;树、森林的定义以及与二叉树的转换。

2.1 掌握二叉树的逻辑结构、存储结构及遍历操作实现

内容包括:二叉树的概念、性质及二叉树的表示,二叉树的遍历方法,线索化二叉

树的特性及寻找某结点的前驱和后继的方法。

2.2 掌握堆的定义、堆操作的实现。

内容包括:堆的定义,堆的建立、堆的插入与删除、堆的向上和向下调整等算法以

及用来实现优先级队列的方法。

2.3 掌握二叉搜索树的定义、操作的实现。

内容包括:二叉搜索树的定义,插入、删除、搜索算法实现,AVL 树的定义,平衡

化旋转、构造、插入、删除时的调整方法。

Page 311: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

311

2.4 掌握哈夫曼树的定义、实现;应用哈夫曼树进行编码和解码。

内容包括:霍夫曼树的实现方法、构造霍夫曼编码的方法及带权路径长度的计算,

霍夫曼树编码和解码规则。

2.5 了解树与森林的基本概念,掌握掌握树与二叉树的相互转换

内容包括:树与森林的逻辑概念、存储方法、树的遍历算法,树与二叉树的转换方

法。

第三部分:图

本章讲述图结构的定义、存储实现及遍历操作;还详细介绍最小生成树定义和生成

算法、最短路径计算方法定义及实现、关键路径的定义及求解算法。

3.1 掌握图的概念、性质、存储实现。

内容包括:图的概念、性质及基本存储方法:邻接矩阵和邻接表,多重邻接表和十

字链表。

3.2 掌握图的遍历算法,了解图连通性判断方法

内容包括:深度优先搜索和广度优先搜索算法定义和实现、求连通分量的方法。

3.3 掌握构造最小生成的算法,了解相关应用

内容包括:构造最小生成树的 Prim算法和 Kruskal 算法定义、实现和分析。

3.4 掌握最短路径算法,了解相关应用

内容包括:求单源最短路径的 Dijkstra 算法分析、实现,求任意点之间的最短路

径的 Floyd 算法分析、实现。

3.5 了解关键路径概念和求解算法

内容包括:活动网络的表示方法,求关键路径的算法。

第四部分:检索

介绍常见的检索算法。本部分详细介绍基于线性结构的检索方法、散列检索方法和

基于动态结构的检索方法。

4.1 了解检索的意义,掌握基于线性结构的检索方法

主要内容:检索的概念、索引的概念及常见的索引结构;基于线性结构的检索算法

(顺序查找、折半查找)。

4.2 了解散列的思想,掌握散列冲突的解决方案。

主要内容:散列的思想,常用的散列函数及冲突解决方案,分析线性探查、二次探

查的平均搜索长度。

4.3 了解动态检索技术

主要内容:B树,B+树的概念、思想、插入、查找和实现的定义、用途。

第五部分:排序

介绍常见的排序算法,分析排序算法的时间复杂度、空间复杂度。

5.1 了解排序的基本概念,掌握插入排序算法的实现

主要内容:排序的基本概念,插入排序和折半插入排序的定义、实现和分析;希尔

排序的定义与实现。

5.2 掌握交换排序算法

主要内容:冒泡排序、快速排序的定义、特点、实现与分析。

Page 312: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

312

5.3 掌握选择排序和归并排序

主要内容:直接选择排序、堆排序、归并排序的定义、实现与分析。

5.4 掌握基数排序思想,了解各类排序算法的适用范围

主要内容:基数排序定义、分析;各类排序算法的对比。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 应用栈结构设计可

编程计算器

提出系统需求方案,

给出类图设计和主

要算法的流程设计

4 2 课后作业

2 应用哈夫曼树进行

图像数据的编码和

解码

掌握哈夫曼树的设

计与实现,数据编码

和解码的程序设计

8 2 课后作业

3 应用最短路径方法

求解实际问题

分析在逃犯拦截问

题中最短路径方法

的设计,给出相关类

定义和实现

2 课后作业

4 应用查找和排序方

法求解复杂工程问

掌握在智能通讯录

管理系统中各查找

方法和排序方法的

选择和实现

16 2 课后作业

Page 313: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

313

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学

时 考核方式 实践场所 实验类型

1 顺序表实

现及应用 单元项目 1

编码实现顺序存储的线性

表,实现插入、删除和查找

操作

类设计、算

法流程设

计、代码

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

2 链表实现

与应用 单元项目 2

编码实现链式存储的线性

表,实现插入、删除和查找

操作

类设计、算

法流程设

计、代码

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

3 栈实现与

应用 单元项目 3

编码实现栈,分析实际问题

的数据操作特性,给出基于

栈的解决方案

代码 实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

4 队列实现

与应用 单元项目 4

编码实现队列,分析实际问

题的数据操作特性,给出基

于队列的解决方案

代码 实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

5 栈解决递

归问题 单元项目 5

应用栈结构消除具体问题

中递归调用 代码 实践教学 4 课程作业

课堂、

课下

综合型、

验证型试

6

字符串匹

配算法实

现及应用

单元项目 6 给出具体项目中字符串匹

配的应用实现

分析报告、

代码 实践教学 4 课程作业

课堂、

课下

综合型、

验证型试

7 二叉树存

储及遍历 单元项目 7

实现二叉树的链式存储结

构和遍历算法

类设计报

告、代码 实践教学 4 课程作业

课堂、

课下

验证型试

Page 314: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

314

8 堆操作实

现 单元项目 8

实现基础顺序存储的堆和

相关操作 代码 实践教学 4 课程作业

课堂、

课下

验证型试

9

二叉搜索

树操作实

单元项目 9

给出二叉搜索树的具体实

现和操作,根据实际问题应

用二叉搜索树

设计报告、

代码 实践教学 4 课程作业

课堂、

课下

综合型、

验证型试

10

由遍历序

列确定二

叉树

单元项目 9

给出通过先序序列和中序

序列以及中序序列和后序

序列确定二叉树的代码实

代码 实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

11

图的存储

和遍历操

作实现

单元项目 10 编码实现基于顺序存储结

构的图以及遍历操作 代码 实践教学 4 课程作业

课堂、

课下

验证型试

12

最小生成

树算法实

现及应用

单元项目 10

编码实现 Prim 算法和

Kruskal算法,给出流程设

设计报告、

代码 实践教学 4 课程作业

课堂、

课下

综合型、

验证型试

13

最短路径

算法实现

及应用

单元项目 11,12

编码实现 Dijkstra 算法和

Floyd 算法,并应用

Dijstra算法求解实际问

设计报告、

代码 实践教学 8 课程作业

课堂、

课下

综合型、

验证型试

14

检索算法

实现与应

单元项目 13,14

编码实现常见的检索算法,

并根据实际问题选择恰当

的检索算法进行求解。

代码 实践教学 8 课程作业 课堂、

课下

综合型、

验证型试

15

排序算法

实现与应

单元项目 15,16

编码实现常见的排序算法,

并根据实际问题选择恰当

的排序算法进行求解。

代码 实践教学 8 课程作业 课堂、

课下

综合型、

验证型试

Page 315: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

315

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

线

1.1 了解数据

结构的基本概

数据结构的基本概念,数据的逻辑

结构与物理结构的相互关系,算法

概念及计算复杂度的概念,基本的

算法分析方法。

1-①初级 了解 讲授、

讨论 2 2

1.2 了解线性

表结构的逻辑

结构特性,掌

握顺序存储定

义与实现

线性表的逻辑结构特性,以及线性

表的两种存储实现方式;顺序表的

定义与实现,包括搜索、插入、删

除等基本算法的实现,基本算法的

最坏情况和平均情况时间复杂度分

析。

1-①初级

2-①中级

了解/

掌握

讲授、

讨论 2 4 6

1.3 掌握线性

表结构链式存

储的定义与实

单链表的定义与实现,包括搜索、

插入、删除等基本算法的实现,循环

链表的概念和循环链表上的基本操

作,双向链表的概念和双向链表上

的基本操作。

1-①初级 掌握 讲授、

讨论 2 4 6

Page 316: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

316

1.4 掌握栈的

概念、特性与

实现

栈的概念、特性,栈的顺序存储结

构和链式存储结构及相应的基本操

作,用栈结构解决基本问题的经典

案例,递归的栈实现思想。

1-①初级

1-③高级

掌握/

运用

讲授、

讨论 2 8 10

1.5 掌握队列

的概念、特性

与实现

队列的概念、特性,队列的顺序存

储结构和链式存储结构及相应的基

本操作,用队列结构解决问题的案

例。

1-①初级

1-③高级

掌握/

运用

讲授、

讨论 2 4 6

1.6 了解字符

串常规操作

字符串类的实现及基本算法实现,

简单模式匹配算法,KMP 算法思想。 1-①初级 了解

讲授、

讨论 1 4 5

测试 A 线性表结构的定义、特点及操作、

分析

1-①初级

2-①中级

随堂

测试 1 1

线性表结构综

合应用

面向实际问题,给出基于栈结构的

求解方案。

1-①初级

1-③高级

2-①中级

掌握/

运用/

分析

讨论 课后

作业 4 4

Page 317: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

317

2

2.1 掌握二叉

树的逻辑结

构、存储结构

及遍历操作实

二叉树的概念、性质及二叉树的表

示,二叉树的遍历方法,线索化二

叉树的特性及寻找某结点的前驱和

后继的方法。

1-①初级 掌握 讲授、

讨论 2 4 6

2.2 掌握堆的

定义、堆操作

的实现。

堆的定义,堆的建立、堆的插入与

删除、堆的向上和向下调整等算法

以及用来实现优先级队列的方法。

1-①初级

2-①中级

掌握/

运用

讲授、

讨论 2 4 6

2.3 掌握二叉

搜索树的定

义、操作的实

现。

二叉搜索树的定义,插入、删除、

搜索算法实现,AVL树的定义,平衡

化旋转、构造、插入、删除时的调

整方法。

1-①初级

1-③高级

2-①中级

掌握/

运用/

分析

讲授、

讨论 2 4 6

2.4 掌握哈夫

曼树的定义、

实现;应用哈

夫曼树进行编

码和解码。

哈夫曼树的实现方法、构造哈夫曼

编码的方法及带权路径长度的计

算,哈夫曼树编码和解码规则。

1-①初级

1-③中级

2-①高级

掌握/

运用/

分析

讲授、

讨论 2 2

2.5 了解树与

森林的基本概

念,掌握掌握

树与二叉树的

相互转换

树与森林的逻辑概念、存储方法、

树的遍历算法,树与二叉树的转换

方法。

1-①初级 了解 讲授、

讨论 2 4 6

Page 318: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

318

测试 B 1-①初级

2-①中级

随堂

测试 2 2

二叉树结构综

合应用

应用哈夫曼树进行图像数据的编

码和解码

1-①初级

1-③高级

2-①中级

掌握/

运用/

分析

讨论 课后

作业 4 4

3

3.1 了解图的

概念、性质、

存储实现。

图的概念、性质及基本存储方法:

邻接矩阵和邻接表,多重邻接表和

十字链表。

1-①初级 了解 讲授、

讨论 1 1

3.2 掌握图的

遍历算法,了

解图连通性判

断方法

深度优先搜索和广度优先搜索算法

定义和实现、求连通分量的方法。 1-①初级 掌握

讲授、

讨论 2 4 6

3.3 掌握构造

最小生成的算

法,了解相关

应用

构造最小生成树的 Prim 算法和

Kruskal算法定义、实现和分析。

1-①初级

1-③高级

2-①中级

掌握/

运用/

分析

讲授、

讨论 2 4 6

3.4 掌握最短

路径算法,了

解相关应用

单源最短路径的 Dijkstra 算法分

析、实现,任意点之间的最短路径

的 Floyd算法分析、实现。

1-①初级

1-③高级

2-①中级

掌握/

运用/

分析

讲授、

讨论 2 8 10

3.5 了解关键

路径概念和求

解算法

活动网络的表示方法,求关键路径

的算法 1-①初级 了解

讲授、

讨论 2 2

测试 C 1-①初级

2-①中级

随堂

测试 1 1

图结构综合应 应用最短路径方法求解实际问题 1-①初级 课后 4 4

Page 319: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

319

用 1-③高级

2-①中级

作业

4

检索

4.1 了解检

索的意义,掌

握基于线性结

构的检索方法

检索的概念、索引的概念及常见的

索引结构;基于线性结构的检索算

法(顺序查找、折半查找)。

1-①初级

1-③高级

了解/

掌握

讲授、

讨论 2 4 6

4.2 了解散

列的思想,掌

握散列冲突的

解决方案。

散列的思想,常用的散列函数及冲

突解决方案,分析线性探查、二次

探查的平均搜索长度。

1-①初级 掌握 讲授、

讨论 2 4 6

4.3 了解动

态检索技术

B 树,B+树的概念、思想、插入、查

找和实现的定义、用途。 1-①初级 了解

讲授、

讨论 1 1

测试 D 1-①初级

2-①中级

随堂

测试 1 1

5

软件

工程

与实

5.1 了解排序

的基本概念,

掌握插入排序

算法的实现

排序的基本概念,插入排序和折半

插入排序的定义、实现和分析;希

尔排序的定义与实现。

1-①初级 掌握 讲授、

讨论 2 2 4

5.2 掌握交

换排序算法

冒泡排序、快速排序的定义、特点、

实现与分析。 1-①初级 掌握

讲授、

讨论 2 4 6

5.3 掌握选

择排序和归并

排序

直接选择排序、堆排序、归并排序

的定义、实现与分析。 1-①初级 掌握

讲授、

讨论 2 2 4

5.4 掌握基

数排序思想,

了解各类排序

基数排序定义、分析;各类排序算

法的对比。

1-①初级

1-③高级

2-①中级

掌握/

运用/

分析

1 1

Page 320: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

320

算法的适用范

测试 E 1-①初级

2-①中级

随堂

测试 1 1

检索和排序的

综合应用

应用检索和排序方法求解复杂工程

问题

1-①初级

1-③高级

2-①中级

课后

作业 4 4

合计 48 7

2 16

12

0 16

Page 321: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

321

九、教学方法及组织形式

1.课堂讲授为主,上机实验和课后作业为辅。本课程从通过数据结构的基础知识

讲解、案例分析以及综合项目实践,提升学生学习能力和求解复杂问题的能力。以课堂

讲授、课堂练习和测试、上机实验等手段,最终实现培养目标。

2.基于工程教育理念,采用互动、启发式和探究式教学模式,使用演示教学、练

习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和运

行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,运用启发引导、问题导向、

分组讨论、协同教学等多种互动式教学方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,包括课件、案例、录像、网络资

源等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次上机实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核

方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 2

分。

日常考核 %

上机作业 各知识点的实验 每周 10%

课后作业 知识点的综合应用;求解

复杂问题能力 第 5,9,12,16 周 10%

测验 A 线性表结构及操作 第 5 周 2%

测验 B 二叉树结构及操作 第 9 周 2%

测验 C 图结构及操作 第 12 周 2%

测验 D 检索 第 14 周 2%

测验 E 排序 第 16 周 2%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 322: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

322

(二)命题要求

考核项目 重点考核知识点、技能点 备注

上机作业 1-①初级、1-③高级、2-①中级 占总成绩 10%

课后作业 1-①初级、1-③高级、2-①中级 占总成绩 10%

测试 A 1-①初级、2-①中级 占总成绩 2%

测试 B 1-①初级、1-③高级、2-①中级 占总成绩 2%

测试 C 1-①初级、1-③高级、2-①中级 占总成绩 2%

测试 D 1-①初级、2-①中级 占总成绩 2%

测试 E 1-①初级、2-①中级 占总成绩 2%

期末考试 1-①初级、1-③高级、2-①中级 占总成绩 70 %

(三)终结性考核安排

考试时间 120分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个 30%

问答题:

个 %

应用题:

7个、60%

论述题:

个 %

编程题:

1个 10%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率 教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=(96% )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

Page 323: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

323

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与督导组,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:于红

审核人签字:于红

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 6月

Page 324: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

324

《J2EE 高级编程》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090240060

2. 课程中文名称: J2EE高级编程

3. 课程英文名称: J2EE Advanced Programming

4. 课程性质: 选修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《Java高级编程与应用》、《数据库系统》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 上机教学 周学时 学分 课外学时

56 32 24 4 3

二、任课教师

姜国海(讲师)

三、教材及主要参考资料

教 材: 《JavaEE编程技术》(第 2版). 郝玉龙 编著. 清华大学出版

社. 2012.

参考资料: 《Java 应用案例分析》 姜国海编著. 清华大学出版社。2012.

四、课程简介

《J2EE高级编程》是软件学院软件工程专业开设的选修课,是一门实践性,技术性

很强的专业选修课程。本课程的主要任务是在掌握 JAVA 语言的基础上介绍 JAVA 企业版

平台下企业应用的开发过程,对 J2EE 平台下的新技术进行跟踪学习。通过本课程的学

Page 325: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

325

习,使学生能够了解 J2EE 平台下企业应用的最新开发技术,掌握 J2EE平台下基于角色

开发,基于组件开发,基于 INTERNET 架构的分布式网络应用开发的特点。完成全部课

程的学习后,学生可以掌握 Servlet, JSP, TAG, EJB 等组件开发技术,也能够使用 Web

Service技术实现异构应用的互联,对于常见的数据库开发技术能够熟练运用,并介绍

一下主流的框架的开发技术,使学生能够在 J2EE平台下开发企业应用。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

4.研究:能够基于软件工程

原理并采用科学的软件工

程方法,对软件工程及应用

领域中的复杂工程问题进

行研究,包括:专业设计实

验、分析与解释数据,并通

过信息综合得到合理有效

的结论。

①面向中小型软件、或较大

型软件开发中部分模块,具

有独立设计与开发系统的

能力,具备资料收集、分析、

设计、编码、测试和维护的

能力。

(初级能力)具有简单应用

开发的设计能力。

5.使用现代工具:能够针

对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

② 掌握开发、选择与使用

现代软件开发工具。

(中级能力)能够进行复杂

的程序设计,并能设计产

品,能够进行 GUI 设计。

5.使用现代工具:能够针

对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

③ 掌握软件工程领域最

新分析、设计、编码、测试、

维护技术,对复杂软件工程

问题进行预测与模拟,并能

够理解其局限性。

(高级能力)完全掌握项目

开发过程,掌握主流的框

架,平台,可以进行复用性

设计,彻底掌握项目的进度

设计。

(二)教学目标

目标内容 具体目标

专业知识 了解 J2EE 平台

了解 SERVLET 技术,包括最新的异步 SERVLET 技术

掌握 JSP 和 TAG 技术

掌握 EJB 技术

Page 326: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

326

掌握 WEB SERVICE 技术

掌握 JSON 编程

掌握 MESSAGE API

掌握 JavaMail 编程

专业技能 掌握数据库编程

掌握 WEB 表示层开发技术

掌握分布式应用开发技术

掌握 MVC 设计模式和 SPRING MVC 框架

掌握 J2EE SECURITY

(三)教学任务

本课程将理论讲授与上机操作、课后大作业环节相结合,使学生更深入地理解和掌

握 J2EE 平台下的分布式系统的开发方法,熟练应用 JSP, SERVLET, TAG 等技术进行 WEB

应用开发,同时能够构建应用整合,通过 JMS 和 WEB SERVICE 技术进行系统集成。能够

在主流的 SPRING 框架下进行应用开发。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 3大部分:J2EE 平台下的组件技术,常用互联网协议及服务分析与应用,

基于 J2EE平台下的主流框架技术的开发与应用。

第一部分:J2EE 平台下的组件技术

学生要了解的基础知识:Servlet 组件技术, 简单的 WEB 应用开发及部署运行, JSP

组件技术, TAG组件技术。

1.了解 Servlet组件技术

内容包括:Servlet 接口,请求对象接口,响应对象接口,HttpServletRequest,

HttpServletResponse, ServletConfig 组件配置接口, ServletContext 接口。

HttpSession编程。

2.了解 JSP 组件技术

内容包括:JSP 文件语法,JSP 组件和 Servlet 组件的关系,利用 JSP 程序进行表

格数据分页功能实现。

3.了解 Tag 组件技术

内容包括:了解 JSP 和 Tag 组件的关系,掌握 Tag 接口,TagSupport,SimpleTag

等组件开发技术。

第二部分:常用互联网协议及应用

会运用 http 协议和 https 协议进行应用程序开发,利用浏览器客户端和服务器进

行交互通信,利用 HttpClient 组件和后端服务器进行数据通信,利用 Http协议进行 RPC

过程开发。了解 SMTP和 POP3协议。构建分布式 WEB 服务系统。

Page 327: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

327

4.掌握 HTTP 协议及 HTTPS 协议

内容包括:学习 HTTP协议和 HTTPS 协议的技术细节。

5.掌握 SMTP 和 POP3协议,开发邮件应用。

内容包括:分析学习 SMTP 和 POP3协议,搭建邮件服务器,构建一个邮件服务应用

程序。

6.搭建 WEB 服务集群

内容包括:TOMCAT 服务器集群配置,分布式内存编程技术。

第三部分:主流框架技术学习

介绍一些 J2EE 平台下的框架技术。

7.Struts 简介

内容包括:MVC模式,STRUTS 开发环境搭建及在该框架下的程序开发。

8.SPRING 简介

内容包括:IOC容器,注解编程,SPRING开发环境搭建及应用开发。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 JavaScript 语言

学习

能够进行简单的 JS

程序开发

4 2 课后作业

2 学习 ExtJS 框架 能够开发一个简单

的基于 ExtJS 框架

的程序

8 4-10 课后作业

3 JQuery语言学习 利用 JQuery 开发一

个简单的单词查询

软件

Page 328: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

328

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 猜数游戏 单元项目 3

用 SERVLET 技术和

JSP 技术来实现猜

数游戏

程序 上机实践 4 上机作业 课下 综合型试

2

用户登录

及欢迎界

面程序

单元项目 4 登录程序,用户会

话数据编程 程序 上机实践 4 上机作业 课下

综合型试

3

文件上传

和下载程

单元项目 5

实现通过 HTTP协议

上传文件和下载文

程序 上机实践 4 上机作业 课下 综合型试

4

数据库中

的数据分

页显示

单元项目 6

使用 JSP, TAG技术

来输出数据表格,

使用 JDBC访问数据

库。

程序 上机实践 4 上机作业 课下 综合型试

5

分布式文

件存储系

单元项目 7

利用 SPRING框架来

实现分布式文件存

储系统,采用分布

式内存来实现大规

程序 上机实践 4 上机作业 课下 综合型试

Page 329: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

329

模并发,实现服务

器集群。

6 邮件服务 单元项目 8

使用 JavaMail

来继续邮件服

务编程

程序 上机实践 4 上机作业 课下 综合型试

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

J2EE

平台

组件

开发

技术

1.1 了解

Servlet组

件技术

掌握 Servlet 接口,请求对象接口

和 响 应 对 象 接 口 , 掌 握

HttpSession,掌握 ServletContext

和 ServletConfig等接口。

4-①初级 了解 讲授、

讨论 6 4 6 4

1.2 了解

JSP组件技

JSP语法,JSP和 Servlet组件之间

的关系,JSP开发方法 4-①初级 了解

讲授、

讨论 4 4 4 4

Page 330: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

330

1.3 了解

TAG 组件技

Tag 技术编程,Tag 接口,SimpleTag

接口,TagSupport 类 4-①初级 掌握

讲授、

讨论 6 4 6 4

2

常用

互联

网协

议及

应用

2.1 掌握

HTTP及

HTTPS协议

了解 Http 协议和 HTTPS 协议。 5-②中级

5-③高级 了解

讲授、

讨论 2 2

2.2 掌握

SMTP和

POP3协议

了解 SMTP 和 POP 协议及邮件应用。 5-②中级

5-③高级 了解

讲授、

讨论 2 4 2 4

2.3 搭建

WEB服务集

搭建 TOMCAT服务器集群。 5-②中级

掌握

讲授、

讨论 2 4 2 4

3

主流框

架学习

3.1 了解

STRUTS框架

了解 MVC 模式,了解 STRUTS 框架

及应用开发。

5-②中级

5-③高级

掌握/

运用/

分析

讲授、

讨论 4 4

3.2 了解

SPRING框架

了解 IOC容器,了解注解编程,了

解 SPRING框架。

5-②中级

5-③高级

掌握/

运用/

分析

讲授、

讨论 6 4 6 4

合计 32 24 32 24

Page 331: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

331

九、教学方法及组织形式

1.课堂讲授为主,上机实验和课后作业为辅。本课程从通过对 J2EE 平台技术进行

讲解和学习,以及通过一些应用开发的实际例子来提高学生的动手能力,以课堂讲授、

课堂练习和上机实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、网络资源等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

上机作业 编程:猜数游戏 第 3 周 5%

上机作业 编程:登陆,会话编程 第 4 周 5%

上机作业 编程:文件上传和下载 第 5 周 5%

上机作业 编程:数据库操作及表

格数据分页显示 第 6 周 5%

上机作业 编程:分布式文件存储系

统 第 7 周 5%

上机作业 编程:邮件服务 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 332: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

332

(二)命题要求

考核项目 重点考核知识点、技能点 备注

上机作业 4-①初级能力 占总成绩 15%

上机作业 5-②中级能力 占总成绩 15%

上机作业 5-②中级能力 占总成绩 5%

上机作业 5-②中级能力 占总成绩 5%

上机作业 5-②中级能力

5-③高级能力 占总成绩 5%

上机作业 5-②中级能力

5-③高级能力 占总成绩 5%

期末考试

4-①初级能力

5-②中级能力

5-③高级能力

占总成绩 50 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

多项选择题:

30 个、60 分

问答题:

2 个、20 分

填空题:

10 个、20 分

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,上机实验按时完成且程序运行正确,

作业完成情况优秀,期末总成绩在 90分以上。

Page 333: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

333

良好(89-80) 平时按时出勤,课堂表现认真,上机实验按时完成,程序大部分正

确,作业完成情况良好,期末总成绩在 80 分以上。

中等(79-70) 平时按时出勤,课堂表现认真,上机实验按时完成,程序大部分正

确,作业完成情况中等,期末总成绩在 70 分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,上机按时完成,

程序部分正确,作业完成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,上机实验不能按时完成,程序

不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:姜国海

审核人签字:姜国海

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 4月

Page 334: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

334

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090240060

2. 课程中文名称: J2EE程序设计

3. 课程英文名称: J2EE Advanced Programming

4. 课程性质: 选修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《Java高级编程与应用》、《数据库系统》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 上机教学 周学时 学分 课外学时

56 32 24 4 3

二、任课教师

姜国海(讲师)

三、教材及主要参考资料

教 材: 《JavaEE 编程技术》(第 2 版). 郝玉龙 编著. 清华大学出版

社. 2012.

参考资料: 《Java应用案例分析》 姜国海编著. 清华大学出版社。2012.

四、课程简介

《J2EE高级编程》是软件学院软件工程专业开设的选修课,是一门实践性,技术性

很强的专业选修课程。本课程的主要任务是在掌握 JAVA 语言的基础上介绍 JAVA 企业版

平台下企业应用的开发过程,对 J2EE 平台下的新技术进行跟踪学习。通过本课程的学

习,使学生能够了解 J2EE 平台下企业应用的最新开发技术,掌握 J2EE平台下基于角色

开发,基于组件开发,基于 INTERNET 架构的分布式网络应用开发的特点。完成全部课

程的学习后,学生可以掌握 Servlet, JSP, TAG, EJB 等组件开发技术,也能够使用 Web

Page 335: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

335

Service技术实现异构应用的互联,对于常见的数据库开发技术能够熟练运用,并介绍

一下主流的框架的开发技术,使学生能够在 J2EE平台下开发企业应用。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

4.研究:能够基于软件工程

原理并采用科学的软件工

程方法,对软件工程及应用

领域中的复杂工程问题进

行研究,包括:专业设计实

验、分析与解释数据,并通

过信息综合得到合理有效

的结论。

①面向中小型软件、或较大

型软件开发中部分模块,具

有独立设计与开发系统的

能力,具备资料收集、分析、

设计、编码、测试和维护的

能力。

(初级能力)具有简单应用

开发的设计能力。

5.使用现代工具:能够针

对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

② 掌握开发、选择与使用

现代软件开发工具。

(中级能力)能够进行复杂

的程序设计,并能设计产

品,能够进行 GUI 设计。

5.使用现代工具:能够针

对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性。

③ 掌握软件工程领域最

新分析、设计、编码、测试、

维护技术,对复杂软件工程

问题进行预测与模拟,并能

够理解其局限性。

(高级能力)完全掌握项目

开发过程,掌握主流的框

架,平台,可以进行复用性

设计,彻底掌握项目的进度

设计。

(二)教学目标

目标内容 具体目标

专业知识 了解 J2EE平台

了解 SERVLET技术,包括最新的异步 SERVLET技术

掌握 JSP和 TAG技术

掌握 EJB 技术

掌握 WEB SERVICE 技术

掌握 JSON编程

掌握 MESSAGE API

Page 336: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

336

掌握 JavaMail编程

专业技能 掌握数据库编程

掌握 WEB表示层开发技术

掌握分布式应用开发技术

掌握 MVC设计模式和 SPRING MVC框架

掌握 J2EE SECURITY

(三)教学任务

本课程将理论讲授与上机操作、课后大作业环节相结合,使学生更深入地理解和掌

握 J2EE 平台下的分布式系统的开发方法,熟练应用 JSP, SERVLET, TAG 等技术进行 WEB

应用开发,同时能够构建应用整合,通过 JMS 和 WEB SERVICE 技术进行系统集成。能够

在主流的 SPRING 框架下进行应用开发。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 3大部分:J2EE 平台下的组件技术,常用互联网协议及服务分析与应用,

基于 J2EE平台下的主流框架技术的开发与应用。

第一部分:J2EE 平台下的组件技术

学生要了解的基础知识:Servlet 组件技术, 简单的 WEB 应用开发及部署运行, JSP

组件技术, TAG组件技术。

1.了解 Servlet组件技术

内容包括:Servlet 接口,请求对象接口,响应对象接口,HttpServletRequest,

HttpServletResponse, ServletConfig 组件配置接口, ServletContext 接口。

HttpSession编程。

2.了解 JSP 组件技术

内容包括:JSP 文件语法,JSP 组件和 Servlet 组件的关系,利用 JSP 程序进行表

格数据分页功能实现。

3.了解 Tag 组件技术

内容包括:了解 JSP 和 Tag 组件的关系,掌握 Tag 接口,TagSupport,SimpleTag

等组件开发技术。

第二部分:常用互联网协议及应用

会运用 http 协议和 https 协议进行应用程序开发,利用浏览器客户端和服务器进

行交互通信,利用 HttpClient 组件和后端服务器进行数据通信,利用 Http协议进行 RPC

过程开发。了解 SMTP和 POP3协议。构建分布式 WEB 服务系统。

4.掌握 HTTP 协议及 HTTPS 协议

内容包括:学习 HTTP协议和 HTTPS 协议的技术细节。

5.掌握 SMTP 和 POP3协议,开发邮件应用。

Page 337: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

337

内容包括:分析学习 SMTP 和 POP3协议,搭建邮件服务器,构建一个邮件服务应用

程序。

6.搭建 WEB 服务集群

内容包括:TOMCAT 服务器集群配置,分布式内存编程技术。

第三部分:主流框架技术学习

介绍一些 J2EE 平台下的框架技术。

7.Struts 简介

内容包括:MVC模式,STRUTS 开发环境搭建及在该框架下的程序开发。

8.SPRING 简介

内容包括:IOC容器,注解编程,SPRING开发环境搭建及应用开发。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 JavaScript 语言

学习

能够进行简单的 JS

程序开发

4 2 课后作业

2 学习 ExtJS 框架 能够开发一个简单

的基于 ExtJS 框架

的程序

8 4-10 课后作业

3 JQuery语言学习 利用 JQuery 开发一

个简单的单词查询

软件

Page 338: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

338

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 猜数游戏 单元项目 3

用 SERVLET 技术和

JSP 技术来实现猜

数游戏

程序 上机实践 4 上机作业 课下 综合型试

2

用户登录

及欢迎界

面程序

单元项目 4 登录程序,用户会

话数据编程 程序 上机实践 4 上机作业 课下

综合型试

3

文件上传

和下载程

单元项目 5

实现通过 HTTP协议

上传文件和下载文

程序 上机实践 4 上机作业 课下 综合型试

4

数据库中

的数据分

页显示

单元项目 6

使用 JSP, TAG技术

来输出数据表格,

使用 JDBC访问数据

库。

程序 上机实践 4 上机作业 课下 综合型试

5

分布式文

件存储系

单元项目 7 利用 SPRING框架来

实现分布式文件存

储系统,采用分布

程序 上机实践 4 上机作业 课下 综合型试

Page 339: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

339

式内存来实现大规

模并发,实现服务

器集群。

6 邮件服务 单元项目 8

使用 JavaMail

来继续邮件服

务编程

程序 上机实践 4 上机作业 课下 综合型试

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

J2EE

平台

组件

开发

技术

1.1 了解

Servlet组

件技术

掌握 Servlet 接口,请求对象接口

和 响 应 对 象 接 口 , 掌 握

HttpSession,掌握 ServletContext

和 ServletConfig等接口。

4-①初级 了解 讲授、

讨论 6 4 6 4

1.2 了解

JSP组件技

JSP语法,JSP和 Servlet组件之间

的关系,JSP开发方法 4-①初级 了解

讲授、

讨论 4 4 4 4

Page 340: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

340

1.3 了解

TAG 组件技

Tag 技术编程,Tag 接口,SimpleTag

接口,TagSupport 类 4-①初级 掌握

讲授、

讨论 6 4 6 4

2

常用

互联

网协

议及

应用

2.1 掌握

HTTP及

HTTPS协议

了解 Http 协议和 HTTPS 协议。 5-②中级

5-③高级 了解

讲授、

讨论 2 2

2.2 掌握

SMTP和

POP3协议

了解 SMTP 和 POP 协议及邮件应用。 5-②中级

5-③高级 了解

讲授、

讨论 2 4 2 4

2.3 搭建

WEB服务集

搭建 TOMCAT服务器集群。 5-②中级

掌握

讲授、

讨论 2 4 2 4

3

主流框

架学习

3.1 了解

STRUTS框架

了解 MVC 模式,了解 STRUTS 框架

及应用开发。

5-②中级

5-③高级

掌握/

运用/

分析

讲授、

讨论 4 4

3.2 了解

SPRING框架

了解 IOC容器,了解注解编程,了

解 SPRING框架。

5-②中级

5-③高级

掌握/

运用/

分析

讲授、

讨论 6 4 6 4

Page 341: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

341

合计 32 24 32 24

Page 342: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

342

九、教学方法及组织形式

1.课堂讲授为主,上机实验和课后作业为辅。本课程从通过对 J2EE 平台技术进行

讲解和学习,以及通过一些应用开发的实际例子来提高学生的动手能力,以课堂讲授、

课堂练习和上机实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、网络资源等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

上机作业 编程:猜数游戏 第 3 周 5%

上机作业 编程:登陆,会话编程 第 4 周 5%

上机作业 编程:文件上传和下载 第 5 周 5%

上机作业 编程:数据库操作及表

格数据分页显示 第 6 周 5%

上机作业 编程:分布式文件存储系

统 第 7 周 5%

上机作业 编程:邮件服务 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 343: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

343

(二)命题要求

考核项目 重点考核知识点、技能点 备注

上机作业 4-①初级能力 占总成绩 15%

上机作业 5-②中级能力 占总成绩 15%

上机作业 5-②中级能力 占总成绩 5%

上机作业 5-②中级能力 占总成绩 5%

上机作业 5-②中级能力

5-③高级能力 占总成绩 5%

上机作业 5-②中级能力

5-③高级能力 占总成绩 5%

期末考试

4-①初级能力

5-②中级能力

5-③高级能力

占总成绩 50 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

多项选择题:

30 个、60分

问答题:

2个、20分

填空题:

10个、20分

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,上机实验按时完成且程序运行正确,

作业完成情况优秀,期末总成绩在 90分以上。

Page 344: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

344

良好(89-80) 平时按时出勤,课堂表现认真,上机实验按时完成,程序大部分正

确,作业完成情况良好,期末总成绩在 80 分以上。

中等(79-70) 平时按时出勤,课堂表现认真,上机实验按时完成,程序大部分正

确,作业完成情况中等,期末总成绩在 70 分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,上机按时完成,

程序部分正确,作业完成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,上机实验不能按时完成,程序

不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:姜国海

审核人签字:姜国海

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 345: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

345

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090463010

2. 课程中文名称: J2EE高级编程

3. 课程英文名称: J2EE Advanced Development

4. 课程性质: 选修课

5. 考核方式: 平时成绩 +期末大作业

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 3学期

8. 先修课程: 《C语言程序设计》、《C++程序设计》

9. 后继课程: 《UML》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

80 40 40 20 4 0

二、任课教师

姜国海(工程师)

三、教材及主要参考资料

教 材: 《Java 应用案例分析》. 姜国海,赵小薇,马瑞新编著. 清华

大学出版社. 2012.

参考资料: 《Java语言程序设计》(第 2版). 郑莉著.清华大学出版社

四、课程简介

《Java&J2EE 应用与开发》是软件工程专业专业实践课程之一。本课程旨在 Java

语言语法知识、J2SE 平台 API、J2EE 平台应用开发,Java 应用开发案例四个部分的内

容,既关注理论基础知识,结合数据结构、算法知识,编程语言等知识,将理论运用到

实践过程。本课程首先介绍 Java编程语言的基本语法,结合面向对象技术介绍 Java语

言的继承,封装,多态,覆盖,重载,构造函数等高级知识,然后使用包装类,字符串

类,集合类进行简单的编程学习,再进行文件,多线程,网络,GUI等高级程序设计的

学习,最后在 J2EE 平台下开发 WEB 应用,不仅仅讲解计算机程序编程,还讲解程序设

Page 346: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

346

计的方法,常见的案例的开发过程。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

2.问题分析:能够描述问

题,从问题中抽象出数据和

算法。

② 能够将数据和算法封装

成类。

(高级能力)能进行类的关

系的分析。

3.设计/开发解决方案:能

够设计出类,设计出类间关

系,能使用接口。

② 能够熟练使用接口,掌

握类间聚合,继承,使用关

系,能够进行简单的算法设

计.

(中级能力)能够进行复杂

的程序设计,并能设计产

品,能够进行 GUI 设计。

11.项目管理:理解项目管

理,掌握项目分工,基本了

解项目进度控制过程。

①掌握使用第三方程序,能

够定义项目,分解项目,配

置项目。

(初级能力)完全掌握项目

开发过程,掌握主流的框

架,平台,可以进行复用性

设计,彻底掌握项目的进度

设计。

(二)教学目标

目标内容 具体目标

专业知识 掌握面向对象技术特点

掌握 Java语言语法

掌握 J2EE技术特点

掌握异常处理

掌握 Servlet, JSP 基础知识

掌握集合类编程知识

掌握文件编程

专业技能 掌握 eclipse 开发环境

了解 MVC 设计模式

了解 GUI 程序开发基础知识

了解 WEB应用开发特点

了解 Java数据库编程基础知识,了解 JDBC

(三)教学任务

本课程将编程理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解

和掌握 Java 编程技术,熟练 JavaSE 平台的类库系统进行应用程序设计和实现,能够使

用 Java 语言实现常见的算法,例如排序,检索,数据输入输出。能够使用 J2EE 相关技

Page 347: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

347

术进行简单的 WEB 应用开发。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:Java 语法知识,J2SE 平台 API 编程,J2EE平台 API编程,

以及编程实践。

第一部分:Java 语法知识

要求学生们掌握 Java语法,彻底的掌握 Java语言,能够对编程过程中出现的各种

语法错误进行排错处理。

1.数据类型

内容包括:基本数据类型的讲解,包括数值类型,字符类型,布尔类型;对象类型

的讲解,包括类,接口,数组。

2.数据的存储结构,变量的定义,数据的运算

内容包括:数据的存储分配,数据的初始化,变量的定义,成员变量和局部变量的

声明,函数参数的定义及传递方式。数据的运算及运算符。

3.类及接口的相关语法

内容包括:类的定义,成员的访问权限,对象的创建和初始化,构造函数,抽象类,

抽象函数,接口,接口的实现,类型转换,多态,覆盖于重载。内部类。

第二部分:J2SE 平台编程 API

会运用常见的类库进行简单的编程,能够完成百行代码左右的小应用程序的设计与

实现,这部分的重点内容是包装类,集合,字符串类以及文件操作。

4.掌握 Object类及对象的关系运算

内容包括:Object 类,equals 函数,clone 函数,toString函数,hashCode 函数。

5.掌握包装类和字符串类

内容包括:常见的字符串运算,包括合并,大小写转换,检索,子串操作,字符数

据到其它简单类型的转换。

6.掌握集合框架

内容包括:掌握 Collection, List, Set, Map 接口,并掌握 ArrayList,

LinkedList,HashSet, TreeSet,HashMap, Hashtable, TreeMap 集合实现类。

7. 掌握文件操作

内容包括:掌握 File 类,RandomAccessFile 类,重点掌握流编程,在流编程知识

掌握的基础上,运用 FileInputStream, FileOutputStream进行文件操作,包括文件复

制,掌握流链接思想,在此基础上,运用 DataInputStream, DataOutputStream 类进行

数据文件的读写。

第三部分:J2EE 平台编程 API

在这部分内容中讲述 J2EE 平台的基础知识,了解平台开发技术特点,运用 Servlet,

JSP等组件技术完成 Web应用开发,深刻理解 MVC的思想。

8.了解 J2EE 平台特点

内容包括:J2EE 平台是抽象的,是定义软件。J2EE 应用开发是基于组件技术的开

Page 348: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

348

发过程,应用程序运行在 J2EE应用服务器上,应用程序需要发布部署。

9.掌握 Servlet

内容包括:了解 Servlet接口的 API 函数,了解 Servlet 概念,掌握 HttpServlet

类,能够处理客户端发送过来的 HttpServletRequest 对象,并产生相应,将数据输出

到 HttpServletResponse对象中。了解 ServletConfig 和 ServletContext。

10.Web应用过程中数据共享

内容包括:数据的共享,数据名值绑定,数据的作用域。掌握数据存取函数

setAttribute和 getAttribute,掌握 RequestDispatcher

11.掌握 Listener 和 Filter

内容包括:理解 Filter的作用,掌握 Filter 编程方法,理解 Web 应用运行过程中

的事件,使用 Listener来处理这些事件。

12. 掌握 JSP编程技术

内容包括:理解 JSP概念,掌握 JSP 编程语法知识,进一步理解 MVC框架,能够运

用 JSP+JAVABEAN来进行 WEB应用开发。

第四部分:编程实践

在掌握 JAVA 语言的语法基础上,运用 J2SE,J2EE平台的类库进行软件应用的开发,

对所学的算法知识进行巩固和加强。

13.运用霍夫曼算法进行文本文件的压缩

内容包括:对树的遍历,掌握文本文件的输入输出,了解霍夫曼算法,重点掌握集

合编程。

14.文件上传和下载

内容包括:运用网络编程和文件编程知识进行文件的上传和下载,掌握传输协议的

设计过程,掌握文件操作的 API类库,掌握网络通信编程的 API 类库。了解多线程编程,

了解线程池。

15.单链表操作

内容包括:理解和掌握单链表的概念,重点掌握对象和引用的概念和编程,实现单

链表的节点添加,删除,遍历等操作。

16.WEB应用开发

内容包括:掌握 SERVLET和 JSP编程技术,掌握分页技术,使用 Servlet和 Filter

技术来实现文件上传和下载。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 学习 Spring 框架 阅读 Spring 官网上的文档 4 2 课后作业

2 运用数据流图、数据字典、UML

等软件工程方法设计系统架

掌握系统分析与设计全过

程中的开发工具,

8 4-10 课后作业

3 构建系统宏观架构,实现系统

详细设计

实现系统需求、设计具有创

新、考虑社会、环境等因素

Page 349: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

349

七、实践教学实施计划表

序号 名称 教学

周 实践教学内容

实践教学

目标 实施方法 课内学时 考核方式 实践场所 实验类型

1 开发环境 1 JDK安装,ECLISPE 安

装,调试及运行

掌握开发

工具的安

装与配置

实践教学 2 课程作业 课堂、

课下

综合型试

2 集合框架 2 数量掌握集合的开发

掌握各种

集合的使

实践教学 6 课程作业 课堂、

课下

综合型试

3 文件操作 3 熟练进行文件操作 掌握文件

操作 实践教学 6 课程作业

课堂、

课下

综合型、

验证型试

4 网络应用 4 能够运行多线程和网

络 API进行开发

能够进行

网络应用

开发,设计

网络协议

实践教学 8 课程作业 课堂、

课下

综合型试

Page 350: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

350

八、各单元知识点、技能点分布及学时分配表

单元

标题 小节标题 知识点与技能点 能力目标

掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

Java

语法

1.1 数据类

型,对象类型

和引用变量,

变量定义,参

数传递

掌握 JAVA 基本数据类型,掌握数

组,掌握类的定义,变量定义和初

始化,参数传递。

3-②初级 了解 讲授、

讨论 4 2

1.2 类和接

口,抽象类,

多态,继承,

异常处理

类的定义,类的继承,接口定义和

接口实现,多态,异常处理。 3-②初级 了解

讲授、

讨论 4 2

1.3 匿名类,

内部类,多线

程编程。

匿名类,内部类,多线程编程 11-①初级 了解 讲授、

讨论 4 2

2

J2SE

平台

编程

2.1 掌握

Object类,

掌握 Class

类,掌握

Comparable

掌握对象的关系运算。掌握元类

Class 的基本操作。 2-②中级 掌握

讲授、

讨论 2 1

Page 351: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

351

接口

2.2 掌握集

合框架,掌握

集合接口及

实现类

掌握集合编程。 2-②中级 掌握 讲授、

讨论 4 1

2.3 掌握文

件操作,掌握

常用 i/o类。

掌握文件的操作,掌握流编程的概

念,掌握流链接概念。 3-②中级 掌握

讲授、

讨论 4 2

3

掌握

J2EE

编程

API

3.1 掌握

Servlet开

了解 WEB 应用的运行方式,掌握

SERVLET开发技术。能够编写简单的

WEB应用程序。

2-②高级

掌握/

运用/

分析

讲授、

讨论 4 1

3.2 掌握

Filter开发 掌握 Filter编程技术。 2-②高级

掌握/

运用/

分析

讲授、

讨论 2 2

3.3 掌握

JSP开发

掌握 JSP 语法,能够运用 JSP 技术

进行网页编程。 3-②初级 了解

讲授、

讨论 2 1

4

编程

实践

4.1 能够定

义数据结构,

并运行链表

和树进行开

掌握单链表的基本操作,能够运用

霍夫曼编码思想进行文件压缩。 2-②中级 掌握

讲授、

讨论 2 1

合计 32 16

Page 352: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过 Java 语法讲解、案例分析

以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手段,最终

实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业 1 集合操作 第 2 周 10%

课后作业 2 文件操作 第 2 周 10%

课后作业 3 多线程编程 第 2 周 10%

课后作业 4 GUI 编程 第 3 周 10%

课后作业 5 网络编程 第 3 周 10%

课后作业 6 综合编程 第 3 周 10%

终结性考核 期末大作业 全部知识单元教学内容 第 4 周 40 %

Page 353: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1 2-②高级能力、3-②中级能力 占总成绩 10%

课后作业 2 2-②高级能力、3-②中级能力 占总成绩 10%

课后作业 3 2-②高级能力、3-②中级能力 占总成绩 10%

课后作业 4 2-②高级能力、3-②中级能力 占总成绩 10%

课后作业 5 2-②高级能力、3-②中级能力 占总成绩 10%

课后作业 6 2-②高级能力、3-②中级能力 占总成绩 10%

期末大作业 2-②高级能力、3-②中级能力、11-①初级能力 占总成绩 40 %

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,作业全面正确,合计总成绩在 90

分以上。

良好(89-80) 平时按时出勤,课堂表现认真,作业全面且大部分正确,合计总成

绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,作业全面且部分正确,合计总成绩

在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,作业不全面且

部分正确,合计总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业不全面或不正确,合计总

成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

Page 354: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:姜国海

审核人签字:林林

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 3月

Page 355: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《计算机网络》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430100

2. 课程中文名称: 计算机网络

3. 课程英文名称: Computer Networking

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程、网络工程专业

7. 开课学期: 第二学年第 2学期

8. 先修课程: 《操作系统》、《数据结构与算法》

9. 后继课程: 《网络信息安全》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 48 0 6 3 12

二、任课教师

夏锋(教授)、孔祥杰(副教授)、孙伟峰(副教授)、姚琳(副教授)、万良田(副

教授)

三、教材及主要参考资料

教 材: 《计算机网络:自顶向下方法》(第 5版英文影印版)(Computer

Networking: A Top-Down Approach),作者: Kurose and Ross

(外国),出版社:高等教育出版社,2016年

参考资料: 《计算机网络教程:自顶向下方法(英文版)》,作者:Behrouz

A. Forouzan; Firouz Mosharraf,出版社:机械工业出版社,

2012年

《计算机网络》(第 5 版影印版)(Computer Networks),作者:

Andrew S. Tanenbaum; David J. Wetherall,出版社:机械工

业出版社,2011年

《计算机网络》(第 6 版),作者:谢希仁,出版社:电子工业

出版社,2013 年

Page 356: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

四、课程简介

计算机网络在信息化社会中的重要性日益突出,是当今 IT 界公认的主流技术之一。

本课程是软件工程专业的一门基础必修课,其核心任务是介绍计算机网络的基础理论知

识、组织结构及分层协议;以 Internet 为主要载体系统地、分层次地讲述计算机网络

的基本概念、基本原理和基本方法。使学生掌握计算机网络的体系结构及 TCP/IP 协议

栈中各层协议的工作原理和功能,了解网络的设计原理,提高英文水平,了解网络技术

的最新发展,为今后的专业学习和从事计算机网络设计、开发及研究打下必要的基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1. 工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

②掌握计算机、软件、网络

工程基础及专业知识。

(高级能力)能够运用概率

与统计方法制定分析模型,

具有一定的网络分析能力

以及发现问题,改进系统的

能力。

1. 工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

③掌握计算机系统及网络

系统构成,并能够综合运用

上述专业知识解决网络工

程及应用领域的复杂工程

问题。

(初级能力)掌握计算机网

络的体系结构及 Internet

各层主要协议的工作原理

和功能,能够设计针对需求

的企业级网络。

7. 环境和可持续发展:能

够理解和评价针对复杂工

程问题的工程实践对环境、

社会可持续发展的影响。

②理解和评价信息技术发

展对于客观世界和社会的

影响。

(中级能力)掌握典型网络

设备的组成、工作原理与应

用,能够针对不同环境、不

同需求,选择恰当的系统架

构。

(二)教学目标

目标内容 具体目标

专业知识 了解计算机网络体系结构的分层思想

了解物理层的基本概念

了解数据传输过程中差错产生的原因

了解网络互联的基本概念

掌握端口的概念、流量控制和重传机制

了解 TCP/IP协议簇与应用层协议之间的关系

了解无线网络的组网原理

专业技能 掌握 Socket编程方法

掌握差错检测和纠正方法

Page 357: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

掌握子网编址、构建超网的方法

掌握典型网络设备的使用方法

掌握典型的路由算法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使得学生:对计算机网络

从整体上有一个较清晰的了解。掌握计算机网络的定义、分类与特点。掌握计算机网络

的体系结构及 Internet 各层主要协议的工作原理和功能。初步掌握典型网络设备的组成、

工作原理与应用。了解计算机网络的主流技术和设计原理。了解网络技术的最新发展。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 6 大部分:计算机网络及 Internet 总论,应用层,传输层,网络层,

数据链路层,以及无线局域网技术。

第一部分:计算机网络及 Internet 总论

学生需要了解计算机网络发展过程,理解计算机网络的定义,理解计算机网络体系

结构的分层思想,对计算机网络从整体上有一个较清晰的了解。

1.了解计算机网络基本概念

内容包括:具体构成描述,服务描述,什么是协议;接入网,物理媒体;分组交换,

电路交换,网络的网络

2.了解计算机网络的时延、丢包和吞吐量

内容包括:分组交换网络中的时延概述,排队时延和丢包,端到端时延,计算机网

络中的吞吐量

3.掌握计算机网络体系结构

内容包括:协议分层和服务模型,ISO/OSI 和 Internet 参考模型,计算机网络和因

特网的历史

第二部分:应用层

学生需要了解 TCP/IP 协议簇与应用层协议之间的关系,掌握应用层的典型协议,

学会套接字编程的方法

4.掌握应用层协议原理

内容包括:网络应用程序体系结构,进程通信,可供应用程序使用的运输服务,因

特网提供的运输服务,应用层协议

5.掌握典型的应用层协议

内容包括:Web和 Http,文件传输协议:FTP,因特网中电子邮件,DNS:因特网的

目录服务,P2P应用

6.掌握 TCP 套接字编程方法

内容包括:UDP套接字编程,TCP套接字编程

第三部分:运输层

Page 358: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

了解运输层和应用层之间的关联,掌握应用层的典型协议,掌握拥塞控制的基本原

理,使学生知道可靠传输主要是靠运输层实现的。

7.了解运输层和网络层的关系

内容包括:运输层服务概述,多路复用和多路分解

8.掌握 TCP 和 UDP 协议

内容包括:UDP 报文段结构,UDP校验和,TCP 连接,TCP 报文段结构,往返时间的

估计和超时,可靠数据传输,流量控制,TCP 连接管理

9.掌握拥塞控制原理

内容包括:拥塞原因与代价,拥塞控制方法,网络辅助的拥塞控制例子,TCP拥塞

控制

第四部分:网络层

网络层在 TCP/IP 体系结构中承上启下,通过本部分学习,学生能够理解网络互联

的基本概念、路由器的组成结构;掌握 IP 地址编制机制、地址解析的基本概念与方法;

掌握 IP 数据报的格式、IP层转发分组的流程; 掌握子网编址、构建超网的基本方法;

熟练掌握路由选择协议 RIP 和 OSPF。

10.了解网络互联的基本概念

内容包括:转发和路由选择,网络服务模型,虚电路网络,数据报网络,虚电路和

数据报网络的由来

11.掌握路由器工作原理

内容包括:输入端口,交换结构,输出端口,何处出现排队,路由选择控制平面

12.掌握 IP 协议

内容包括:IP数据报格式,IPv4编制,因特网控制报文协议,IPv6,涉足 IP安全

13.掌握典型的路由选择算法

内容包括:链路状态路由选择算法,距离向量路由选择算法,层次路由选择,因特

网中自制系统内部的路由选择:RIP 和 OSPF,自制系统间的路由选择:BGP,广播和多

播路由选择

第五部分:链路层:链路、接入网和局域网

介绍数据传输过程中差错产生的原因和出错的几种情况,使学生理解链路、数据链

路、滑动窗口的概念,理解帧定界、透明传输、差错检测的方法。

14.掌握差错检测和纠正方法

内容包括:链路层概述,奇偶校验,校验和方法,循环冗余检验

15. 掌握多路访问协议

内容包括,信道划分协议,随机接入协议,轮流协议,DOCSIS:用于电缆因特网接

入的链路层协议

16. 掌握以太网技术、标准及设备

内容包括,MAC 地址,ARP 协议,以太网,CSMA/CD 协议,交换机、网桥、集线器工

作原理,虚拟局域网

第六部分:无线网络

Page 359: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

介绍无线局域网技术,使学生了解无线网络的组网原理,理解无线网络的协议。

17. 了解无线网络的组网原理

内容包括,无线网络概述,无线链路和网络特征

18. 掌握 802.11协议

内容包括,CSMA/CA 协议,802.11体系结构,802.11 MAC协议,IEEE 802.11 帧

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具体的行业背

景的网络特点,进

行组网需求分析

提出组网需求方案,

同时考虑效率、安

全、经济等因素

4 4 课后作业

2 运用数据链路层、

网络层、传输层的

典型协议设计网络

架构

掌握网络设计与分

析全过程中的模拟

仿真工具,

8 8 课后作业

3 完成网络 Socket

编程,实现系统详

细功能

实现系统需求、设计

具有创新性、考虑社

会、经济等因素

Page 360: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

Int

ern

et

1.1 了解计算

机网络基本概

具体构成描述,服务描述,什么是

协议;接入网,物理媒体;分组交

换,电路交换,网络的网络

1-②初级 了解 讲授、

讨论 2 2

1.2 了解计算

机网络的时

延、丢包和吞

吐量

分组交换网络中的时延概述,排队

时延和丢包,端到端时延,计算机

网络中的吞吐量

1-②初级 了解 讲授、

讨论 2 2

1.3 掌握计算

机网络体系结

协议分层和服务模型, ISO/OSI 和

Internet 参考模型,计算机网络和因

特网的历史

1-③初级 了解 讲授、

讨论 2 2

Page 361: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2

2.1 掌握应用

层协议原理

网络应用程序体系结构,进程通信,

可供应用程序使用的运输服务,因

特网提供的运输服务,应用层协议

1-③初级 掌握 讲授、

讨论 2 2

2.2 掌握典型

的应用层协议

Web和 Http,文件传输协议:FTP,

因特网中电子邮件,DNS:因特网的

目录服务,P2P应用

1-②中级 掌握 讲授、

讨论 3 3

2.3 掌握 TCP

套接字编程方

UDP套接字编程,TCP 套接字编程 7-②中级 掌握 讲授、

讨论 3 3

测试 A 1-②初级、

7-②初级

随堂

测试 2

需求分析 面向具体的行业背景的网络特点,

进行组网需求分析

1-②高级

7-②中级

掌握/

运用/

分析

讨论 课后

作业 2 2

3

运输

3.1 了解运输

层和网络层的

关系

运输层服务概述,多路复用和多路

分解 1-②高级

掌握/

运用/

分析

讲授、

讨论 4 4

3.2 掌握 TCP

和 UDP协议

UDP 报文段结构,UDP 校验和,TCP

连接,TCP报文段结构,往返时间的

估计和超时,可靠数据传输,流量

控制,TCP连接管理

7-②中级

掌握/

运用/

分析

讲授、

讨论 4 4

3.3 掌握拥塞 拥塞原因与代价,拥塞控制方法, 1-③初级 了解 讲授、 4 4

Page 362: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

控制原理 网络辅助的拥塞控制例子,TCP拥塞

控制

讨论

测试 B 1-②初级

1-③初级

随堂

测试 2

框架设计 运用数据链路层、网络层、传输层

的典型协议设计网络架构

1-②高级

1-③初级

课后

作业 4 4

4

网络

4.1 了解网络

互联的基本概

转发和路由选择,网络服务模型,

虚电路网络,数据报网络,虚电路

和数据报网络的由来

1-②中级 掌握 讲授、

讨论 3 3

4.2 掌握路由

器工作原理

输入端口,交换结构,输出端口,

何处出现排队,路由选择控制平面 1-②中级 掌握

讲授、

讨论 3 3

4.3 掌握 IP

协议

IP数据报格式,IPv4编制,因特网

控制报文协议,IPv6,涉足 IP安全

1-③初级

掌握/

运用/

分析

讲授、

讨论 3 3

4.4 掌握典型

的路由选择算

链路状态路由选择算法,距离向量

路由选择算法,层次路由选择,因

特网中自制系统内部的路由选择:

RIP 和 OSPF,自制系统间的路由选

择:BGP,广播和多播路由选择

1-③初级 了解 讲授、

讨论 3 3

测试 C 1-②初级

1-③初级

随堂

测试 4

详细设计 运用数据链路层、网络层、传输层

的典型协议设计网络详细功能

1-③初级

7-②中级

课后

作业 4 4

5

链路

层:

5.1 掌握差错

检测和纠正方

链路层概述,奇偶校验,校验和方

法,循环冗余检验 1-③初级 2 2

Page 363: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

路、

接入

网和

局域

5.2 掌握多路

访问协议

信道划分协议,随机接入协议,轮

流协议,DOCSIS:用于电缆因特网

接入的链路层协议

1-②中级 3 3

5.3 掌握以太

网技术、标准

及设备

MAC地址,ARP协议,以太网,CSMA/CD

协议,交换机、网桥、集线器工作

原理,虚拟局域网

7-②中级 3 3

6

无线

网络

6.1 了解无线

网络的组网原

无线网络概述,无线链路和网络特

征 1-②中级 掌握

讲授、

讨论 1 1

6.2 掌握

802.11协议

CSMA/CA 协议,802.11 体系结构,

802.11 MAC协议,IEEE 802.11帧 7-②初级 1 1

测试 D

1-②初级

1-③初级

7-②初级

随堂

测试 2

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

经济等影响

1-③初级

7-②中级

课后

作业 2 2

合计 48 10 12 48 12

Page 364: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过计算机网络的基础知识讲

解、网络分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验

等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

课后作业 A 网络设计 第 4 周 10%

课后作业 B 网络仿真 第 8 周 10%

测验 A 计算机网络基础 第 2 周 2%

测验 B 路由算法计算 第 4 周 2%

测验 C 差错检测与纠错 第 6 周 3%

测验 D 综合测试 第 8 周 3%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

(二)命题要求

Page 365: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

考核项目 重点考核知识点、技能点 备注

课后作业 A 1-②高级能力、1-③初级能力、7-②中级能力 占总成绩 10%

课后作业 B 1-②高级能力、1-③初级能力、7-②中级能力 占总成绩 10%

测试 A 1-②初级能力、7-②初级能力 占总成绩 2%

测试 B 1-②初级能力、1-③7-①初级能力 占总成绩 2%

测试 C 1-②初级能力、1-③初级能力、7-②中级能力 占总成绩 3%

测试 D 1-②初级能力、1-③初级能力、7-②中级能力 占总成绩 3%

期末考试 1-②高级能力、1-③初级能力、7-②初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

名词解释:

10个、20%

简答题:

6个、30%

综合应用题:

3 个、30%

计算题:

个 %

其 他:

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率

教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=

(100% )

备注

Page 366: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:孔祥杰

审核人签字:孔祥杰

专业负责人签字:夏锋

主管院长:江贺

制定日期:2017年 4月

Page 367: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题
Page 368: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2016 年教学大纲

一、课程基本信息

1

课程编号: 1090430100

2

课程中文名

称:

计算机网络

3

课程英文名

称:

Computer Networking

4

.

课程性质: 必修课

5

.

考核方式: 平时成绩 +期末考试

6

.

开课专业: 软件工程、网络工程专业

7

.

开课学期: 第二学年第 2学期

8

.

先修课程: 《操作系统》、《数据结构与算法》

9

.

后继课程: 《网络信息安全》

1

0.

学时安排:

总学

理论

教学

实践

教学

周学

学分 课外

学时

48 36 12 6 3 12

二、任课教师

夏锋(教授)、孔祥杰(副教授)、孙伟峰(副教授)、姚琳(副教授)、万良田(副

教授)

三、教材及主要参考资料

教 材: 《计算机网络:自顶向下方法》(第 5 版英文影印版)

(Computer Networking: A Top-Down Approach),作者: Kurose

and Ross(外国),出版社:高等教育出版社,2016 年

参考资料: 《计算机网络教程:自顶向下方法(英文版)》,作者:

Behrouz A. Forouzan; Firouz Mosharraf,出版社:机械工业

Page 369: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

出版社,2012 年

《计算机网络》(第 5 版影印版)(Computer Networks),

作者:Andrew S. Tanenbaum; David J. Wetherall,出版社:

机械工业出版社,2011年

《计算机网络》(第 6 版),作者:谢希仁,出版社:电子

工业出版社,2013 年

四、课程简介

计算机网络在信息化社会中的重要性日益突出,是当今 IT 界公认的主流技术之一。

本课程是软件工程专业的一门基础必修课,其核心任务是介绍计算机网络的基础理论知

识、组织结构及分层协议;以 Internet 为主要载体系统地、分层次地讲述计算机网络

的基本概念、基本原理和基本方法。使学生掌握计算机网络的体系结构及 TCP/IP 协议

栈中各层协议的工作原理和功能,了解网络的设计原理,提高英文水平,了解网络技术

的最新发展,为今后的专业学习和从事计算机网络设计、开发及研究打下必要的基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2 级能力指标 课程培养能力指标

1. 工程知识:能够将

数学、自然科学、工程基础

和专业知识用于解决复杂

工程问题。

②掌握计算机、软件、

网络工程基础及专业知识。

(高级能力)能够运用

概率与统计方法制定分析

模型,具有一定的网络分析

能力以及发现问题,改进系

统的能力。

1. 工程知识:能够将

数学、自然科学、工程基础

和专业知识用于解决复杂

工程问题。

③掌握计算机系统及

网络系统构成,并能够综合

运用上述专业知识解决网

络工程及应用领域的复杂

工程问题。

(初级能力)掌握计算

机 网 络 的 体 系 结 构 及

Internet 各层主要协议的

工作原理和功能,能够设计

针对需求的企业级网络。

7. 环境和可持续发

展:能够理解和评价针对复

杂工程问题的工程实践对

环境、社会可持续发展的影

响。

②理解和评价信息技

术发展对于客观世界和社

会的影响。

(中级能力)掌握典型

网络设备的组成、工作原理

与应用,能够针对不同环

境、不同需求,选择恰当的

系统架构。

(二)教学目标

目标内容 具体目标

专业知识 了解计算机网络体系结构的分层思想

了解物理层的基本概念

了解数据传输过程中差错产生的原因

Page 370: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

了解网络互联的基本概念

掌握端口的概念、流量控制和重传机制

了解 TCP/IP协议簇与应用层协议之间的关系

了解无线网络的组网原理

专业技能 掌握 Socket编程方法

掌握差错检测和纠正方法

掌握子网编址、构建超网的方法

掌握典型网络设备的使用方法

掌握典型的路由算法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使得学生:对计算机网络

从整体上有一个较清晰的了解。掌握计算机网络的定义、分类与特点。掌握计算机网络

的体系结构及 Internet 各层主要协议的工作原理和功能。初步掌握典型网络设备的组成、

工作原理与应用。了解计算机网络的主流技术和设计原理。了解网络技术的最新发展。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 6 大部分:计算机网络及 Internet 总论,应用层,传输层,网络层,

数据链路层,以及无线局域网技术。

第一部分:计算机网络及 Internet 总论

学生需要了解计算机网络发展过程,理解计算机网络的定义,理解计算机网络体系

结构的分层思想,对计算机网络从整体上有一个较清晰的了解。

1.了解计算机网络基本概念

内容包括:具体构成描述,服务描述,什么是协议;接入网,物理媒体;分组交换,

电路交换,网络的网络

2.了解计算机网络的时延、丢包和吞吐量

内容包括:分组交换网络中的时延概述,排队时延和丢包,端到端时延,计算机网

络中的吞吐量

3.掌握计算机网络体系结构

内容包括:协议分层和服务模型,ISO/OSI 和 Internet 参考模型,计算机网络和因

特网的历史

第二部分:应用层

学生需要了解 TCP/IP 协议簇与应用层协议之间的关系,掌握应用层的典型协议,

学会套接字编程的方法

4.掌握应用层协议原理

内容包括:网络应用程序体系结构,进程通信,可供应用程序使用的运输服务,因

Page 371: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

特网提供的运输服务,应用层协议

5.掌握典型的应用层协议

内容包括:Web和 Http,文件传输协议:FTP,因特网中电子邮件,DNS:因特网的

目录服务,P2P应用

6.掌握 TCP 套接字编程方法

内容包括:UDP套接字编程,TCP套接字编程

第三部分:运输层

了解运输层和应用层之间的关联,掌握应用层的典型协议,掌握拥塞控制的基本原

理,使学生知道可靠传输主要是靠运输层实现的。

7.了解运输层和网络层的关系

内容包括:运输层服务概述,多路复用和多路分解

8.掌握 TCP 和 UDP 协议

内容包括:UDP 报文段结构,UDP校验和,TCP 连接,TCP 报文段结构,往返时间的

估计和超时,可靠数据传输,流量控制,TCP 连接管理

9.掌握拥塞控制原理

内容包括:拥塞原因与代价,拥塞控制方法,网络辅助的拥塞控制例子,TCP拥塞

控制

第四部分:网络层

网络层在 TCP/IP 体系结构中承上启下,通过本部分学习,学生能够理解网络互联

的基本概念、路由器的组成结构;掌握 IP 地址编制机制、地址解析的基本概念与方法;

掌握 IP 数据报的格式、IP层转发分组的流程; 掌握子网编址、构建超网的基本方法;

熟练掌握路由选择协议 RIP 和 OSPF。

10.了解网络互联的基本概念

内容包括:转发和路由选择,网络服务模型,虚电路网络,数据报网络,虚电路和

数据报网络的由来

11.掌握路由器工作原理

内容包括:输入端口,交换结构,输出端口,何处出现排队,路由选择控制平面

12.掌握 IP 协议

内容包括:IP数据报格式,IPv4编制,因特网控制报文协议,IPv6,涉足 IP安全

13.掌握典型的路由选择算法

内容包括:链路状态路由选择算法,距离向量路由选择算法,层次路由选择,因特

网中自制系统内部的路由选择:RIP 和 OSPF,自制系统间的路由选择:BGP,广播和多

播路由选择

第五部分:链路层:链路、接入网和局域网

介绍数据传输过程中差错产生的原因和出错的几种情况,使学生理解链路、数据链

路、滑动窗口的概念,理解帧定界、透明传输、差错检测的方法。

14.掌握差错检测和纠正方法

内容包括:链路层概述,奇偶校验,校验和方法,循环冗余检验

Page 372: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

15. 掌握多路访问协议

内容包括,信道划分协议,随机接入协议,轮流协议,DOCSIS:用于电缆因特网接

入的链路层协议

16. 掌握以太网技术、标准及设备

内容包括,MAC 地址,ARP 协议,以太网,CSMA/CD 协议,交换机、网桥、集线器工

作原理,虚拟局域网

第六部分:无线网络

介绍无线局域网技术,使学生了解无线网络的组网原理,理解无线网络的协议。

17. 了解无线网络的组网原理

内容包括,无线网络概述,无线链路和网络特征

18. 掌握 802.11协议

内容包括,CSMA/CA 协议,802.11体系结构,802.11 MAC协议,IEEE 802.11 帧

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具体的行业背

景的网络特点,进

行组网需求分析

提出组网需求方案,

同时考虑效率、安

全、经济等因素

4 4 课后作业

2 运用数据链路层、

网络层、传输层的

典型协议设计网络

架构

掌握网络设计与分

析全过程中的模拟

仿真工具,

8 8 课后作业

3 完成网络 Socket

编程,实现系统详

细功能

实现系统需求、设计

具有创新性、考虑社

会、经济等因素

Page 373: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 2

面向具体的行业背

景的网络特点,进

行组网需求分析

完成系统

分析报告 实践教学 2 课程作业

课堂、

课下

综合型试

2 框架设计 单元项目 4

运用数据链路层、

网络层、传输层的

典型协议设计网络

架构

完成系统

框架设计

报告

实践教学 2 课程作业 课堂、

课下

综合型试

3 详细设计 单元项目 6

运用数据链路层、

网络层、传输层的

典型协议设计网络

详细功能

完成系统

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 8

评价实施方案,考

虑创新性、社会、

经济等影响

完成系统

测试与实

施报告

实践教学 4 课程作业 课堂、

课下

综合型试

Page 374: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

单元标

题 小节标题 知识点与技能点 能力目标

掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

计算机网

络及

Internet

总论

1.1 了解计

算机网络基

本概念

具体构成描述,服务描述,什么是

协议;接入网,物理媒体;分组交

换,电路交换,网络的网络

1-②初级 了解 讲授、

讨论 2 2

1.2 了解计

算机网络的

时延、丢包和

吞吐量

分组交换网络中的时延概述,排队

时延和丢包,端到端时延,计算机

网络中的吞吐量

1-②初级 了解 讲授、

讨论 2 2

1.3 掌握计算

机网络体系

结构

协议分层和服务模型,ISO/OSI 和

Internet 参考模型,计算机网络和因

特网的历史

1-③初级 了解 讲授、

讨论 2 2

2

应用层

2.1 掌握应

用层协议原

网络应用程序体系结构,进程通信,

可供应用程序使用的运输服务,因

特网提供的运输服务,应用层协议

1-③初级 掌握 讲授、

讨论 2 2

Page 375: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2.2 掌握典

型的应用层

协议

Web和 Http,文件传输协议:FTP,

因特网中电子邮件,DNS:因特网的

目录服务,P2P应用

1-②中级 掌握 讲授、

讨论 3 3

2.3 掌握 TCP

套接字编程

方法

UDP套接字编程,TCP套接字编程 7-②中级 掌握 讲授、

讨论 3 3

测试 A 1-②初级、

7-②初级

随堂

测试 2

需求分析 面向具体的行业背景的网络特

点,进行组网需求分析

1-②高级

7-②中级

掌握/

运用/

分析

讨论 课后

作业 2 2

3

运输层

3.1 了解运

输层和网络

层的关系

运输层服务概述,多路复用和多路

分解 1-②高级

掌握/

运用/

分析

讲授、

讨论 4 4

3.2 掌握 TCP

和 UDP协议

UDP 报文段结构,UDP 校验和,TCP

连接,TCP 报文段结构,往返时间

的估计和超时,可靠数据传输,流

量控制,TCP连接管理

7-②中级

掌握/

运用/

分析

讲授、

讨论 4 4

3.3 掌握拥

塞控制原理

拥塞原因与代价,拥塞控制方法,

网络辅助的拥塞控制例子,TCP 拥

塞控制

1-③初级 了解 讲授、

讨论 4 4

测试 B 1-②初级 随堂 2

Page 376: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

1-③初级 测试

框架设计 运用数据链路层、网络层、传输层

的典型协议设计网络架构

1-②高级

1-③初级

课后

作业 4 4

4

网络层

4.1 了解网

络互联的基

本概念

转发和路由选择,网络服务模型,

虚电路网络,数据报网络,虚电路

和数据报网络的由来

1-②中级 掌握 讲授、

讨论 3 3

4.2 掌握路

由器工作原

输入端口,交换结构,输出端口,

何处出现排队,路由选择控制平面 1-②中级 掌握

讲授、

讨论 3 3

4.3 掌握 IP

协议

IP数据报格式,IPv4编制,因特网

控制报文协议,IPv6,涉足 IP安全

1-③初级

掌握/

运用/

分析

讲授、

讨论 3 3

4.4 掌握典

型的路由选

择算法

链路状态路由选择算法,距离向量

路由选择算法,层次路由选择,因

特网中自制系统内部的路由选择:

RIP 和 OSPF,自制系统间的路由选

择:BGP,广播和多播路由选择

1-③初级 了解 讲授、

讨论 3 3

测试 C 1-②初级

1-③初级

随堂

测试 4

详细设计 运用数据链路层、网络层、传输层

的典型协议设计网络详细功能

1-③初级

7-②中级

课后

作业 4 4

5

链路层:

链路、接

入网和局

域网

5.1 掌握差

错检测和纠

正方法

链路层概述,奇偶校验,校验和方

法,循环冗余检验 1-③初级 2 2

5.2 掌握多

路访问协议

信道划分协议,随机接入协议,轮

流协议,DOCSIS:用于电缆因特网1-②中级 3 3

Page 377: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

接入的链路层协议

5.3 掌握以

太网技术、标

准及设备

MAC 地址,ARP 协议,以太网,

CSMA/CD 协议,交换机、网桥、集

线器工作原理,虚拟局域网

7-②中级 3 3

6

无线网络

6.1 了解无

线网络的组

网原理

无线网络概述,无线链路和网络特

征 1-②中级 掌握

讲授、

讨论 1 1

6.2 掌握

802.11协议

CSMA/CA 协议,802.11 体系结构,

802.11 MAC协议,IEEE 802.11帧 7-②初级 1 1

测试 D

1-②初级

1-③初级

7-②初级

随堂

测试 2

系统测试与

实施方案

评价实施方案,考虑创新性、社会、

经济等影响

1-③初级

7-②中级

课后

作业 2 2

合计 48 10 12 48 12

Page 378: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过计算机网络的基础知识讲

解、网络分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验

等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业 A 网络设计 第 4 周 10%

课后作业 B 网络仿真 第 8 周 10%

测验 A 计算机网络基础 第 2 周 2%

测验 B 路由算法计算 第 4 周 2%

测验 C 差错检测与纠错 第 6 周 3%

测验 D 综合测试 第 8 周 3%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 379: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 A 1-②高级能力、1-③初级能力、7-②中级能力 占总成绩 10%

课后作业 B 1-②高级能力、1-③初级能力、7-②中级能力 占总成绩 10%

测试 A 1-②初级能力、7-②初级能力 占总成绩 2%

测试 B 1-②初级能力、1-③7-①初级能力 占总成绩 2%

测试 C 1-②初级能力、1-③初级能力、7-②中级能力 占总成绩 3%

测试 D 1-②初级能力、1-③初级能力、7-②中级能力 占总成绩 3%

期末考试 1-②高级能力、1-③初级能力、7-②初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、

题数、分值比例

单项选择题:

10 个、20%

名词解释:

10个、20%

简答题:

6个、30%

综合应用题:

3 个、30%

计算题:

个 %

其 他:

个 %

试题难易程

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率

教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=

(100% )

备注

Page 380: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:孔祥杰

审核人签字:孔祥杰

专业负责人签字:夏锋

主管院长:江贺

制定日期:2016年 12月

Page 381: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题
Page 382: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090430100

2. 课程中文名称: 计算机网络

3. 课程英文名称: Computer Networking

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 2学期

8. 先修课程: 《操作系统》、《数据结构与算法》

9. 后继课程: 《网络信息安全》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 36 12 6 3 12

二、任课教师

夏锋(教授)、孔祥杰(副教授)、孙伟峰(副教授)、姚琳(副教授)

三、教材及主要参考资料

教 材: 《计算机网络:自顶向下方法》(第 4版英文影印版)(Computer

Networking: A Top-Down Approach),作者: Kurose and Ross

(外国),出版社:高等教育出版社,2009 年

参考资料: 《计算机网络教程:自顶向下方法(英文版)》,作者:Behrouz

A. Forouzan; Firouz Mosharraf,出版社:机械工业出版社,

2012年

《计算机网络》(第 5 版影印版)(Computer Networks),作者:

Andrew S. Tanenbaum; David J. Wetherall,出版社:机械工

业出版社,2011年

《计算机网络》(第 6 版),作者:谢希仁,出版社:电子工业

出版社,2013 年

四、课程简介

计算机网络在信息化社会中的重要性日益突出,是当今 IT 界公认的主流技术之一。

本课程是软件工程专业的一门基础必修课,其核心任务是介绍计算机网络的基础理论知

Page 383: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

识、组织结构及分层协议;以 Internet 为主要载体系统地、分层次地讲述计算机网络

的基本概念、基本原理和基本方法。使学生掌握计算机网络的体系结构及 TCP/IP 协议

栈中各层协议的工作原理和功能,了解网络的设计原理,提高英文水平,了解网络技术

的最新发展,为今后的专业学习和从事计算机网络设计、开发及研究打下必要的基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

3. 设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

③构建符合规格及限制的

单元及系统

(高级能力)掌握计算机网

络的体系结构及 Internet

各层主要协议的工作原理

和功能,能够设计针对需求

的企业级网络。

7. 环境和可持续发展:能

够理解和评价针对复杂工

程问题的工程实践对环境、

社会可持续发展的影响。

①识别及预测软件开发、实

施、维护中可能出现问题,

并采取恰当的应对措施

(初级能力)能够运用概率

与统计方法制定分析模型,

具有一定的网络分析能力

以及发现问题,改进系统的

能力。

7. 环境和可持续发展:能

够理解和评价针对复杂工

程问题的工程实践对环境、

社会可持续发展的影响。

③针对环境和可持续发展

的影响进行自我约束

(中级能力)掌握典型网络

设备的组成、工作原理与应

用,能够针对不同环境、不

同需求,选择恰当的系统架

构。

(二)教学目标

目标内容 具体目标

专业知识 了解计算机网络体系结构的分层思想

了解物理层的基本概念

了解数据传输过程中差错产生的原因

了解网络互联的基本概念

掌握端口的概念、流量控制和重传机制

了解 TCP/IP协议簇与应用层协议之间的关系

了解无线网络的组网原理

专业技能 掌握 Socket编程方法

掌握差错检测和纠正方法

掌握子网编址、构建超网的方法

掌握典型网络设备的使用方法

Page 384: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

掌握典型的路由算法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使得学生:对计算机网络

从整体上有一个较清晰的了解。掌握计算机网络的定义、分类与特点。掌握计算机网络

的体系结构及 Internet 各层主要协议的工作原理和功能。初步掌握典型网络设备的组成、

工作原理与应用。了解计算机网络的主流技术和设计原理。了解网络技术的最新发展。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 6 大部分:计算机网络及 Internet 总论,应用层,传输层,网络层,

数据链路层,以及无线局域网技术。

第一部分:计算机网络及 Internet 总论

学生需要了解计算机网络发展过程,理解计算机网络的定义,理解计算机网络体系

结构的分层思想,对计算机网络从整体上有一个较清晰的了解。

1.了解计算机网络基本概念

内容包括:具体构成描述,服务描述,什么是协议;接入网,物理媒体;分组交换,

电路交换,网络的网络

2.了解计算机网络的时延、丢包和吞吐量

内容包括:分组交换网络中的时延概述,排队时延和丢包,端到端时延,计算机网

络中的吞吐量

3.掌握计算机网络体系结构

内容包括:协议分层和服务模型,ISO/OSI 和 Internet 参考模型,计算机网络和因

特网的历史

第二部分:应用层

学生需要了解 TCP/IP 协议簇与应用层协议之间的关系,掌握应用层的典型协议,

学会套接字编程的方法

4.掌握应用层协议原理

内容包括:网络应用程序体系结构,进程通信,可供应用程序使用的运输服务,因

特网提供的运输服务,应用层协议

5.掌握典型的应用层协议

内容包括:Web和 Http,文件传输协议:FTP,因特网中电子邮件,DNS:因特网的

目录服务,P2P应用

6.掌握 TCP 套接字编程方法

内容包括:UDP套接字编程,TCP套接字编程

第三部分:运输层

了解运输层和应用层之间的关联,掌握应用层的典型协议,掌握拥塞控制的基本原

理,使学生知道可靠传输主要是靠运输层实现的。

Page 385: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

7.了解运输层和网络层的关系

内容包括:运输层服务概述,多路复用和多路分解

8.掌握 TCP 和 UDP 协议

内容包括:UDP 报文段结构,UDP校验和,TCP 连接,TCP 报文段结构,往返时间的

估计和超时,可靠数据传输,流量控制,TCP 连接管理

9.掌握拥塞控制原理

内容包括:拥塞原因与代价,拥塞控制方法,网络辅助的拥塞控制例子,TCP拥塞

控制

第四部分:网络层

网络层在 TCP/IP 体系结构中承上启下,通过本部分学习,学生能够理解网络互联

的基本概念、路由器的组成结构;掌握 IP 地址编制机制、地址解析的基本概念与方法;

掌握 IP 数据报的格式、IP层转发分组的流程; 掌握子网编址、构建超网的基本方法;

熟练掌握路由选择协议 RIP 和 OSPF。

10.了解网络互联的基本概念

内容包括:转发和路由选择,网络服务模型,虚电路网络,数据报网络,虚电路和

数据报网络的由来

11.掌握路由器工作原理

内容包括:输入端口,交换结构,输出端口,何处出现排队,路由选择控制平面

12.掌握 IP 协议

内容包括:IP数据报格式,IPv4编制,因特网控制报文协议,IPv6,涉足 IP安全

13.掌握典型的路由选择算法

内容包括:链路状态路由选择算法,距离向量路由选择算法,层次路由选择,因特

网中自制系统内部的路由选择:RIP 和 OSPF,自制系统间的路由选择:BGP,广播和多

播路由选择

第五部分:链路层:链路、接入网和局域网

介绍数据传输过程中差错产生的原因和出错的几种情况,使学生理解链路、数据链

路、滑动窗口的概念,理解帧定界、透明传输、差错检测的方法。

14.掌握差错检测和纠正方法

内容包括:链路层概述,奇偶校验,校验和方法,循环冗余检验

15. 掌握多路访问协议

内容包括,信道划分协议,随机接入协议,轮流协议,DOCSIS:用于电缆因特网接

入的链路层协议

16. 掌握以太网技术、标准及设备

内容包括,MAC 地址,ARP 协议,以太网,CSMA/CD 协议,交换机、网桥、集线器工

作原理,虚拟局域网

第六部分:无线网络

介绍无线局域网技术,使学生了解无线网络的组网原理,理解无线网络的协议。

17. 了解无线网络的组网原理

Page 386: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

内容包括,无线网络概述,无线链路和网络特征

18. 掌握 802.11协议

内容包括,CSMA/CA 协议,802.11体系结构,802.11 MAC协议,IEEE 802.11 帧

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具体的行业背

景的网络特点,进

行组网需求分析

提出组网需求方案,

同时考虑效率、安

全、经济等因素

4 4 课后作业

2 运用数据链路层、

网络层、传输层的

典型协议设计网络

架构

掌握网络设计与分

析全过程中的模拟

仿真工具,

8 8 课后作业

3 完成网络 Socket

编程,实现系统详

细功能

实现系统需求、设计

具有创新性、考虑社

会、经济等因素

Page 387: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 2

面向具体的行业背

景的网络特点,进

行组网需求分析

完成系统

分析报告 实践教学 2 课程作业

课堂、

课下

综合型试

2 框架设计 单元项目 4

运用数据链路层、

网络层、传输层的

典型协议设计网络

架构

完成系统

框架设计

报告

实践教学 2 课程作业 课堂、

课下

综合型试

3 详细设计 单元项目 6

运用数据链路层、

网络层、传输层的

典型协议设计网络

详细功能

完成系统

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 8

评价实施方案,考

虑创新性、社会、

经济等影响

完成系统

测试与实

施报告

实践教学 4 课程作业 课堂、

课下

综合型试

Page 388: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

Int

ern

et

1.1 了解计算

机网络基本概

具体构成描述,服务描述,什么是

协议;接入网,物理媒体;分组交

换,电路交换,网络的网络

3-③初级 了解 讲授、

讨论 2 2

1.2 了解计算

机网络的时

延、丢包和吞

吐量

分组交换网络中的时延概述,排队

时延和丢包,端到端时延,计算机

网络中的吞吐量

3-③初级 了解 讲授、

讨论 2 2

1.3 掌握计算

机网络体系结

协议分层和服务模型, ISO/OSI 和

Internet 参考模型,计算机网络和因

特网的历史

3-③初级 了解 讲授、

讨论 2 2

2

2.1 掌握应用

层协议原理

网络应用程序体系结构,进程通信,

可供应用程序使用的运输服务,因

特网提供的运输服务,应用层协议

3-③中级 掌握 讲授、

讨论 2 2

Page 389: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2.2 掌握典型

的应用层协议

Web和 Http,文件传输协议:FTP,

因特网中电子邮件,DNS:因特网的

目录服务,P2P应用

3-③中级 掌握 讲授、

讨论 3 3

2.3 掌握 TCP

套接字编程方

UDP套接字编程,TCP 套接字编程 7-③中级 掌握 讲授、

讨论 3 3

测试 A 3-③初级、

7-③初级

随堂

测试 2

需求分析 面向具体的行业背景的网络特点,

进行组网需求分析

3-③高级

7-③中级

掌握/

运用/

分析

讨论 课后

作业 2 2

3

运输

3.1 了解运输

层和网络层的

关系

运输层服务概述,多路复用和多路

分解 3-③高级

掌握/

运用/

分析

讲授、

讨论 4 4

3.2 掌握 TCP

和 UDP协议

UDP 报文段结构,UDP 校验和,TCP

连接,TCP报文段结构,往返时间的

估计和超时,可靠数据传输,流量

控制,TCP连接管理

7-③中级

掌握/

运用/

分析

讲授、

讨论 4 4

3.3 掌握拥塞

控制原理

拥塞原因与代价,拥塞控制方法,

网络辅助的拥塞控制例子,TCP拥塞

控制

7-①初级 了解 讲授、

讨论 4 4

测试 B 3-③初级 随堂 2

Page 390: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

7-①初级 测试

框架设计 运用数据链路层、网络层、传输层

的典型协议设计网络架构

3-③高级

7-①初级

课后

作业 4 4

4

网络

4.1 了解网络

互联的基本概

转发和路由选择,网络服务模型,

虚电路网络,数据报网络,虚电路

和数据报网络的由来

3-③中级 掌握 讲授、

讨论 3 3

4.2 掌握路由

器工作原理

输入端口,交换结构,输出端口,

何处出现排队,路由选择控制平面 3-③中级 掌握

讲授、

讨论 3 3

4.3 掌握 IP

协议

IP数据报格式,IPv4编制,因特网

控制报文协议,IPv6,涉足 IP安全

7-①初级

掌握/

运用/

分析

讲授、

讨论 3 3

4.4 掌握典型

的路由选择算

链路状态路由选择算法,距离向量

路由选择算法,层次路由选择,因

特网中自制系统内部的路由选择:

RIP 和 OSPF,自制系统间的路由选

择:BGP,广播和多播路由选择

7-①初级 了解 讲授、

讨论 3 3

测试 C 3-③初级

7-①初级

随堂

测试 4

详细设计 运用数据链路层、网络层、传输层

的典型协议设计网络详细功能

7-①初级

7-③中级

课后

作业 4 4

5

链路

层:

路、

接入

5.1 掌握差错

检测和纠正方

链路层概述,奇偶校验,校验和方

法,循环冗余检验 7-①初级 2 2

5.2 掌握多路

访问协议

信道划分协议,随机接入协议,轮

流协议,DOCSIS:用于电缆因特网

接入的链路层协议

3-③中级 3 3

Page 391: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

网和

局域

5.3 掌握以太

网技术、标准

及设备

MAC地址,ARP协议,以太网,CSMA/CD

协议,交换机、网桥、集线器工作

原理,虚拟局域网

7-③中级 3 3

6

无线

网络

6.1 了解无线

网络的组网原

无线网络概述,无线链路和网络特

征 3-③中级 掌握

讲授、

讨论 1 1

6.2 掌握

802.11协议

CSMA/CA 协议,802.11 体系结构,

802.11 MAC协议,IEEE 802.11帧 7-①初级 1 1

测试 D

3-③初级

7-①初级

7-③初级

随堂

测试 2

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

经济等影响

7-①初级

7-③中级

课后

作业 2 2

合计 48 10 12 48 12

Page 392: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过计算机网络的基础知识讲

解、网络分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验

等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业 A 网络设计 第 4 周 10%

课后作业 B 网络仿真 第 8 周 10%

测验 A 计算机网络基础 第 2 周 2%

测验 B 路由算法计算 第 4 周 2%

测验 C 差错检测与纠错 第 6 周 3%

测验 D 综合测试 第 8 周 3%

终结性考核 期末考试 全部知识单元教学内容 考试周 70 %

Page 393: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 A 3-③高级能力、7-①初级能力、7-③中级能力 占总成绩 10%

课后作业 B 3-③高级能力、7-①初级能力、7-③中级能力 占总成绩 10%

测试 A 3-③初级能力、7-③初级能力 占总成绩 2%

测试 B 3-③初级能力、7-①初级能力 占总成绩 2%

测试 C 3-③初级能力、7-①初级能力、7-③中级能力 占总成绩 3%

测试 D 3-③初级能力、7-①初级能力、7-③中级能力 占总成绩 3%

期末考试 3-③高级能力、7-①初级能力、7-③初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

名词解释:

10个、20%

简答题:

6个、30%

综合应用题:

3 个、30%

计算题:

个 %

其 他:

个 %

试题难易程度

基本题: 60% 灵活题:20% 综合题:20%

其他:%

教学大纲

覆盖率

教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=

(100% )

备注

Page 394: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:孔祥杰

审核人签字:孔祥杰

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 7月

Page 395: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题
Page 396: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

《计算机组织与结构》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090440030

2. 课程中文名称: 计算机组织与结构

3. 课程英文名称: Computer Organization and Structure

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业(大类)

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《模拟与数字电路》、《程序设计基础与 C 程序设计》

9. 后继课程: 《操作系统》、《微型计算机接口技术》、《嵌入式系

统结构》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 56 0 4 3.5 0

二、任课教师

周宽久(教授)、赖晓晨(副教授)、王洁(副教授)

三、教材及主要参考资料

教 材: 《计算机组成原理》(第 2版). 唐朔飞 编著. 高等教育出版

社. 2008.

参考资料: 《计算机组成原理》(第 5版). 白中英,戴志涛等编著。 科

学出版社, 2013.

四、课程简介

计算机组成与结构是软件工程专业的一门公共基础课,是一门理论性、技术性很强

的课程。本课程的主要任务是全面介绍计算机的组成原理、系统结构以及现代计算机体

系结构的先进技术。通过本课程的学习,使学生掌握计算机硬件的具体实现方法和计算

Page 397: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

机硬件的基本特性。为后续计算机专业课的学习以及未来从事计算机硬件和软件系统的

研究与开发,打下一个良好的基础。

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标)

1 级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专业

知识用于解决软件工程及应

用领域的复杂工程问题。

② 掌握软件工程基础及

专业知识。

重点掌握运算器、控制器、

存储器、输入输出系统的组

织结构及工作原理。

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专业

知识用于解决软件工程及应

用领域的复杂工程问题。

③ 掌握计算机系统及

网络系统构成,并能够综

合运用上述专业知识解

决软件工程及应用领域

的复杂工程问题。

掌握计算机系统各部件的

设计方法,能够设计简单的

存储器、加法器、指令系统

和 I/O 系统,运用组合逻辑

和微程序设计方法实现控

制器设计。

2.问题分析:能够应用高等

数理基础、工程技术基础、

社会科学基础和软件工程专

业知识,识别、表达、并通

过文献研究分析软件工程及

应用领域的复杂工程问题,

以获得有效结论。

② 基于计算机系统和

网络系统组织与结构,设

计软件工程模型。

了解计算机硬件模块建模

和仿真方法,运用程序设计

方法进行计算机模块的简

单仿真操作。

(二)教学目标

目标内容 具体目标

专业知识

了解计算机系统的基本结构

掌握总线的工作原理

重点掌握存储器组织结构和工作原理

重点掌握输入输出系统的组织结构和工作原理

重点掌握计算方法的工作原理

重点掌握指令系统的工作原理

掌握控制器的组织结构和工作原理

专业技能

掌握总线的仲裁方式,能进行仿真设计

重点掌握存储器扩展及 cache 结构设计技能

掌握构建具体处理器中断系统的技能

Page 398: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

重点掌握计算机各种机器数的四则运算技能和仿真技能

掌握指令寻址的设计技能

掌握简单微程序和硬布线控制器的实现技能

(三)教学任务

本课程将理论讲授与课内练习、课后作业环节相结合,使学生更深入地理解和掌握

计算机内部各部分的组织与结构,熟练应用仿真工具进行部分模块仿真,并能针对具体

计算机系统进行分析与设计,为在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 7大部分:计算机系统概述,系统总线,存储器,输入输出系统,计算

方法,指令系统,控制器。

第一部分:计算机系统概述

学生要了解的基础知识:了解计算机系统的基本构成、计算机系统的层次结构,以

及计算机的发展历史和发展趋势。

1. 了解计算机系统的基本构成

内容包括:冯诺依曼计算机体系结构、冯诺依曼计算机的典型特征、计算机语言的

分类及特性。

2、了解计算机系统的组成结构

内容包括:了解实际机器、汇编语言虚拟机、操作系统虚拟机、高级语言虚拟机和

微程序虚拟机的基本概念及作用。

3、了解计算机的发展历史和发展趋势

内容包括:了解计算机发展历史各阶段,包括电子管计算机、晶体管计算机、集成

电路计算机、大规模集成电路计算机;了解计算机发展的趋势,包括微型化、巨型化、

智能化、网络化等。

第二部分:系统总线

掌握总线的工作原理,包括总线分类与特性、总线仲裁方式、总线通信方式、总线

标准等。

4.掌握总线的分类与特性

内容包括:掌握总线的概念、总线的作用、总线的分类,重点掌握计算机三总线结

构,及数据总线、地址总线、控制总线的作用,掌握地址总线位数与存储空间的关系;

掌握总线的机械特性、电气特性、功能特性和时间特性。

5. 掌握总线仲裁方式

内容包括:了解总线仲裁方式分类,重点掌握总线的链式、计数器式、独立式仲裁

方式。

6. 掌握总线通信方式

Page 399: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

内容包括:了解同步通信、异步通信、半同步通信、分离式通信的各个原理及特点。

7. 掌握总线标准

内容包括:掌握总线标准的内涵,了解各种类型总线标准。

第三部分:存储器

重点掌握计算机存储器的分类、层次结构、工作原理、存储器扩展方式、各种数据

校验方法,会进行存储器扩展、cache 结构设计。

8.掌握主存的基本概念

内容包括:重点掌握存储器的分类及存储层次,了解主存储器的结构和地址译码方

式,会用程序判断存储器的字节序类型。

9.掌握随机存储器工作原理

内容包括:了解静态随机存储器和动态随机存储器的工作原理,存储芯片的地址选

择方式,以及动态存储器的刷新原理,会计算刷新周期。

10.重点掌握存储器扩展方式

内容包括:了解存储器的字扩展、位扩展、字位扩展,以及和 CPU 的连接方式,掌

握芯片地址范围确定方法,会设计包含存储器的最小计算机系统。了解提高访存速度的

措施。

11.重点掌握高速缓冲存储器的工作原理

内容包括:掌握 cache 的三种映射方式,掌握每种映射方式的主存地址结构,了解

替换算法和 cache 一致性问题。

12.重点掌握数据校验码的计算方法

内容包括:掌握奇偶校验、循环冗余校验、海明码的基本原理,掌握以上三种校验

码的生成过程,以及校验过程。

第四部分:输入输出系统

了解输入输出系统的基本概念,了解计算机系统的典型外设,掌握主机与外设通信

的 5种方式,重点掌握查询、中断和 DMA 工作方式。重点掌握中断的工作原理、中断流

程、中断服务程序,能够构建简单的中断系统。

13. 了解输入输出系统

内容包括:了解输入输出系统的基本概念,历史发展阶段。

14. 了解典型外设

内容包括:掌握计算机输入输出系统典型外设的工作原理,包括键盘、各种类型显

示器、打印机、磁盘等,会进行磁盘容量计算。

15. 掌握主机与外设通信的 5种方式

内容包括:掌握查询、中断、DMA、通道、外围处理器等 5 种方式的工作原理、工

作特点。

16. 重点掌握中断的工作原理

内容包括:了解中断概念,掌握中断的各种接口设备,包括中断标记、中断屏蔽、

中断判优、中断响应流程、中断服务程序。

17.掌握 DMA 的工作原理

内容包括:了解 DMA的工作原理和工作步骤。

Page 400: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

第五部分:计算方法

掌握计算机中数的表示、有符号数和无符号数、机器数、定点数与浮点数、定点数

运算方法、浮点数运算方法等基础内容,以及加法器和算术逻辑单元的实现原理。

18.掌握有符号数和无符号数的概念

内容包括:有符号数的表示方法,无符号数的表示方法,机器数和真值的概念

19.重点掌握机器数的原理及计算方法

内容包括:了解 4种机器数的表示方法,包括原码、反码、补码、移码。

20.掌握定点数和浮点数的概念

内容包括:了解定点数的表示方法、浮点数的表示方法,IEEE754标准。

21.重点掌握定点数运算方法

内容包括:定点数的移位运算、定点数的加减法运算、定点数的乘法运算、定点数

的除法运算。

22.掌握浮点数运算

内容包括:浮点数的加减法运算和浮点数乘除法运算。

23.掌握算术逻辑单元的工作原理

内容包括:半加器、全加器、超前进位加法器、算术逻辑单元

第六部分:指令系统

介绍指令系统的基本概念、指令的结构、指令的操作类型和操作数类型,重点掌握

指令的 10种数据寻址方式,了解 RISC 处理器的特点。

24.掌握指令系统的基本概念

内容包括:指令系统概念、指令字概念、指令的结构、指令的地址类型等。

25.掌握指令的操作类型和操作数类型

内容包括:掌握指令的几种操作类型,包括数据移动类、运算类、跳转类等。

26.重点掌握指令的寻址方式

内容包括:掌握指令寻址和数据寻址的概念,重点掌握指令的 10 种数据寻址方式。

27. 掌握 RISC 处理器

内容包括:掌握 RISC控制器与 CISC 控制器各自的特点

第七部分:控制器

介绍控制器的内部组成和工作原理,多级时序系统、控制单元与控制信号、流水线、

微指令控制器的实现流程、硬布线控制器的实现流程

28.掌握控制器的组成及工作原理

内容包括:控制器的组成、寄存器分类及可见性

29.掌握多级时序系统

内容包括:时钟周期、机器周期、指令周期的概念,多级时序系统与指令执行的关

系。

30.掌握控制单元与控制信号

内容包括:控制器的基本工作原理、控制信号的作用、控制通路、典型指令执行过

程中的控制信号

31. 掌握流水线的工作原理

Page 401: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

内容包括:流水线的工作原理、流水线的相关问题、流水线相关问题的解决方法、

流水线的时空图、流水线的性能计算、流水线的多发生机制。

32. 掌握微程序控制器

内容包括:了解微程序控制器的工作原理,掌握微指令的概念、掌握微指令的译码

方式、下址形成方式、以及微程序控制器的设计原理

33. 掌握硬布线控制器

内容包括:了解硬布线控制器的工作原理,掌握硬布线控制器的设计步骤。

(二)课外学习内容及要求

无。

七、实践项目实施计划表

无。

Page 402: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标

教学

实施

考核

方式

各教学环节学时分配

理论教学 实践教学 课

讲课 习

1

1.1 计 算 机

系统的基本

构成

冯诺依曼计算机体系结构、冯诺依曼

计算机的典型特征、计算机语言的分

类及特性。

1-② 了

讲授、

讨论 1 1

1.2 计 算 机

系统的组成

结构

了解实际机器、汇编语言虚拟机、操

作系统虚拟机、高级语言虚拟机和微

程序虚拟机的基本概念及作用。

1-② 了

讲授、

讨论 0.5 0.5

1.3 计算机的

发展历史和

发展趋势

了解计算机发展历史各阶段,包括电

子管计算机、晶体管计算机、集成电

路计算机、大规模集成电路计算机;

了解计算机发展的趋势,包括微型

化、巨型化、智能化、网络化等。

1-② 了

讲授、

讨论 0.5 0.5

2

线

2.1 总 线 的

分类与特性

掌握总线的概念、总线的作用、总线

的分类,重点掌握计算机三总线结

构,及数据总线、地址总线、控制总

线的作用,掌握地址总线位数与存储

空间的关系;掌握总线的机械特性、

电气特性、功能特性和时间特性。

1-② 了

讲授、

讨论 1 1

Page 403: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2.2 总 线 仲

裁方式

了解总线仲裁方式分类,重点掌握总

线的链式、计数器式、独立式仲裁方

式。

1-②

1-③

重点

掌握

讲授、

讨论 0.5 0.5

2.3 总 线 通

信方式

了解同步通信、异步通信、半同步通

信、分离式通信的各个原理及特点。

1-②

1-③

重点

掌握

讲授、

讨论 1 1

2.4 总 线 标

掌握总线标准的内涵,了解各种类型

总线标准。 1-② 掌握

讲授、

讨论 0.5 0.5

作业 1 总线性能计算 1-②

2-② 掌握

课后

作业

3

3.1 主 存 的

基本概念

重点掌握存储器的分类及存储层次,

了解主存储器的结构和地址译码方

式,会用程序判断存储器的字节序类

型。

1-② 了解 讲授、

讨论 1 1

3.2 随 机 存

储器工作原

了解静态随机存储器和动态随机存

储器的工作原理,存储芯片的地址选

择方式,以及动态存储器的刷新原

理,会计算刷新周期。

1-② 掌握 讲授、

讨论 3 3

3.3 存 储 器

扩展方式

了解存储器的字扩展、位扩展、字位

扩展,以及和 CPU的连接方式,掌握

芯片地址范围确定方法,会设计包含

存储器的最小计算机系统,了解提高

访存速度的措施。

1-②

1-③

重点

掌握

讲授、

讨论 2 2

3.4 高 速 缓

冲存储器的

工作原理

掌握 cache 的三种映射方式,掌握每

种映射方式的主存地址结构,了解替

换算法和 cache一致性问题。

1-②

1-③

重点

掌握

讲授、

讨论 3 3

Page 404: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

3.5 数 据 校

验码的计算

方法

掌握奇偶校验、循环冗余校验、海明

码的基本原理,掌握以上三种校验码

的生成过程,以及校验过程。

1-②

2-②

重点

掌握

讲授、

讨论 3 3

作业 2 Cache映射方式设计

1-②

1-③

2-②

掌握 课后

作业

测试 A 存储器扩展 1-②

1-③ 掌握

随堂

测试 2 2

4

4.1 输 入 输

出系统

了解输入输出系统的基本概念,历史

发展阶段。 1-② 了解

讲授、

讨论 1 1

4.2 典 型 外

掌握计算机输入输出系统典型外设

的工作原理,包括键盘、各种类型显

示器、打印机、磁盘等,会进行磁盘

容量计算。

1-② 了解 讲授、

讨论 1 1

4.3 主 机 与

外设通信的 5

种方式

掌握查询、中断、DMA、通道、外围

处理器等 5种方式的工作原理、工作

特点。

1-② 掌握 讲授、

讨论 1 1

4.4 中 断 的

工作原理

了解中断概念,掌握中断的各种接口

设备,包括中断标记、中断屏蔽、中

断判优、中断响应流程、中断服务程

序。

1-② 重点

掌握

讲授、

讨论 2 2

4.5 DMA 的工

作原理 了解 DMA的工作原理和工作步骤。 1-② 掌握

讲授、

讨论 1 1

作业 3 中断计算 1-② 掌握 课后

作业

Page 405: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

5

5.1 有 符 号

数和无符号

数的概念

有符号数的表示方法,无符号数的表

示方法,机器数和真值的概念 1-② 了解

讲授、

讨论 1 1

5.2 机 器 数

的原理及计

算方法

了解 4种机器数的表示方法,包括原

码、反码、补码、移码。 1-②

重点

掌握

讲授、

讨论 2 2

5.3 定 点 数

和浮点数的

概念

了解定点数的表示方法、浮点数的表

示方法,IEEE754 标准。 1-② 掌握

讲授、

讨论 1 1

5.4 定 点 数

运算方法

定点数的移位运算、定点数的加减法

运算、定点数的乘法运算、定点数的

除法运算。

1-② 重点

掌握

讲授、

讨论 5 5

5.5 浮 点 数

运算

浮点数的加减法运算和浮点数乘除

法运算。 1-② 掌握

讲授、

讨论 1 1

5.6 算 术 逻

辑单元的工

作原理

半加器、全加器、超前进位加法器、

算术逻辑单元 1-② 掌握

讲授、

讨论 2 2

作业 4 浮点数加法

1-②

1-③

2-②

掌握 课后

作业

测试 B 定点数乘法 1-②

1-③ 掌握

随堂

测试 2 2

6

6.1 指 令 系

统的基本概

指令系统概念、指令字概念、指令的

结构、指令的地址类型等。 1-② 了解

讲授、

讨论 1 1

Page 406: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

6.2 指 令 的

操作类型和

操作数类型

掌握指令的几种操作类型,包括数据

移动类、运算类、跳转类等。 1-② 掌握

讲授、

讨论 2 2

6.3 指 令 的

寻址方式

掌握指令寻址和数据寻址的概念,重

点掌握指令的 10种数据寻址方式。 1-②

重点

掌握

讲授、

讨论 3 3

6.4 RISC 处

理器

掌握RISC控制器与CISC控制器各自

的特点 1-② 了解

讲授、

讨论 1 1

作业 5 寻址方式计算 1-② 掌握 课后

作业

7

7.1 控 制 器

的组成及工

作原理

控制器的组成、寄存器分类及可见性 1-② 掌握 讲授、

讨论 1 1

7.2 多 级 时

序系统

时钟周期、机器周期、指令周期的概

念,多级时序系统与指令执行关系。 1-② 掌握

讲授、

讨论 1 1

7.3 控 制 单

元与控制信

控制器的基本工作原理、控制信号的

作用、控制通路、典型指令执行过程

中的控制信号

1-② 重点

掌握

讲授、

讨论 4 4

7.4 流 水 线

的工作原理

流水线的工作原理、流水线的相关问

题、流水线相关问题的解决方法、流

水线的时空图、流水线的性能计算、

流水线的多发生机制。

1-② 重点

掌握

讲授、

讨论 2 2

7.5 微 程 序

控制器

了解微程序控制器的工作原理,掌握

微指令的概念、掌握微指令的译码方

式、下址形成方式、以及微程序控制

器的设计原理

1-② 掌握 讲授、

讨论 1 1

Page 407: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

7.6 硬 布 线

控制器

了解硬布线控制器的工作原理,掌握

硬布线控制器的设计步骤 1-② 掌握

讲授、

讨论 1 1

作业 6 中断嵌套问答 1-② 掌握 课后

作业

合计 52 4 56

Page 408: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

6. 结合《计算机组织与结构实验课程》,统一协调安排教学内容、教学进度。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段。

2.一次课上测验时间为 2 学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

课后作业 1 总线 作业批阅 第 2周 5%

课后作业 2 存储器 作业批阅 第 4-6周 5%

测验 A 存储器 作业批阅 第 6周 5%

课后作业 3 输入输出系统 作业批阅 第 7周 5%

课后作业 4 计算方法 作业批阅 第 8-10周 5%

测验 B 计算方法 作业批阅 第 8-10周 5%

课后作业 5 指令系统 作业批阅 第 11-12周 5%

课后作业 6 控制器 作业批阅 第 13-14周 5%

终结性考核 期末考试 全部知识单元教学内容 闭卷考试 考试周 60 %

Page 409: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1 1-②;2-② 占总成绩 5%

课后作业 2 1-②;1-③;2-② 占总成绩 5%

测验 A 1-②;1-③ 占总成绩 5%

课后作业 3 1-②; 占总成绩 5%

课后作业 4 1-②;1-③;2-② 占总成绩 5%

测验 B 1-②;1-③ 占总成绩 5%

课后作业 5 1-②; 占总成绩 5%

课后作业 6 1-②; 占总成绩 5%

期末考试 1-②;1-③;2-② 占总成绩 60 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

填空题:

10个、20%

问答题:

4个、20%

计算题:

4 个、20%

设计题:

1个、10%

其 他:

0 个、 0 %

试题难易程度 基本题: 50% 灵活题: 40% 综合题: 10%

其 他: 0 %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 100 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 课程参与积极活跃,课堂表现认真,作业完成情况优秀,期末总成

绩在 90分以上。

良好(89-80) 课程参与较活跃,课堂表现较认真,能按时完成作业,完成情况良

好,期末总成绩在 80分以上。

Page 410: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

中等(79-70) 课程参与情况与课堂表现达到平均水平,能按时完成作业,期末总

成绩在 70分以上。

合格(69-60) 课程参与情况较差,作业完成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业不能按时完成,期末总成

绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一) 三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程

评估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,

提出存在问题和改进建议。

(二) 过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听

课制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授

课效果及教材等资源的使用情况,并进行反馈。

(三) 总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对

学生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四) 持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总

各方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源

建设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.5

制定人签字:赖晓晨、王洁

审核人签字:周宽久

专业负责人签字:周宽久

主管院长:江贺

制定日期:2017年 2月

Page 411: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090430070

2. 课程中文名称: 计算机组织与结构

3. 课程英文名称: Computer Organization and Structure

4. 课程性质: 大类平台课程

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《模拟与数字电路》

9. 后继课程: 《嵌入式系统原理与设计》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 56 10 4 3.5 10

二、任课教师

周宽久(教授)、赖晓晨(副教授)、王洁(副教授)

三、教材及主要参考资料

教 材: 《计算机组成原理》(第 2 版). 唐朔飞 编著. 高等教育出版

社. 2008.

参考资料: 《计算机组成原理》(第 5 版). 白中英,戴志涛等编著。 科

学出版社, 2013.

四、课程简介

计算机组成与结构是软件工程专业的一门公共基础课,是一门理论性、技术性很强的主

干课程。本课程的主要任务是全面介绍计算机的组成原理、系统结构以及现代计算机体系结

构的先进技术。通过本课程的学习,使学生掌握计算机硬件的具体实现方法和计算机硬件的

基本特性。为后续计算机专业课的学习以及未来从事计算机硬件和软件系统的研究与开发,

打下一个良好的基础。

五、课程目标

Page 412: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

②掌握软件工程基础及

专业知识

(高级能力)重点掌握运算

器、控制器、存储器、输入

输出系统的组织结构及工

作原理。

4.研究:能够基于科学原理

并采用科学方法对复杂工

程问题进行研究,包括设计

实验、分析与解释数据、并

通过信息综合得到合理有

效的结论。

①设计实验项目的能力,

包括资料收集、参数值范

围设定、及统计分析方法

的运用能力

(中级能力)掌握计算机系

统各部件的设计方法,能够

设计简单的存储器、加法

器、指令系统和 I/O 系统。

5.使用现代工具:能够针对

复杂工程问题,开发、选择

与使用恰当的技术、资源、

现代工程工具和信息技术

工具,包括对复杂工程问题

的预测与模拟,并能够理解

其局限性。

②掌握开发、选择与使用

现代工具

(初级能力)了解计算机硬

件模块的仿真工具软件,能

进行计算机模块的简单仿

真操作。

(二)教学目标

目标内容 具体目标

专业知识

了解计算机系统的基本结构

掌握总线的工作原理

重点掌握存储器组织结构和工作原理

重点掌握输入输出系统的组织结构和工作原理

重点掌握计算方法的工作原理

重点掌握指令系统的工作原理

掌握控制器的组织结构和工作原理

专业技能 掌握总线的仲裁方式,能进行仿真设计

重点掌握存储器扩展及 cache结构设计技能

掌握构建具体处理器中断系统的技能

重点掌握计算机各种机器数的四则运算技能和仿真技能

掌握指令寻址的设计技能

掌握简单微程序和硬布线控制器的实现技能

(三)教学任务

Page 413: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

本课程将理论讲授与课内练习、课后作业环节相结合,使学生更深入地理解和掌握

计算机内部各部分的组织与结构,熟练应用仿真工具进行部分模块仿真,并能针对具体

计算机系统进行分析与设计,为在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 7大部分:计算机系统概述,系统总线,存储器,输入输出系统,计算

方法,指令系统,控制器。

第一部分:计算机系统概述

学生要了解的基础知识:了解计算机系统的基本构成、计算机系统的层次结构,以

及计算机的发展历史和发展趋势。

1. 了解计算机系统的基本构成

内容包括:冯诺依曼计算机体系结构、冯诺依曼计算机的典型特征、计算机语言的

分类及特性。

2、了解计算机系统的组成结构

内容包括:了解实际机器、汇编语言虚拟机、操作系统虚拟机、高级语言虚拟机和

微程序虚拟机的基本概念及作用。

3、了解计算机的发展历史和发展趋势

内容包括:了解计算机发展历史各阶段,包括电子管计算机、晶体管计算机、集成

电路计算机、大规模集成电路计算机;了解计算机发展的趋势,包括微型化、巨型化、

智能化、网络化等。

第二部分:系统总线

掌握总线的工作原理,包括总线分类与特性、总线仲裁方式、总线通信方式、总线

标准等。

4.掌握总线的分类与特性

内容包括:掌握总线的概念、总线的作用、总线的分类,重点掌握计算机三总线结

构,及数据总线、地址总线、控制总线的作用,掌握地址总线位数与存储空间的关系;

掌握总线的机械特性、电气特性、功能特性和时间特性。

5. 掌握总线仲裁方式

内容包括:了解总线仲裁方式分类,重点掌握总线的链式、计数器式、独立式仲裁

方式。

6. 掌握总线通信方式

内容包括:了解同步通信、异步通信、半同步通信、分离式通信的各个原理及特点。

7. 掌握总线标准

内容包括:掌握总线标准的内涵,了解各种类型总线标准。

第三部分:存储器

重点掌握计算机存储器的分类、层次结构、工作原理、存储器扩展方式、各种数据

Page 414: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

校验方法,会进行存储器扩展、cache 结构设计。

8.掌握主存的基本概念

内容包括:重点掌握存储器的分类及存储层次,了解主存储器的结构和地址译码方

式,会用程序判断存储器的字节序类型。

9.掌握随机存储器工作原理

内容包括:了解静态随机存储器和动态随机存储器的工作原理,存储芯片的地址选

择方式,以及动态存储器的刷新原理,会计算刷新周期。

10.重点掌握存储器扩展方式

内容包括:了解存储器的字扩展、位扩展、字位扩展,以及和 CPU 的连接方式,掌

握芯片地址范围确定方法,会设计包含存储器的最小计算机系统。了解提高访存速度的

措施。

11.重点掌握高速缓冲存储器的工作原理

内容包括:掌握 cache 的三种映射方式,掌握每种映射方式的主存地址结构,了解

替换算法和 cache 一致性问题。

12.重点掌握数据校验码的计算方法

内容包括:掌握奇偶校验、循环冗余校验、海明码的基本原理,掌握以上三种校验

码的生成过程,以及校验过程。

第四部分:输入输出系统

了解输入输出系统的基本概念,了解计算机系统的典型外设,掌握主机与外设通信

的 5种方式,重点掌握查询、中断和 DMA 工作方式。重点掌握中断的工作原理、中断流

程、中断服务程序,能够构建简单的中断系统。

13. 了解输入输出系统

内容包括:了解输入输出系统的基本概念,历史发展阶段。

14. 了解典型外设

内容包括:掌握计算机输入输出系统典型外设的工作原理,包括键盘、各种类型显

示器、打印机、磁盘等,会进行磁盘容量计算。

15. 掌握主机与外设通信的 5种方式

内容包括:掌握查询、中断、DMA、通道、外围处理器等 5 种方式的工作原理、工

作特点。

16. 重点掌握中断的工作原理

内容包括:了解中断概念,掌握中断的各种接口设备,包括中断标记、中断屏蔽、

中断判优、中断响应流程、中断服务程序。

17.掌握 DMA 的工作原理

内容包括:了解 DMA的工作原理和工作步骤。

第五部分:计算方法

掌握计算机中数的表示、有符号数和无符号数、机器数、定点数与浮点数、定点数

运算方法、浮点数运算方法等基础内容,以及加法器和算术逻辑单元的实现原理。

18.掌握有符号数和无符号数的概念

内容包括:有符号数的表示方法,无符号数的表示方法,机器数和真值的概念

Page 415: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

19.重点掌握机器数的原理及计算方法

内容包括:了解 4种机器数的表示方法,包括原码、反码、补码、移码。

20.掌握定点数和浮点数的概念

内容包括:了解定点数的表示方法、浮点数的表示方法,IEEE754标准。

21.重点掌握定点数运算方法

内容包括:定点数的移位运算、定点数的加减法运算、定点数的乘法运算、定点数

的除法运算。

22.掌握浮点数运算

内容包括:浮点数的加减法运算和浮点数乘除法运算。

23.掌握算术逻辑单元的工作原理

内容包括:半加器、全加器、超前进位加法器、算术逻辑单元

第六部分:指令系统

介绍指令系统的基本概念、指令的结构、指令的操作类型和操作数类型,重点掌握

指令的 10种数据寻址方式,了解 RISC 处理器的特点。

24.掌握指令系统的基本概念

内容包括:指令系统概念、指令字概念、指令的结构、指令的地址类型等。

25.掌握指令的操作类型和操作数类型

内容包括:掌握指令的几种操作类型,包括数据移动类、运算类、跳转类等。

26.重点掌握指令的寻址方式

内容包括:掌握指令寻址和数据寻址的概念,重点掌握指令的 10 种数据寻址方式。

27. 掌握 RISC 处理器

内容包括:掌握 RISC控制器与 CISC 控制器各自的特点

第七部分:控制器

介绍控制器的内部组成和工作原理,多级时序系统、控制单元与控制信号、流水线、

微指令控制器的实现流程、硬布线控制器的实现流程

28.掌握控制器的组成及工作原理

内容包括:控制器的组成、寄存器分类及可见性

29.掌握多级时序系统

内容包括:时钟周期、机器周期、指令周期的概念,多级时序系统与指令执行的关

系。

30.掌握控制单元与控制信号

内容包括:控制器的基本工作原理、控制信号的作用、控制通路、典型指令执行过

程中的控制信号

31. 掌握流水线的工作原理

内容包括:流水线的工作原理、流水线的相关问题、流水线相关问题的解决方法、

流水线的时空图、流水线的性能计算、流水线的多发生机制。

32. 掌握微程序控制器

内容包括:了解微程序控制器的工作原理,掌握微指令的概念、掌握微指令的译码

方式、下址形成方式、以及微程序控制器的设计原理

Page 416: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

33. 掌握硬布线控制器

内容包括:了解硬布线控制器的工作原理,掌握硬布线控制器的设计步骤。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 总线判优 通过编程仿真总线

仲裁方式

2 2 课后仿真程

序练习

2 存储器 通过编程仿真

cache映射机制

4-5 4 课后仿真程

序练习

3 计算方法 通过编程仿真定点

数运算过程

7-9 4 课后仿真程

序练习

Page 417: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1

总线仲裁

仿真程序

设计

单元项目 2 采用 C语言设计总

线仿真程序 程序实物 实践教学 0 程序作业 课下

单元型试

2

Cache映射

仿真程序

设计

单元项目 4-5

采用 C语言或

Flash 编程设计实

现 cache映射机制

程序实物

或演示动

实践教学 0 课程作业 课下 单元型试

3

定点数乘

法仿真程

序设计

单元项目 7-9

采用 C语言设计定

点数乘法运算仿真

程序

程序实物 实践教学 0 课程作业 课下 单元型试

Page 418: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标

教 学

实施

考核

方式

各教学环节学时分配

理论教学 实践教学 课

讲课 习

1

1.1 计 算 机

系统的基本

构成

冯诺依曼计算机体系结构、冯诺依

曼计算机的典型特征、计算机语言

的分类及特性。

1-②高级 了

讲授、

讨论 1 1

1.2 计 算 机

系统的成成

结构

了解实际机器、汇编语言虚拟机、

操作系统虚拟机、高级语言虚拟机

和微程序虚拟机的基本概念及作

用。

1-②高级 了

讲授、

讨论 0.5 0.5

1.3 计算机的

发展历史和

发展趋势

了解计算机发展历史各阶段,包括

电子管计算机、晶体管计算机、集

成电路计算机、大规模集成电路计

算机;了解计算机发展的趋势,包

括微型化、巨型化、智能化、网络

化等。

1-②高级 了

讲授、

讨论 0.5 0.5

2

2.1 总 线 的

分类与特性

掌握总线的概念、总线的作用、总

线的分类,重点掌握计算机三总线

结构,及数据总线、地址总线、控

制总线的作用,掌握地址总线位数

1-②高级 了

讲授、

讨论 1 1

Page 419: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

线 与存储空间的关系;掌握总线的机

械特性、电气特性、功能特性和时

间特性。

2.2 总 线 仲

裁方式

了解总线仲裁方式分类,重点掌握

总线的链式、计数器式、独立式仲

裁方式。

1-②高级

4-①中级

重点

掌握

讲授、

讨论 0.5 0.5

2.3 总 线 通

信方式

了解同步通信、异步通信、半同步

通信、分离式通信的各个原理及特

点。

1-②高级

4-①中级

重点

掌握

讲授、

讨论 1 1

2.4 总 线 标

掌握总线标准的内涵,了解各种类

型总线标准。 1-②高级 掌握

讲授、

讨论 0.5 0.5

作业 1 总线性能计算 1-②高级

5-②初级 掌握

课后

作业

课后仿真程序

练习 总线判优 2 2

3

3.1 主 存 的

基本概念

重点掌握存储器的分类及存储层

次,了解主存储器的结构和地址译

码方式,会用程序判断存储器的字

节序类型。

1-②高级 了

讲授、

讨论 1 1

3.2 随 机 存

储器工作原

了解静态随机存储器和动态随机

存储器的工作原理,存储芯片的地

址选择方式,以及动态存储器的刷

新原理,会计算刷新周期。

1-②高级 掌握 讲授、

讨论 3 3

3.3 存 储 器 了解存储器的字扩展、位扩展、字 1-②高级 重点 讲授、 2 2

Page 420: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

扩展方式 位扩展,以及和 CPU 的连接方式,

掌握芯片地址范围确定方法,会设

计包含存储器的最小计算机系统。

了解提高访存速度的措施。

4-①中级 掌握 讨论

3.4 高 速 缓

冲存储器的

工作原理

掌握 cache 的三种映射方式,掌握

每种映射方式的主存地址结构,了

解替换算法和 cache 一致性问题。

1-②高级

4-①中级

重点

掌握

讲授、

讨论 3 3

3.5 数 据 校

验码的计算

方法

掌握奇偶校验、循环冗余校验、海

明码的基本原理,掌握以上三种校

验码的生成过程,以及校验过程。

1-②高级

5-②初级

重点

掌握

讲授、

讨论 3 3

作业 2 Cache映射方式设计

1-②高级

4-①中级

5-②初级

掌握 课后

作业

测试 A 存储器扩展 1-②高级

4-①中级 掌握

随堂

测试 2 2

课后仿真程序

练习 Cache映射 4 4

4

4.1 输 入 输

出系统

了解输入输出系统的基本概念,历

史发展阶段。 1-②高级

讲授、

讨论 1 1

4.2 典 型 外

掌握计算机输入输出系统典型外

设的工作原理,包括键盘、各种类

型显示器、打印机、磁盘等,会进

行磁盘容量计算。

1-②高级 了

讲授、

讨论 1 1

4.3 主 机 与

外设通信的 5

掌握查询、中断、DMA、通道、外

围处理器等 5种方式的工作原理、1-②高 级 掌握

讲授、

讨论 1 1

Page 421: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

种方式 工作特点。

4.4 中 断 的

工作原理

了解中断概念,掌握中断的各种接

口设备,包括中断标记、中断屏蔽、

中断判优、中断响应流程、中断服

务程序。

1-②高级 重点

掌握

讲授、

讨论 2 2

4.5 DMA 的工

作原理 了解 DMA的工作原理和工作步骤。 1-②高级 掌握

讲授、

讨论 1 1

作业 3 中断计算 1-②高级 掌握 课后

作业

5

5.1 有 符 号

数和无符号

数的概念

有符号数的表示方法,无符号数的

表示方法,机器数和真值的概念 1-②高级

讲授、

讨论 1 1

5.2 机 器 数

的原理及计

算方法

了解 4种机器数的表示方法,包括

原码、反码、补码、移码。 1-②高级

重点

掌握

讲授、

讨论 2 2

5.3 定 点 数

和浮点数的

概念

了解定点数的表示方法、浮点数的

表示方法,IEEE754 标准。 1-②高级 掌握

讲授、

讨论 1 1

5.4 定 点 数

运算方法

定点数的移位运算、定点数的加减

法运算、定点数的乘法运算、定点

数的除法运算。

1-②高级 重点

掌握

讲授、

讨论 5 5

5.5 浮 点 数

运算

浮点数的加减法运算和浮点数乘

除法运算。 1-②高级 掌握

讲授、

讨论 1 1

5.6 算 术 逻 半加器、全加器、超前进位加法器、 1-②高级 掌握 讲授、 2 2

Page 422: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

辑单元的工

作原理

算术逻辑单元 讨论

作业 4 浮点数加法

1-②高级

4-①中级

5-②初级

掌握 课后

作业

测试 B 定点数乘法 1-②高级

4-①中级 掌握

随堂

测试 2 2

课后仿真程序

练习 定点数乘法 4 4

6

6.1 指 令 系

统的基本概

指令系统概念、指令字概念、指令

的结构、指令的地址类型等。 1-②高级 了解

讲授、

讨论 1 1

6.2 指 令 的

操作类型和

操作数类型

掌握指令的几种操作类型,包括数

据移动类、运算类、跳转类等。 1-②高级 掌握

讲授、

讨论 2 2

6.3 指 令 的

寻址方式

掌握指令寻址和数据寻址的概念,

重点掌握指令的 10 种数据寻址方

式。

1-②高级 重点

掌握

讲授、

讨论 3 3

6.4 RISC处理

掌握RISC控制器与CISC控制器各

自的特点 1-②高级 了解

讲授、

讨论 1 1

作业 5 寻址方式计算 1-②高级 掌握 课后

作业

7

7.1 器 的 组

成及工作原

控制器的组成、寄存器分类及可见

性 1-②高级 掌握

讲授、

讨论 1 1

7.2 多 级 时 时钟周期、机器周期、指令周 1-②高级 掌握 讲授、 1 1

Page 423: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

序系统 期的概念,多级时序系统与指令执

行的关系。

讨论

7.3 控 制 单

元与控制信

控制器的基本工作原理、控制信号

的作用、控制通路、典型指令执行

过程中的控制信号

1-②高级 重点

掌握

讲授、

讨论 4 4

7.4 流 水 线

的工作原理

流水线的工作原理、流水线的相关

问题、流水线相关问题的解决方

法、流水线的时空图、流水线的性

能计算、流水线的多发生机制。

1-②高级 重点

掌握

讲授、

讨论 2 2

7.5 微 程 序

控制器

了解微程序控制器的工作原理,掌

握微指令的概念、掌握微指令的译

码方式、下址形成方式、以及微程

序控制器的设计原理

1-②高级 掌握 讲授、

讨论 1 1

7.6 硬 布 线

控制器

了解硬布线控制器的工作原理,掌

握硬布线控制器的设计步骤 1-②高级 掌握

讲授、

讨论 1 1

作业 6 中断嵌套问答 1-②高级 掌握 课后

作业

合计 52 4 10 56 10

Page 424: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

6. 结合《计算机组织与结构实验课程》,统一协调安排教学内容、教学进度。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次课上测验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现 课堂参与情况 日常考核 4%

课后作业 1 总线 作业批阅 第 2 周 4%

课后作业 2 存储器 作业批阅 第 4-5 周 4%

课后作业 3 输入输出系统 作业批阅 第 6 周 4%

课后作业 4 计算方法 作业批阅 第 8-9 周 4%

课后作业 5 指令系统 作业批阅 第 11 周 4%

课后作业 6 控制器 作业批阅 第 13-14 周 4%

测验 A 存储器 课上测试 第 5 周 6%

Page 425: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

测验 B 计算方法 课上测试 第 9 周 6%

终结性考核 期末考试 全部知识单元教学内容 开卷考试 考试周 60 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

平时表现 课程参与程度、活跃度 占总成绩 4%

课后作业 1 1-②高级能力; 5-②初级能力 占总成绩 4%

课后作业 2 1-②高级能力;4-①中级能力;5-②初级能力 占总成绩 4%

课后作业 3 1-②高级能力 占总成绩 4%

课后作业 4 1-②高级能力;4-①中级能力;5-②初级能力 占总成绩 4%

课后作业 5 1-②高级能力 占总成绩 4%

课后作业 6 1-②高级能力 占总成绩 4%

测试 A 1-②高级能力;4-①中级能力; 占总成绩 6%

测试 B 1-②高级能力;4-①中级能力; 占总成绩 6%

期末考试 1-②高级能力;4-①中级能力;5-②初级能力 占总成绩 60 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15 个、30%

填空题:

10个、20%

问答题:

4个、20%

计算题:

4 个、20%

设计题:

1个、10%

其 他: 0 个

0 %

试题难易程度

基本题: 50% 灵活题: 40% 综合题: 10%

其 他 :

0 %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 100 % )

备 注

Page 426: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 课程参与积极活跃,课堂表现认真,作业完成情况优秀,期末总成

绩在 90分以上。

良好(89-80) 课程参与较活跃,课堂表现较认真,能按时完成作业,完成情况良

好,期末总成绩在 80分以上。

中等(79-70) 课程参与情况与课堂表现达到平均水平,能按时完成作业,期末总

成绩在 70分以上。

合格(69-60) 课程参与情况较差,作业完成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业不能按时完成,期末总成

绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver2

制定人签字:赖晓晨、王洁

审核人签字:周宽久

专业负责人签字:周宽久

主管院长:江贺

制定日期:2016年 12月

Page 427: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090430070

2. 课程中文名称: 计算机组织与结构

3. 课程英文名称: Computer Organization and Structure

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第二学年第 1学期

8. 先修课程: 《模拟与数字电路》

9. 后继课程: 《嵌入式系统结构》

10. 学时安排: 56学时

总学时 理论教学 实践教学 周学时 学分 课外学时

56 56 10 4 3.5 10

二、任课教师

周宽久(教授)、赖晓晨(副教授)、王洁(讲师)

三、教材及主要参考资料

教 材: 《计算机组成原理》(第 2 版). 唐朔飞 编著. 高等教育出版

社. 2008.

参考资料: 《计算机组成原理》(第 5 版). 白中英,戴志涛等编著。 科

学出版社, 2013.

《计算机组成原理》(第 1版).王诚,郭超峰等编著.人民邮电

出版社,2009.

《计算机组织与体系结构》(第 7 版). William Stallings

著,张昆藏 等译.清华大学出版社,2006.

《计算机科学丛书:深入理解计算机系统》(原书第 2

版) [Computer Systems][美] Randal E. Bryant,David R.O

Hallaren 著;龚奕利,雷迎春译.机械工业出版社,2011.

四、课程简介

Page 428: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

计算机组成与结构是软件工程专业的一门公共基础课,是一门理论性、技术性很强的主

干课程。本课程的主要任务是全面介绍计算机的组成原理、系统结构以及现代计算机体系结

构的先进技术。通过本课程的学习,使学生掌握计算机硬件的具体实现方法和计算机硬件的

基本特性。为后续计算机专业课的学习以及未来从事计算机硬件和软件系统的研究与开发,

打下一个良好的基础。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

②掌握软件工程基础及

专业知识

(中级能力)重点掌握运算

器、控制器、存储器、输入

输出系统的组织结构及工

作原理。

4.研究:能够基于科学原理

并采用科学方法对复杂工

程问题进行研究,包括设计

实验、分析与解释数据、并

通过信息综合得到合理有

效的结论。

①设计实验项目的能力,

包括资料收集、参数值范

围设定、及统计分析方法

的运用能力

(初级能力)掌握计算机系

统各部件的设计方法,能够

设计简单的存储器、加法

器、指令系统和 I/O 系统。

(二)教学目标

目标内容 具体目标

专业知识

了解计算机系统的基本结构

掌握总线的工作原理

重点掌握存储器组织结构和工作原理

重点掌握输入输出系统的组织结构和工作原理

重点掌握计算方法的工作原理

重点掌握指令系统的工作原理

掌握控制器的组织结构和工作原理

专业技能 学会查阅资料,了解计算机技术最新发展

掌握总线的仲裁方式,能进行仿真设计

重点掌握存储器扩展及 cache结构设计技能

掌握构建具体处理器中断系统的技能

重点掌握计算机各种机器数的四则运算技能和仿真技能

掌握指令寻址的设计技能

掌握简单微程序和硬布线控制器的实现技能

Page 429: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

(三)教学任务

本课程将理论讲授与课内练习、课后作业环节相结合,使学生更深入地理解和掌握

计算机内部各部分的组织与结构,熟练应用仿真工具进行部分模块仿真,并能针对具体

计算机系统进行分析与设计,为在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 7大部分:计算机系统概述,系统总线,存储器,输入输出系统,计算

方法,指令系统,控制器。

第一部分:计算机系统概述

学生要了解的基础知识:了解计算机系统的基本构成、计算机系统的层次结构,以

及计算机的发展历史和发展趋势。

1. 了解计算机系统的基本构成

内容包括:冯诺依曼计算机体系结构、冯诺依曼计算机的典型特征、计算机语言的

分类及特性。

2、了解计算机系统的成成结构

内容包括:了解实际机器、汇编语言虚拟机、操作系统虚拟机、高级语言虚拟机和

微程序虚拟机的基本概念及作用。

3、了解计算机的发展历史和发展趋势

内容包括:了解计算机发展历史各阶段,包括电子管计算机、晶体管计算机、集成

电路计算机、大规模集成电路计算机;了解计算机发展的趋势,包括微型化、巨型化、

智能化、网络化等。

第二部分:系统总线

掌握总线的工作原理,包括总线分类与特性、总线仲裁方式、总线通信方式、总线

标准等。

4.掌握总线的分类与特性

内容包括:掌握总线的概念、总线的作用、总线的分类,重点掌握计算机三总线结

构,及数据总线、地址总线、控制总线的作用,掌握地址总线位数与存储空间的关系;

掌握总线的机械特性、电气特性、功能特性和时间特性。

5. 掌握总线仲裁方式

内容包括:了解总线仲裁方式分类,重点掌握总线的链式、计数器式、独立式仲裁

方式。

6. 掌握总线通信方式

内容包括:了解同步通信、异步通信、半同步通信、分离式通信的各个原理及特点。

7. 掌握总线标准

内容包括:掌握总线标准的内涵,了解各种类型总线标准。

Page 430: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

第三部分:存储器

重点掌握计算机存储器的分类、层次结构、工作原理、存储器扩展方式、各种数据

校验方法,会进行存储器扩展、cache 结构设计。

8.掌握主存的基本概念

内容包括:重点掌握存储器的分类及存储层次,了解主存储器的结构和地址译码方

式,会用程序判断存储器的字节序类型。

9.掌握随机存储器工作原理

内容包括:了解静态随机存储器和动态随机存储器的工作原理,存储芯片的地址选

择方式,以及动态存储器的刷新原理,会计算刷新周期。

10.重点掌握存储器扩展方式

内容包括:了解存储器的字扩展、位扩展、字位扩展,以及和 CPU 的连接方式,掌

握芯片地址范围确定方法,会设计包含存储器的最小计算机系统。了解提高访存速度的

措施。

11.重点掌握高速缓冲存储器的工作原理

内容包括:掌握 cache 的三种映射方式,掌握每种映射方式的主存地址结构,了解

替换算法和 cache 一致性问题。

12.重点掌握数据校验码的计算方法

内容包括:掌握奇偶校验、循环冗余校验、海明码的基本原理,掌握以上三种校验

码的生成过程,以及校验过程。

第四部分:输入输出系统

了解输入输出系统的基本概念,了解计算机系统的典型外设,掌握主机与外设通信

的 5种方式,重点掌握查询、中断和 DMA 工作方式。重点掌握中断的工作原理、中断流

程、中断服务程序,能够构建简单的中断系统。

13. 了解输入输出系统

内容包括:了解输入输出系统的基本概念,历史发展阶段。

14. 了解典型外设

内容包括:掌握计算机输入输出系统典型外设的工作原理,包括键盘、各种类型显

示器、打印机、磁盘等,会进行磁盘容量计算。

15. 掌握主机与外设通信的 5种方式

内容包括:掌握查询、中断、DMA、通道、外围处理器等 5 种方式的工作原理、工

作特点。

16. 重点掌握中断的工作原理

内容包括:了解中断概念,掌握中断的各种接口设备,包括中断标记、中断屏蔽、

中断判优、中断响应流程、中断服务程序。

17.掌握 DMA 的工作原理

内容包括:了解 DMA的工作原理和工作步骤。

第五部分:计算方法

掌握计算机中数的表示、有符号数和无符号数、机器数、定点数与浮点数、定点数

运算方法、浮点数运算方法等基础内容,以及加法器和算术逻辑单元的实现原理。

Page 431: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

18.掌握有符号数和无符号数的概念

内容包括:有符号数的表示方法,无符号数的表示方法,机器数和真值的概念

19.重点掌握机器数的原理及计算方法

内容包括:了解 4种机器数的表示方法,包括原码、反码、补码、移码。

20.掌握定点数和浮点数的概念

内容包括:了解定点数的表示方法、浮点数的表示方法,IEEE754标准。

21.重点掌握定点数运算方法

内容包括:定点数的移位运算、定点数的加减法运算、定点数的乘法运算、定点数

的除法运算。

22.掌握浮点数运算

内容包括:浮点数的加减法运算和浮点数乘除法运算。

23.掌握算术逻辑单元的工作原理

内容包括:半加器、全加器、超前进位加法器、算术逻辑单元

第六部分:指令系统

介绍指令系统的基本概念、指令的结构、指令的操作类型和操作数类型,重点掌握

指令的 10种数据寻址方式,了解 RISC 处理器的特点。

24.掌握指令系统的基本概念

内容包括:指令系统概念、指令字概念、指令的结构、指令的地址类型等。

25.掌握指令的操作类型和操作数类型

内容包括:掌握指令的几种操作类型,包括数据移动类、运算类、跳转类等。

26.重点掌握指令的寻址方式

内容包括:掌握指令寻址和数据寻址的概念,重点掌握指令的 10 种数据寻址方式。

27. 掌握 RISC 处理器

内容包括:掌握 RISC控制器与 CISC 控制器各自的特点

第七部分:控制器

介绍控制器的内部组成和工作原理,多级时序系统、控制单元与控制信号、流水线、

微指令控制器的实现流程、硬布线控制器的实现流程

28.掌握控制器的组成及工作原理

内容包括:控制器的组成、寄存器分类及可见性

29.掌握多级时序系统

内容包括:时钟周期、机器周期、指令周期的概念,多级时序系统与指令执行的关

系。

30.掌握控制单元与控制信号

内容包括:控制器的基本工作原理、控制信号的作用、控制通路、典型指令执行过

程中的控制信号

31. 掌握流水线的工作原理

内容包括:流水线的工作原理、流水线的相关问题、流水线相关问题的解决方法、

流水线的时空图、流水线的性能计算、流水线的多发生机制。

32. 掌握微程序控制器

Page 432: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

内容包括:了解微程序控制器的工作原理,掌握微指令的概念、掌握微指令的译码

方式、下址形成方式、以及微程序控制器的设计原理

33. 掌握硬布线控制器

内容包括:了解硬布线控制器的工作原理,掌握硬布线控制器的设计步骤。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 总线判优 通过编程仿真总线

仲裁方式

2 2 课后仿真程

序练习

2 存储器 通过编程仿真

cache映射机制

4-5 4 课后仿真程

序练习

3 计算方法 通过编程仿真定点

数运算过程

7-9 4 课后仿真程

序练习

Page 433: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1

总线仲裁

仿真程序

设计

单元项目 2 采用 C语言设计总

线仿真程序 程序实物 实践教学 0 程序作业 课下

单元型试

2

Cache映射

仿真程序

设计

单元项目 4-5

采用 C语言或

Flash 编程设计实

现 cache映射机制

程序实物

或演示动

实践教学 0 课程作业 课下 单元型试

3

定点数乘

法仿真程

序设计

单元项目 7-9

采用 C语言设计定

点数乘法运算仿真

程序

程序实物 实践教学 0 课程作业 课下 单元型试

Page 434: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标

教 学

实施

考核

方式

各教学环节学时分配

理论教学 实践教学 课

讲课 习

1

1.1 计算机系

统的基本构

冯诺依曼计算机体系结构、冯诺依

曼计算机的典型特征、计算机语言

的分类及特性。

1-②中级 了解 讲授、

讨论 1 1

1.2 计算机系

统的成成结

了解实际机器、汇编语言虚拟机、

操作系统虚拟机、高级语言虚拟机

和微程序虚拟机的基本概念及作

用。

1-②中级 了解 讲授、

讨论 0.5

0.

5

1.3 计算机的

发展历史和

发展趋势

了解计算机发展历史各阶段,包括

电子管计算机、晶体管计算机、集

成电路计算机、大规模集成电路计

算机;了解计算机发展的趋势,包

括微型化、巨型化、智能化、网络

化等。

1-②中级 了解 讲授、

讨论 0.5

0.

5

2

2.1 总线的分

类与特性

掌握总线的概念、总线的作用、总

线的分类,重点掌握计算机三总线

结构,及数据总线、地址总线、控

制总线的作用,掌握地址总线位数

1-②中级 了解 讲授、

讨论 1 1

Page 435: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

线 与存储空间的关系;掌握总线的机

械特性、电气特性、功能特性和时

间特性。

2.2 总线仲裁

方式

了解总线仲裁方式分类,重点掌握

总线的链式、计数器式、独立式仲

裁方式。

1-②中级

4-①初级

重点

掌握

讲授、

讨论 0.5

0.

5

2.3 总线通信

方式

了解同步通信、异步通信、半同步

通信、分离式通信的各个原理及特

点。

1-②中级

4-①初级

重点

掌握

讲授、

讨论 1 1

2.4 总线标准 掌握总线标准的内涵,了解各种类

型总线标准。 1-②中级 掌握

讲授、

讨论 0.5

0.

5

作业 1 总线性能计算 1-②中级

掌握

课后

作业

课后仿真程序

练习 总线判优 1-②中级 2 2

3

3.1 主存的基

本概念

重点掌握存储器的分类及存储层

次,了解主存储器的结构和地址译

码方式,会用程序判断存储器的字

节序类型。

1-②中级 了解 讲授、

讨论 1 1

3.2 随机存储

器工作原理

了解静态随机存储器和动态随机

存储器的工作原理,存储芯片的地

址选择方式,以及动态存储器的刷

新原理,会计算刷新周期。

1-②中级 掌握 讲授、

讨论 3 3

3.3 存储器扩 了解存储器的字扩展、位扩展、字 1-②中级 重点 讲授、 2 2

Page 436: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

展方式 位扩展,以及和 CPU 的连接方式,

掌握芯片地址范围确定方法,会设

计包含存储器的最小计算机系统。

了解提高访存速度的措施。

4-①初级 掌握 讨论

3.4 高速缓冲

存储器的工

作原理

掌握 cache 的三种映射方式,掌握

每种映射方式的主存地址结构,了

解替换算法和 cache 一致性问题。

1-②中级

4-①初级

重点

掌握

讲授、

讨论 3 3

3.5 数据校验

码的计算方

掌握奇偶校验、循环冗余校验、海

明码的基本原理,掌握以上三种校

验码的生成过程,以及校验过程。

1-②中级

重点

掌握

讲授、

讨论 3 3

作业 2 Cache映射方式设计

1-②中级

4-①初级

掌握 课后

作业

作业 3 存储器扩展 1-②中级

4-①初级 掌握

课后

作业

课后仿真程序

练习 Cache映射 1-②中级 4 4

4

4.1 输入输出

系统

了解输入输出系统的基本概念,历

史发展阶段。 1-②中级 了解

讲授、

讨论 1 1

4.2 典型外设

掌握计算机输入输出系统典型外

设的工作原理,包括键盘、各种类

型显示器、打印机、磁盘等,会进

行磁盘容量计算。

1-②中级 了解 讲授、

讨论 1 1

4.3 主机与外

设通信的 5种

掌握查询、中断、DMA、通道、外

围处理器等 5种方式的工作原理、1-②高 级 掌握

讲授、

讨论 1 1

Page 437: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

方式 工作特点。

4.4 中断的工

作原理

了解中断概念,掌握中断的各种接

口设备,包括中断标记、中断屏蔽、

中断判优、中断响应流程、中断服

务程序。

1-②中级 重点

掌握

讲授、

讨论 2 2

4.5 DMA 的工

作原理 了解 DMA的工作原理和工作步骤。 1-②中级 掌握

讲授、

讨论 1 1

作业 4 中断计算 1-②中级 掌握 课后

作业

5

5.1 有符号数

和无符号数

的概念

有符号数的表示方法,无符号数的

表示方法,机器数和真值的概念 1-②中级 了解

讲授、

讨论 1 1

5.2 机器数的

原理及计算

方法

了解 4种机器数的表示方法,包括

原码、反码、补码、移码。 1-②中级

重点

掌握

讲授、

讨论 2 2

5.3 定点数和

浮点数的概

了解定点数的表示方法、浮点数的

表示方法,IEEE754 标准。 1-②中级 掌握

讲授、

讨论 1 1

5.4 定点数运

算方法

定点数的移位运算、定点数的加减

法运算、定点数的乘法运算、定点

数的除法运算。

1-②中级 重点

掌握

讲授、

讨论 5 5

5.5 浮点数运

浮点数的加减法运算和浮点数乘

除法运算。 1-②中级 掌握

讲授、

讨论 1 1

5.6 算术逻辑 半加器、全加器、超前进位加法器、 1-②中级 掌握 讲授、 2 2

Page 438: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

单元的工作

原理

算术逻辑单元 讨论

作业 5 浮点数加法

1-②中级

4-①初级

掌握 课后

作业

作业 6 定点数乘法 1-②中级

4-①初级 掌握

课后

作业

课后仿真程序

练习 定点数除法 1-②中级 4 4

6

6.1 指令系统

的基本概念

指令系统概念、指令字概念、指令

的结构、指令的地址类型等。 1-②中级 了解

讲授、

讨论 1 1

6.2 指令的操

作类型和操

作数类型

掌握指令的几种操作类型,包括数

据移动类、运算类、跳转类等。 1-②中级 掌握

讲授、

讨论 2 2

6.3 指令的寻

址方式

掌握指令寻址和数据寻址的概念,

重点掌握指令的 10 种数据寻址方

式。

1-②中级 重点

掌握

讲授、

讨论 3 3

6.4 RISC 处理

掌握 RISC控制器与 CISC控制器各

自的特点 1-②中级 了解

讲授、

讨论 1 1

作业 7 寻址方式计算 1-②中级 掌握 课后

作业

7

7.1 器的组成

及工作原理

控制器的组成、寄存器分类及可见

性 1-②中级 掌握

讲授、

讨论 1 1

7.2 多级时序

系统

时钟周期、机器周期、指令周

期的概念,多级时序系统与指令执1-②中级 掌握

讲授、

讨论 1 1

Page 439: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

行的关系。

7.3 控制单元

与控制信号

控制器的基本工作原理、控制信号

的作用、控制通路、典型指令执行

过程中的控制信号

1-②中级 重点

掌握

讲授、

讨论 4 4

7.4 流水线的

工作原理

流水线的工作原理、流水线的相关

问题、流水线相关问题的解决方

法、流水线的时空图、流水线的性

能计算、流水线的多发生机制。

1-②中级 重点

掌握

讲授、

讨论 2 2

7.5 微程序控

制器

了解微程序控制器的工作原理,掌

握微指令的概念、掌握微指令的译

码方式、下址形成方式、以及微程

序控制器的设计原理

1-②中级 掌握 讲授、

讨论 1 1

7.6 硬布线控

制器

了解硬布线控制器的工作原理,掌

握硬布线控制器的设计步骤 1-②中级 掌握

讲授、

讨论 1 1

作业 8 控制器分析与设计 1-②中级 掌握 课后

作业

合计 52 10 52 10

Page 440: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

440

九、教学方法及组织形式

1.课前预习,收集学生问题,问题和难点指导课堂讲授,实验和课后作业为辅。

本课程从通过系统分析与设计的基础知识讲解、案例分析以及项目实践,不断提升学生

能力。以课堂讲授、课堂练习和测试、实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

6. 结合《计算机组织与结构实验课程》,统一协调安排教学内容、教学进度。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次课上测验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

课后作业 1 总线 作业批阅 第 2 周 5%

课后作业 2 存储器 作业批阅 第 4-6 周 5%

课后作业 3 存储器 作业批阅 第 4-6 周 5%

课后作业 4 输入输出系统 作业批阅 第 7 周 5%

课后作业 5 计算方法 作业批阅 第 8-10 周 5%

课后作业 6 计算方法 作业批阅 第 8-10 周 5%

课后作业 7 指令系统 作业批阅 第 11-12 周 5%

课后作业 8 控制器 作业批阅 第 13-14 周 5%

终结性考核 期末考试 全部知识单元教学内容 闭卷考试 考试周 60 %

(二)命题要求

Page 441: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

441

考核项目 重点考核知识点、技能点 备注

平时表现 课程参与程度、活跃度 占总成绩 5%

课后作业 1 1-②中级能力 占总成绩 5%

课后作业 2 1-②中级能力;4-①初级能力 占总成绩 5%

课后作业 3 1-②中级能力;4-①初级能力 占总成绩 5%

课后作业 4 1-②中级能力 占总成绩 5%

课后作业 5 1-②中级能力;4-①初级能力 占总成绩 5%

课后作业 6 1-②中级能力;4-①初级能力 占总成绩 5%

课后作业 7 1-②中级能力 占总成绩 5%

课后作业 8 1-②中级能 占总成绩 5%

期末考试 1-②中级能力;4-①初级能力 占总成绩 60 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

15个、30%

填空题:

10 个、20%

问答题:

4个、20%

计算题:

4个、20%

设计题:

1 个、10%

其 他: 0 个

0 %

试题难易程度

基本题: 50% 灵活题:40% 综合题:10%

其他:0 %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

(100 % )

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 课程参与积极活跃,课堂表现认真,作业完成情况优秀,期末总成

绩在 90分以上。

良好(89-80) 课程参与较活跃,课堂表现较认真,能按时完成作业,完成情况良

Page 442: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

442

好,期末总成绩在 80分以上。

中等(79-70) 课程参与情况与课堂表现达到平均水平,能按时完成作业,期末总

成绩在 70分以上。

合格(69-60) 课程参与情况较差,作业完成情况一般,期末总成绩在 60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业不能按时完成,期末总成

绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。拟增加基于 ARM 指令集的汇编语言程序设计,以验证处理器

运行机制。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:赖晓晨、王洁

审核人签字:周宽久

专业负责人签字:周宽久

主管院长:郭禾

制定日期:2015年 6月

Page 443: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

443

《软件项目管理》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090441030

2. 课程中文名称: 软件项目管理

3. 课程英文名称: Software Project Management

4. 课程性质: 选修课

5. 考核方式: 平时成绩 + 大作业

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《软件工程》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

32 32 0 4 2 0

二、任课教师

丁锋(副教授)

三、教材及主要参考资料

教 材: 《软件项目管理》,夏辉,周传生,清华大学出版社,2015.2.

参考资料: Software Project Management, (5th Edition),Bob Hughes,Mike

Cotterell,Rajib Mall,Tata McGraw-Hill Education Pvt. Ltd (2011)

Stephen Haag and Maeve Cummings. Management Information Systems

for the Information Age(第 9 版). McGraw-Hill 出版社, 2012

四、课程简介

Page 444: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

444

《软件项目管理》是软件工程专业的一门专业基础课程。通过本课程的教学,使学生

掌握软件项目管理的基本理论基础和实践技能。学生通过本课程的学习能够根据项目的需求

及特点,确定项目的开发范围,经过分析与研究,设定具体的项目开发目标,在技术团队的

支撑下有效地实现目标。

本课程的目的是培养能够适应软件行业的项目管理技术人员。

五、课程目标

(一)课程培养能力体系

1 级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂软件项目管

理问题的安全解决方案,设

计满足特定需求的系统、单

元(部件)或流程,并能够

在设计环节中体现创新意

识,考虑社会、健康、安全、

法律、文化以及环境等因

素。

① 掌握软件项目管理要素,

了解软件开发过程管理模

型、ISO 国际质量标准、

CMMI软件评价标准

(初级能力)了解软件项目

管理模型、ISO、CMMI 标准,

掌握软件生命周期的要素

5.使用现代工具:能够针对

复杂软件项目管理工程问

题,开发、选择与使用恰当

的技术、资源、现代工程工

具和信息技术工具,包括对

复杂软件项目管理问题的预

测与模拟,并能够理解其局

限性。

③ 对复杂软件项目管理问

题进行预测与模拟,并能够

理解其局限性

(初级能力)掌握复杂软件

项目管理问题分析方法,通

过分析方法对问题进行预

测与模拟,提出其局限性

6.工程与社会:能够基于软

件项目管理工程相关背景知

识进行合理分析,评价专业

工程实践和复杂工程问题

解决方案对社会、健康、安

全、法律以及文化的影响,

并理解应承担的责任。

② 评价专业软件项目管理

工程实践和软件项目管理工

程问题解决方案,评价对社

会、健康、安全、法律以及

文化的影响

(高级能力)对复杂软件项

目管理问题的解决方案进

行分析,能够评价对社会、

健康、安全、法律以及文化

的影响

11.项目管理:理解并掌握

软件项目管理原理与经济

决策方法,并在多学科环境

中应用。

① 掌握软件项目技术管

理、人员管理、工程管理的

原理

(高级能力)掌握软件项目

技术管理、人员管理、工程

管理的原理,并能够针对实

际问题进行应用

11.项目管理:理解并掌握

软件项目管理决策方法,并

在多学科环境中应用。

② 掌握与成本、风险等相

关的经济决策方法

(中级能力)掌握软件项目

管理中成本、风险等相关的

经济决策方法

11.项目管理:理解并掌握

软件项目管理原理与经济决

策方法,并在多学科环境中

应用。

③ 在多学科环境中运用软

件项目管理方法

(中级能力)能够根据跨学

科案例,了解运用项目管理

方法。

Page 445: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

445

(二)教学目标

目标内容 具体目标

专业知识 学习软件项目管理基础知识

掌握常用基本模型和管理方法,了解软件项目管理的过程

学习软件项目管理的基本过程、基本方法等内容,具有管理开发团队

的能力

掌握软件项目管理流程设计创新方法

培养学生树立正确的设计思想,培养学生追求创新的态度和意识

了解软件项目实施过程中的国家有关的经济、环境、法律、安全、等

政策和制约因素

掌握描述过程规范和结构化决策方法

专业技能 具有分析、选用和设计项目管理流程的能力

培养学生的工程实践能力,

具有运用标准、规范、手册、图册和查阅有关技术资料的能力

使学生掌握典型软件项目管理方法

掌握基于 UML 的面向对象系统分析与设计方法

(三)教学任务

本课程在教学内容方面着重软件项目管理相关基本知识、基本理论和基本设计方法

的讲解。在培养实践能力方面着重软件项目管理系统安全设计构思和基本设计技能的基

本训练。通过本课程的教学,使学生掌握软件项目管理的基本理论基础和实践技能。学

生通过本课程的学习能够根据软件项目管理业务的安全需求及特点,确定业务系统的开

发范围,经过分析与研究,设定具体的系统开发目标,在技术团队的支撑下有效地实现

目标。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:软件项目管理基础,软件项目管理关键技术,软件项目管理

管理体系,软件项目集成跟踪及案例。

第一部分:软件项目管理基础

学生要了解的基础知识:软件项目管理概述、软件项目合同管理、软件项目生存期

模型、软件项目需求管理。

1.了解项目及其特征,了解项目群与项目、项目与子项目的关系

2.掌握软件项目要素组成、掌握实现项目目标的制约因素

3.掌握软件项目管理的特征及重要性

4.了解合同管理概述

Page 446: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

446

5.掌握需方合同环境

6.掌握供方合同环境

7.掌握企业内部合同环境

8.掌握软件项目生存期模型定义

9.掌握瀑布模型、掌握 V型模型、掌握原型模型

10.了解增量式模型、螺旋式模型、快速应用开发模型和渐进式阶段模型

11.了解需求管理的重要性、掌握需求定义、掌握需求类型

12.掌握需求管理过程、掌握需求建模的基本方法

第二部分:软件项目管理关键技术

掌握软件项目任务分解、软件项目规模成本估算、软件项目进度计划、软件项目质

量计划。

1.了解任务分解定义、了解任务分解的类型

2.掌握任务分解的过程、掌握任务分解的注意事项

3.了解关于估算的概念、掌握估算的过程

4.掌握估算的方法 、掌握估算的误差度

5.了解大规模业务的实时处理技术

6.了解业务系统综合集成与多渠道整合技术

7.了解项目进度中的基本概念

8.掌握进度管理图示

9.掌握专家估算方法 、掌握类推估算方法、掌握模拟估算方法

10.掌握进度计划编制

11.了解软件质量与硬件质量的比较、了解软件质量的重要性

12.了解软件质量管理的发展过程、掌握质量管理过程、掌握质量计划制定

第三部分:软件项目管理管理体系

掌握软件项目配置管理计划、软件项目风险管理计划、软件项目团队管理、软件项

目度量管理。

1.了解配置管理定义、了解配置管理的目标

2.掌握配置管理过程、掌握配置管理工具、掌握配置管理计划

3.了解风险概念与风险类型

4.掌握风险识别方法、掌握风险评估

5.掌握风险规划、掌握风险控制

6.了解团队定义、团队管理意义和团队管理过程

7.了解项目经理定义、角色、职责、权利

8.掌握项目组织形式、掌握团队建设、掌握沟通管理

9.了解度量定义和度量的类型、了解度量体系和度量技术

10.掌握度量管理过程

11.掌握度量计划的构成和实施

12.掌握度量指标选择

第四部分:软件项目集成跟踪及案例

掌握软件项目集成计划、软件项目跟踪控制、软件项目结束过程、实际案例分析。

1.掌握软件项目的集成管理

2.掌握项目集成计划

Page 447: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

447

3.了解项目跟踪控制概念、范围和重要性

4.掌握建立项目跟踪控制的标准

5.掌握建立项目监控和报告体系

6.掌握项目跟踪控制过程

7.掌握项目评审

8.掌握项目成功与失败的标准

9.掌握项目结束过程

10.掌握项目总结、掌握项目管理过程总结

11.校园一卡通管理系统、中国银行 VIP客户系统

七、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

八、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

九、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

报告 学生课堂报告,论文研讨 投影片,报

告 第 5-8 周 50%

终结性考核 大作业 全部知识单元教学内容 大作业 第 8 周 50 %

Page 448: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

448

(二)命题要求

考核项目 重点考核知识点、技能点 备注

报告 2-③中级、4-②中级、9-①高级、10-③初级 占总成绩 50%

大作业 2-③中级、4-②中级、9-①高级、10-③初级 占总成绩 50%

(三)终结性考核安排

考试时间 结课大作业 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 大作业 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

研究背景及意义介

绍 20% 方法详细介绍 70% 论文心得 10%

试题难易程度

基本题: % 灵活题: % 综合题: %

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 100 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

Page 449: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

449

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:丁锋

审核人签字:丁锋

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

Page 450: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

450

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090441030

2. 课程中文名称: 软件项目管理

3. 课程英文名称: Software Project Management

4. 课程性质: 选修课

5. 考核方式: 平时成绩 + 大作业

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《软件工程》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

32 32 0 4 2 0

二、任课教师

丁锋(副教授)

三、教材及主要参考资料

教 材: 《软件项目管理》,夏辉,周传生,清华大学出版社,2015.2.

参考资料: Software Project Management, (5th Edition),Bob Hughes,Mike

Cotterell,Rajib Mall,Tata McGraw-Hill Education Pvt. Ltd

(2011)

Stephen Haag and Maeve Cummings. Management Information

Systems for the Information Age(第 9 版). McGraw-Hill 出

版社, 2012 年

四、课程简介

《软件项目管理》是软件工程专业的一门专业基础课程。通过本课程的教学,使学生

掌握软件项目管理的基本理论基础和实践技能。学生通过本课程的学习能够根据项目的需求

及特点,确定项目的开发范围,经过分析与研究,设定具体的项目开发目标,在技术团队的

支撑下有效地实现目标。

Page 451: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

451

本课程的目的是培养能够适应软件行业的项目管理技术人员。

五、课程目标

(一)课程培养能力体系

1 级能力指标 2级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂软件项目

管理问题的安全解决方案,

设计满足特定需求的系统、

单元(部件)或流程,并能

够在设计环节中体现创新

意识,考虑社会、健康、安

全、法律、文化以及环境等

因素。

① 掌握软件项目管理要

素,了解软件开发过程管理

模型、ISO 国际质量标准、

CMMI软件评价标准

(初级能力)了解软件项目

管理模型、ISO、CMMI 标准,

掌握软件生命周期的要素

5.使用现代工具:能够针对

复杂软件项目管理工程问

题,开发、选择与使用恰当

的技术、资源、现代工程工

具和信息技术工具,包括对

复杂软件项目管理问题的

预测与模拟,并能够理解其

局限性。

③ 对复杂软件项目管理问

题进行预测与模拟,并能够

理解其局限性

(初级能力)掌握复杂软件

项目管理问题分析方法,通

过分析方法对问题进行预

测与模拟,提出其局限性

6.工程与社会:能够基于软

件项目管理工程相关背景

知识进行合理分析,评价专

业工程实践和复杂工程问

题解决方案对社会、健康、

安全、法律以及文化的影

响,并理解应承担的责任。

② 评价专业软件项目管理

工程实践和软件项目管理

工程问题解决方案,评价对

社会、健康、安全、法律以

及文化的影响

(高级能力)对复杂软件项

目管理问题的解决方案进

行分析,能够评价对社会、

健康、安全、法律以及文化

的影响

11.项目管理:理解并掌握

软件项目管理原理与经济

决策方法,并在多学科环境

中应用。

① 掌握软件项目技术管

理、人员管理、工程管理的

原理

(高级能力)掌握软件项目

技术管理、人员管理、工程

管理的原理,并能够针对实

际问题进行应用

11.项目管理:理解并掌握

软件项目管理决策方法,并

在多学科环境中应用。

② 掌握与成本、风险等相

关的经济决策方法

(中级能力)掌握软件项目

管理中成本、风险等相关的

经济决策方法

11.项目管理:理解并掌握

软件项目管理原理与经济

决策方法,并在多学科环境

中应用。

③ 在多学科环境中运用软

件项目管理方法

(中级能力)能够根据跨学

科案例,了解运用项目管理

方法。

(二)教学目标

目标内容 具体目标

Page 452: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

452

专业知识 学习软件项目管理基础知识

掌握常用基本模型和管理方法,了解软件项目管理的过程

学习软件项目管理的基本过程、基本方法等内容,具有管理开发团

队的能力

掌握软件项目管理流程设计创新方法

培养学生树立正确的设计思想,培养学生追求创新的态度和意识

了解软件项目实施过程中的国家有关的经济、环境、法律、安全、

等政策和制约因素

掌握描述过程规范和结构化决策方法

专业技能 具有分析、选用和设计项目管理流程的能力

培养学生的工程实践能力,

具有运用标准、规范、手册、图册和查阅有关技术资料的能力

使学生掌握典型软件项目管理方法

掌握基于 UML的面向对象系统分析与设计方法

(三)教学任务

本课程在教学内容方面着重软件项目管理相关基本知识、基本理论和基本设计方法

的讲解。在培养实践能力方面着重软件项目管理系统安全设计构思和基本设计技能的基

本训练。通过本课程的教学,使学生掌握软件项目管理的基本理论基础和实践技能。学

生通过本课程的学习能够根据软件项目管理业务的安全需求及特点,确定业务系统的开

发范围,经过分析与研究,设定具体的系统开发目标,在技术团队的支撑下有效地实现

目标。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:软件项目管理基础,软件项目管理关键技术,软件项目管理

管理体系,软件项目集成跟踪及案例。

第一部分:软件项目管理基础

学生要了解的基础知识:软件项目管理概述、软件项目合同管理、软件项目生存期

模型、软件项目需求管理。

1.了解项目及其特征,了解项目群与项目、项目与子项目的关系

2.掌握软件项目要素组成、掌握实现项目目标的制约因素

3.掌握软件项目管理的特征及重要性

4.了解合同管理概述

5.掌握需方合同环境

6.掌握供方合同环境

7.掌握企业内部合同环境

8.掌握软件项目生存期模型定义

9.掌握瀑布模型、掌握 V型模型、掌握原型模型

10.了解增量式模型、螺旋式模型、快速应用开发模型和渐进式阶段模型

Page 453: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

453

11.了解需求管理的重要性、掌握需求定义、掌握需求类型

12.掌握需求管理过程、掌握需求建模的基本方法

第二部分:软件项目管理关键技术

掌握软件项目任务分解、软件项目规模成本估算、软件项目进度计划、软件项目质

量计划。

1.了解任务分解定义、了解任务分解的类型

2.掌握任务分解的过程、掌握任务分解的注意事项

3.了解关于估算的概念、掌握估算的过程

4.掌握估算的方法 、掌握估算的误差度

5.了解大规模业务的实时处理技术

6.了解业务系统综合集成与多渠道整合技术

7.了解项目进度中的基本概念

8.掌握进度管理图示

9.掌握专家估算方法 、掌握类推估算方法、掌握模拟估算方法

10.掌握进度计划编制

11.了解软件质量与硬件质量的比较、了解软件质量的重要性

12.了解软件质量管理的发展过程、掌握质量管理过程、掌握质量计划制定

第三部分:软件项目管理管理体系

掌握软件项目配置管理计划、软件项目风险管理计划、软件项目团队管理、软件项

目度量管理。

1.了解配置管理定义、了解配置管理的目标

2.掌握配置管理过程、掌握配置管理工具、掌握配置管理计划

3.了解风险概念与风险类型

4.掌握风险识别方法、掌握风险评估

5.掌握风险规划、掌握风险控制

6.了解团队定义、团队管理意义和团队管理过程

7.了解项目经理定义、角色、职责、权利

8.掌握项目组织形式、掌握团队建设、掌握沟通管理

9.了解度量定义和度量的类型、了解度量体系和度量技术

10.掌握度量管理过程

11.掌握度量计划的构成和实施

12.掌握度量指标选择

第四部分:软件项目集成跟踪及案例

掌握软件项目集成计划、软件项目跟踪控制、软件项目结束过程、实际案例分析。

1.掌握软件项目的集成管理

2.掌握项目集成计划

3.了解项目跟踪控制概念、范围和重要性

4.掌握建立项目跟踪控制的标准

5.掌握建立项目监控和报告体系

6.掌握项目跟踪控制过程

7.掌握项目评审

8.掌握项目成功与失败的标准

Page 454: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

454

9.掌握项目结束过程

10.掌握项目总结、掌握项目管理过程总结

11.校园一卡通管理系统、中国银行 VIP客户系统

七、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

八、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

九、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

报告 学生课堂报告,论文研讨 投影片,报

告 第 5-8 周 50%

终结性考核 大作业 全部知识单元教学内容 大作业 第 8 周 50 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

报告 2-③中级、4-②中级、9-①高级、10-③初级 占总成绩 50%

大作业 2-③中级、4-②中级、9-①高级、10-③初级 占总成绩 50%

Page 455: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

455

(三)终结性考核安排

考试时间 结课大作业 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 大作业 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

研究背景及意义介

绍 20% 方法详细介绍 70% 论文心得 10%

试题难易程度

基本题: % 灵活题: % 综合题: %

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 100 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

Page 456: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

456

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:丁锋

审核人签字:

专业负责人签字:

主管院长:

制定日期:2016年 12月

Page 457: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

457

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090441030

2. 课程中文名称: 软件项目管理

3. 课程英文名称: SoftwareProjectManagement

4. 课程性质: 选修课

5. 考核方式: 平时成绩 +大作业

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《软件工程》

9. 后继课程: 《软件开发案例分析》

10. 学时安排: 32

总学时 理论教学 实践教学 周学时 学分 课外学时

32 24 8 8 2 8

二、任课教师

丁锋(讲师)

三、教材及主要参考资料

教材:《软件项目管理案例教程》,韩万江著,机械工业出版社

参考资料:《IT项目管理》凯西.施瓦尔贝著.机械工业出版社

四、课程简介

《软件项目管理》是软件工程专业必修的一门专业基础课程。通过本课程的教学,

使学生掌握软件项目管理的基本理论基础和实践技能。学生通过本课程的学习能够根据

项目的需求及特点,确定项目的开发范围,经过分析与研究,设定具体的项目开发目标,

在技术团队的支撑下有效地实现目标。

本课程的目的是培养能够适应软件行业的项目管理技术人员。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

Page 458: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

458

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并能在多学科环境中

应用。

① 掌握技术管理、人员管

理、工程管理的原理

(初级能力)了解项目管理

中的技术管理、人员管理、

工程管理方法,有创新态度

和意识

② 掌握与成本、风险等相

关的经济决策方法

(中级能力)掌握项目管理

中的技术管理、人员管理、

工程管理方法,掌握成本、

风险经济决策方法,以及常

用基本模型和管理流程,掌

握创新方法

③ 在多学科环境中运用项

目管理方法

(高级能力)能够运用项目

管理中的技术管理、人员管

理、工程管理方法,具有分

析、选用和设计项目管理流

程的能力,能够创新软件项

目管理流程设计方法

(二)教学目标

目标内容 具体目标

专业知识 了解软件项目管理的基础知识和基本理论知识

掌握设计项目管理流程

了解银行软件项目管理的过程

掌握软件项目管理流程设计创新方法

了解软件项目实施过程中的国家有关的经济、环境、法律、安全、

等政策和制约因素

了解软件项目管理的前沿和新发展动向

掌握软件项目管理的基本过程、基本方法

专业技能 掌握常用基本模型和管理方法

掌握软件项目管理流程

掌握软件项目管理创新方法

掌握典型软件项目管理方法

掌握设计软件项目管理方法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解软件

项目管理流程,并能够掌握常用基本模型和管理方法,了解银行软件项目管理的过程,

具有分析、选用和设计项目管理流程的能力,为将来管理开发团队做好知识储备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内及要求

本课程分成 3大部分:软件项目管理基础,软件项目管理周期,实例分析。

Page 459: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

459

第一部分:软件项目管理基础

学习软件项目管理的基础知识和基本理论知识,了解常用基本模型和管理方法,了解银

行软件项目管理的过程。

1.软件项目管理概述

内容包括:项目及其特征,项目群与项目、项目与子项目的关系,软件项目要素组成、

实现项目目标的制约因素以及掌握软件项目管理的特征及重要性。

2.软件项目合同管理

内容包括:合同管理概述,需方合同环境、供方合同环境以及掌握企业内部合同环境。

3.软件项目生存期模型

内容包括:软件项目生存期模型定义,瀑布模型、V型模型、原型模型,增量式模型、

螺旋式模型、快速应用开发模型和渐进式阶段模型。

第二部分:软件项目管理周期

4.软件项目需求管理

内容包括:需求管理的重要性,需求定义、需求类型、需求管理过程,需求建模的基

本方法。

5.软件项目任务分解

内容包括:任务分解定义和类型,任务分解的过程以及任务分解的注意事项。

6.软件项目规模成本估算

内容包括:关于估算的概念,估算的过程、方法、误差度,Oracle/DB2,大规模业务

的实时处理技术,业务系统综合集成与多渠道整合技术。

7.软件项目进度计划

内容包括:项目进度中的基本概念,进度管理图示,专家估算方法,类推估算方法,

模拟估算方法,进度计划编制。

8.软件项目质量计划

内容包括:软件质量与硬件质量的比较,软件质量的重要性,软件质量管理的发展过

程,质量管理过程,质量计划制定。

9.软件项目配置管理

内容包括:配置管理定义,配置管理的目标,配置管理过程,配置管理工具,配置管

理计划。

10. 软件项目风险管理计划

内容包括:风险概念与风险类型,风险识别方法,风险评估,风险规划,风险控制。

11. 软件项目团队管理

内容包括:团队定义、团队管理意义和团队管理过程,项目经理定义、角色、职责、

权利,项目组织形式,团队建设,沟通管理。

12. 软件项目度量管理

内容包括:度量定义和度量的类型,度量体系和度量技术,度量管理过程,度量计划

的构成和实施,度量指标选择。

13. 软件项目集成计划

内容包括:软件项目的集成管理,项目集成计划。

14. 软件项目跟踪控制

内容包括:项目跟踪控制概念、范围和重要性,建立项目跟踪控制的标准,建立项目

监控和报告体系,项目跟踪控制过程,项目评审。

15. 软件项目结束过程

内容包括:项目成功与失败的标准,项目结束过程,项目总结,项目管理过程总结。

第三部分:实例分析

16. 实际案例分析

Page 460: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

460

内容包括:校园一卡通管理系统,中国银行 VIP客户系统。

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 模拟起草合同,掌

握企业内部合同环

符合合同基本规则,

考虑供需双方合同

环境

4 2 课后作业

2 软件项目规模成本

估算

关于估算的概念,估

算的过程、方法、误

差度,利用工具进行

估算

8 4-10 课后作业

Page 461: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

461

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 起草合同 单元项目 2

模拟工程案例,根

据供需双方需求草

拟合同

完成起草

合同 实践教学 2 课程作业

课堂、

课下

综合型试

2 需求分析 单元项目 4

面向具有工程背景

的案例,进行系统

需求分析

完成需求

分析报告 实践教学 2 课程作业

课堂、

课下

综合型试

3 计划进度 单元项目 6 使用基本估算方法,

模拟估算方法,进度

计划编制

完成项目

进度计划 实践教学 4 课程作业

课堂、

课下

综合型试

4 实例分析 单元项目 8

评价实际案例:校

园一卡通管理系统,

中国银行VIP客户系

完成实例

分析报告 实践教学 2 课程作业

课堂、

课下

综合型试

Page 462: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

462

八、各单元知识点、技能点分布及学时分配表

教学内容 知识点与技能点 能力目标 掌握程

度 教学实施

考核

方式

各教学环节学时分配

理论教学 实践教学 课

课外

小计 讲

1.软件项目管理

概述

了解项目及其特征

了解项目群与项目、项目与子项目的关系

掌握软件项目要素组成

掌握实现项目目标的制约因素

掌握软件项目管理的特征及重要性

11-①中级 了解/掌

讲授、讨

论 2 2

2.软件项目合同

管理

了解合同管理概述

掌握需方合同环境

掌握供方合同环境

掌握企业内部合同环境

11-①中级 了解/掌

讲授、讨

论 2 2

3.软件项目生存

期模型

掌握软件项目生存期模型定义

掌握瀑布模型

掌握 V 型模型

掌握原型模型

了解增量式模型、螺旋式模型、快速应用

开发模型和渐进式阶段模型

11-①初级 掌握 讲授、讨

论 2 2

测试 A 11-①中级 随堂

测试 2

4.软件项目需求

管理

了解需求管理的重要性

掌握需求定义

掌握需求类型

掌握需求管理过程

掌握需求建模的基本方法

11-①中级 掌握 讲授、讨

论 2 2

测试 B 11-①中级 随堂

测试 2

5.软件项目任务

分解

了解任务分解定义

了解任务分解的类型

掌握任务分解的过程

11-①中级 掌握 讲授、讨

论 2 2

Page 463: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

463

掌握任务分解的注意事项

6.软件项目规模

成本估算

了解关于估算的概念

掌握估算的过程

掌握估算的方法

掌握估算的误差度

Oracle/DB2

了解大规模业务的实时处理技术

了解业务系统综合集成与多渠道整合技

11-②中级 掌握 讲授、讨

论 2 2

7.软件项目进度

计划

了解项目进度中的基本概念

掌握进度管理图示

掌握专家估算方法

掌握类推估算方法

掌握模拟估算方法

掌握进度计划编制

11-②中级 掌握 讲授、讨

论 2 2

测试 C 11-②中级 随堂

测试 2

8.软件项目质量

计划

了解软件质量与硬件质量的比较

了解软件质量的重要性

了解软件质量管理的发展过程

掌握质量管理过程

掌握质量计划制定

11-②高级 掌握/运

用/分析

讲授、讨

论 2 2

9.软件项目配置

管理

了解配置管理定义

了解配置管理的目标

掌握配置管理过程

掌握配置管理工具

掌握配置管理计划

11-①中级

11-②中级 掌握

讲授、讨

论 2 2

10.软件项目风

险管理计划

了解风险概念与风险类型

掌握风险识别方法

掌握风险评估

掌握风险规划

掌握风险控制

11-②中级 掌握 讲授、讨

论 2 2

11.软件项目团了解团队定义、团队管理意义和团队管理

过程 11-③中级 掌握

讲授、讨

论 2 2

Page 464: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

464

队管理 了解项目经理定义、角色、职责、权利

掌握项目组织形式

掌握团队建设

掌握沟通管理

12.软件项目度

量管理

了解度量定义和度量的类型

了解度量体系和度量技术

掌握度量管理过程

掌握度量计划的构成和实施

掌握度量指标选择

11-③中级 掌握 讲授、讨

论 2 2

13.软件项目集

成计划

掌握软件项目的集成管理

掌握项目集成计划 11-③中级 了解

讲授、讨

论 2 2

14.软件项目跟

踪控制

了解项目跟踪控制概念、范围和重要性

掌握建立项目跟踪控制的标准

掌握建立项目监控和报告体系

掌握项目跟踪控制过程

掌握项目评审

11-③中级 了解 讲授、讨

论 2 2

15.软件项目结

束过程

掌握项目成功与失败的标准

掌握项目结束过程

掌握项目总结

掌握项目管理过程总结

11-③中级 掌握 讲授、讨

论 2 2

测试 D 11-③中级 随堂

测试 2

16.实际案例分

校园一卡通管理系统

中国银行 VIP 客户系统 11-③中级

掌握/运

讲授、讨

论 2 2

大作业

11-①中级

11-②中级

11-③中级

合计课时 32 8 32 8

Page 465: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

465

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核

测验 A 草拟合同 第 2 周 10%

测验 B 需求分析 第 3 周 15%

测验 C 项目进度计划 第 4 周 10%

测验 D 实例分析 第 6 周 15%

终结性考核 大作业 全部知识单元教学内容 考试周 50 %

(二)命题要求

Page 466: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

466

考核项目 重点考核知识点、技能点 备注

测试 A 11-①初级能力 占总成绩 10%

测试 B 11-②初级能力 占总成绩 15%

测试 C 11-②中级能力 占总成绩 10%

测试 D 11-③中级能力 占总成绩 15%

期末考试 11-①初级能力、11-②中级能力、11-③高级能力 占总成绩 50 %

(三)终结性考核安排

考核周期 两周 记分方式 ■百分制

□ 等级制

终结性

考核方式 大作业 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

评价标准

1.是否符合要求 2.是否灵活运用 3.是否创新

50% 30% 20%

备注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

Page 467: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

467

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:丁锋

审核人签字:刘宇

专业负责人签字:刘宇

主管院长:郭禾

制定日期:2015年 3月

Page 468: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

468

《数据库系统》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090430120

2. 课程中文名称: 数据库系统

3. 课程英文名称: Principles of Database Systems

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《离散数学》、《程序设计基础及 C程序设计》

9. 后继课程: 《数据库程序设计》《系统分析与设计》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 4 3 0

二、任课教师

单世民(副教授)、刘宇(教授)、原旭(副教授)、薛昕惟(讲师)、徐秀娟(讲师)

三、教材及主要参考资料

教 材: 《数据库系统概念(英文精编版,第 6 版)》 Abraham

Silberschatz, Henry F. Korth, S. Sudarshan,著, 杨冬

青改编,机械工业出版社,2013

参考资料: 《 Database System: A Practical Approach to Design,

Implementation, and Management》(Third Edition),Thomas

Connolly & Carolyn begg 编,电子工业出版社。

(2) 《数据库系统概念》(原书第六版) Abraham

Silberschatz,Henry F. Korth,S. Sudarshan 著,杨冬青,

唐世渭等译,机械工业出版社,2012.

(3) 《数据库系统概论》第 4版,王珊,萨师煊编,高等教

育出版社,2006。

Page 469: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

469

四、课程简介

《数据库系统》课程是软件工程专业和网络工程专业基础课程之一。本课程旨在讲

授包括数据库系统基础概念、关系数据库、数据库设计及数据存储与事务管理基础四个

部分的内容,关注基础概念、理论与思想方法,同时注重在实践方面针对设计构思和基

本设计与应用技能的训练。

本课程通过设计案例介绍数据库设计过程中的设计方法,强调基本的设计原则,如

消除冗余、无损分解及函数依赖保持等;通过一个小型的数据集对关系数据库的数据查

询技术进行讲解与实践训练,强调关系查询语言中的核心原则。

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

② 掌握软件工程基础及专

业知识

(高级能力)掌握数据库的

基本概念、组成与系统架

构、了解查询实现与事务管

理的基本思想与方法。了解

数据流图、数组字典工程方

法描述系统需求。运用实体

-联系图等概念模型描述系

统数据概念结构,运用实体

-联系图转换规则转换得到

数据库逻辑结构。

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

③ 构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

(中级能力)运用关系规范

化理论对数据库逻辑结构

进行优化,运用关系数据库

查询语言实施数据库设计

方案

5. 使用现代工具:能够针

对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性

② 掌握开发、选择与使用

现代软件开发工具。

(初级能力)掌握一种主流

数据库管理系统的基本使

用和基本管理方法

Page 470: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

470

(二)教学目标

目标内容 具体目标

专业知识 掌握数据、数据库、数据库管理系统与数据库系统的概念区别

掌握数据模型分类、常用的概念模型类型及关系模型

掌握数据库系统的基本架构

了解数据库设计中的需求分析方法

掌握数据库概念结构设计方法

掌握数据库逻辑结构设计与关系规范化方法

了解数据库物理结构设计的过程与影响因素

了解查询实现与事务管理的基本思想与方法。

专业技能 了解使用数据流图及数据字典的方法

掌握使用 SQL 语言进行数据管理的方法

掌握使用关系代数构造查询的方法及关系代数与 SQL 语言的对应关系

掌握使用 ER 图进行数据库概念结构设计的方法

掌握运用转换规则将 ER 概念模型转换为关系逻辑模型的方法

掌握使用关系规范化理论进行关系模式判断及模式分解的方法

(三)教学任务

本课程将理论讲授与课上操作、实践教学环节相结合,使学生更深入地理解和掌握

数据库系统中的基本概念与基本方法,熟练运用实体-联系图、关系模型、关系代数、

SQL 语言、关系规范化理论及数据库设计方法,为后续的软件开发学习与实践做好充分

的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:数据库系统基础,关系数据库,数据库设计以及查询实现与

事务管理基础。

第一部分:数据库系统基础

学生要了解的基础知识:数据库相关基础概念;数据库系统的系统结构;数据模型

的概念与组成。

1.数据库相关基础概念

内容包括:数据、数据库、数据库管理系统和数据库系统的概念与区别,数据库系统

的特点与发展。

2.数据库系统的系统结构

内容包括:数据库系统的三层模式结构,数据库系统分层设计的作用、特点与意义。

Page 471: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

471

3.数据模型的概念与组成

内容包括:数据模型的基本概念,数据模型的分类,常用的概念模型。

第二部分:关系数据库

掌握关系模型相关概念,SQL语言,关系代数。

4.关系模型相关概念

内容包括:关系、关系模式、关系数据库、关系模型等相关概念,关系模型的组成

部分及其具体内容与关键概念。

5.SQL语言

内容包括:数据定义语言(DDL),数据操纵语言(DML),数据的完整性约束。

6.关系代数

内容包括:形式化关系查询语言的种类,关系代数的使用方法及其与 SQL语言的对

应方法。

第三部分:数据库设计

详细论述数据库设计的过程与思路。要求学生掌握数据库设计的流程、概念模型的

建模方法、概念模型转换为关系模型的方法、关系模型的范式判断方法与关系模式的分

解方法。

7.掌握数据库设计的流程

内容包括:数据库设计流程中各个步骤的工作内容和阶段生成物。

8.会使用 ER 模型针对数据需求建立概念模型

内容包括:区分和识别实体、联系和属性,区分联系的基数关系,针对不同类型属

性的建模方法。

9.会依据转换规则将 ER模型转换为关系模型

内容包括:实体、联系转换为关系模式的方法,冗余关系模式的处理

10.会依据关系规范化理论判断关系模式所满足的范式,并进行关系模式的分解

内容包括:数据依赖、函数依赖、范式的概念,依据函数依赖和范式判断关系模式

规范化程度的方法,无损分解和函数依赖保持的概念,关系模式无损分解的方法。

11. 了解数据库物理结构设计的内容。

内容包括:了解视图、索引、数据物理结构的概念。

第四部分:查询实现与事务管理基础

了解关系数据库管理系统中的查询处理过程,掌握事务的概念与应用方法,了解事

务在数据库管理系统运行过程中的作用。

12.了解关系系统中的查询处理过程

内容包括:查询处理的流程,数据字典的作用,代数优化及物理优化的概念。

13.掌握事务的概念与应用方法

内容包括:事务的概念与特点,事务控制语句

14.了解事务的应用场景与作用

内容包括:并发处理的潜在问题及并发控制的概念,数据库恢复的概念与基本思路。

Page 472: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

472

(二)实践教学内容及要求

序号 具体内容 要求 教学周 学时

1 数据库管理系统环

境与管理工具操作

方法实践

了解数据库管理系

统运行模式与管理

方法,掌握数据库管

理工具的使用方法

3 4

2 运用 SQL语句处理

数据管理请求

运用 SQL语句进行

较复杂数据查询,掌

握使用 SQL 语句进

行数据维护的方法

4-6 12

3 使用数据库建模工

具进行数据库设计

建模

了解数据库建模工

具的使用方法,并针

对具体案例完成建

模过程。

7 4

4 验证数据库恢复和

数据库并发控制方

了解运用备份与还

原等工具进行数据

恢复的方法,验证并

发执行存在的问题

及应用事务进行解

决的方法。

8 4

Page 473: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

473

七、实践教学实施计划表

序号 名称 教学

周 实践教学内容 实践教学目标

实施

方法 学时 考核方式 实践场所 实践类型

1 操作环境

实践 3

数据库管理系统环境与管理工具

操作方法

掌握 MS SQL Server

的基本使用

实践

教学 4 无 实验室 学习验证型

2 SQL 语言

初级开发 4

运用 SQL语句完成初级难度的数

据查询管理需求(双语)

完成初级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

1

实验室、课

下 综合性开发型

3 SQL 语言

中级开发 5

运用 SQL语句完成中级难度的数

据查询管理需求(双语)

完成中级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

2

实验室、课

下 综合性开发型

4 SQL 语言

高级开发 6

运用 SQL语句完成高级难度的数

据查询管理需求(双语)

完成高级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

3

实验室、课

下 综合性开发型

5 数据库设

计建模 7

数据库建模工具使用方法,针对

具体案例完成建模过程。

了解使用建模工具

进行数据库建模

实践

教学 4 无 实验室 学习验证型

6 数据库恢

复与并发 8

数据库管理系统进行数据备份与

还原的方法,并发执行存在的问

题及应用事务进行解决的方法。

了解数据库管理系

统进行数据备份与

还原的方法以及事

务处理语句

实践

教学 4 无 实验室 学习验证型

Page 474: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

474

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 掌握数据

库基础概念

数据、数据库、数据库管理系统和

数据库系统的概念与区别,数据库

系统的特点与发展。

1-②中级 掌握 讲授、

讨论 1 1

1.2 掌握数据

库系统结构

数据库系统的特点,数据库系统的

三层模式结构。 1-②中级 掌握

讲授、

讨论 1 1

1.3 掌握数据

模型的概念与

组成

数据模型的基本概念,数据模型的

分类,常用的概念模型。 1-②中级 掌握

讲授、

讨论 1 1

操作环境实践 数据库管理系统环境与管理工具操

作方法

1-②中级,

5-②初级 掌握 实践 4 4

2

2.1 掌握关系

模型概念

关系、关系模式、关系数据库、关

系模型等相关概念。

关系模型的组成部分及其具体内容

与关键概念

1-②中级 掌握 讲授、

讨论 2 2

Page 475: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

475

库 2.2 SQL语言基

SQL 的特点。

数据定义、数据修改。

基本的数据查询,分组查询,不相

关子查询,相关子查询。

3-③高级 了解/

掌握

讲授、

讨论 9 9

2.3 SQL语言进

查询语句中的各种连接方法。

视图管理方法。

完整性约束的类型及设置方法。

3-③高级 掌握 讲授、

讨论 4 4

2.4 关系代数

形式化关系查询语言的种类

关系代数

关系代数与 SQL 之间的关系

3-③高级 了解/

掌握

讲授、

讨论 2 2

初级 SQL 运用 SQL 语句完成初级难度的数

据查询管理需求(双语)

3-③高级,

5-②初级 运用

课后

作业 4 4

中级 SQL 运用 SQL 语句完成中级难度的数

据查询管理需求(双语)

3-③高级,

5-②初级 运用

课后

作业 4 4

高级 SQL 运用 SQL 语句完成高级难度的数

据查询管理需求(双语)

3-③高级,

5-②初级 运用

课后

作业 4 4

测试 A 关系代数(双语) 3-③高级 运用 随堂

测试

3

3.1 数据库设

计基础

数据库设计过程。

实体-联系模型的建模方法与转换

方法。

3-③高级 掌握/

分析

讲授、

讨论 2 2

Page 476: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

476

计 3.2数据库设

计理论

数据依赖、函数依赖、范式的概念,

依据函数依赖和范式判断关系模式

规范化程度的方法,无损分解和函

数依赖保持的概念,关系模式无损

分解的方法。

3-③高级 掌握/

分析

讲授、

讨论 5 5

3.2 数据库设

计实施

数据库物理结构设计的内容

实体-联系设计问题 3-③高级 了解

讲授、

讨论 1 1

数据库设计建

模实践

数据库建模工具使用方法,针对具

体案例完成建模过程 3-③高级 了解 练习 4 4

测试 B 数据库设计 ER建模 1-②中级 运用 随堂

测试

4

4.1 关系系统

查询处理

查询处理的流程,数据字典的作用,

代数优化及物理优化的概念。 1-②中级 了解

讲授、

讨论 1 1

4.2 数据库恢

复与事务

数据库恢复的概念,事务在数据库

恢复中的应用 1-②中级 掌握

讲授、

讨论 1 1

4.3 并发控制

与事务

本法处理的潜在问题及并发控制的

概念,事务在数据库并发控制中的

应用

1-②中级 掌握 讲授、

讨论 2 2

数据库恢复与

并发实践

数据库管理系统数据备份与还原的

方法,验证并发执行存在的问题及

应用事务进行解决的方法。

1-②中级 了解 练习 4 4

合计 32 24 56

Page 477: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

477

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程通过数据库的基础知识讲解、案

例分析以及操作实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手段,

最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

课后作业 1 初级 SQL 课后作业 第 4 周 6%

课后作业 2 中级 SQL 课后作业 第 5 周 6%

课后作业 3 高级 SQL 课后作业 第 6 周 6%

测验 A 关系代数 随堂测试 第 6 周 6%

测验 B 数据库设计 ER 建模 随堂测试 第 7 周 6%

终结性考核 期末考试 全部知识单元教学内容 试卷笔试 考试周 70 %

(二)命题要求

Page 478: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

478

考核项目 重点考核知识点、技能点 备注

课后作业 1 3-③高级能力,5-②初级能力 占总成绩 5%

课后作业 2 3-③高级能力,5-②初级能力 占总成绩 5%

课后作业 3 3-③高级能力,5-②初级能力 占总成绩 5%

测试 A 3-③高级能力,5-②初级能力 占总成绩 5%

测试 B 3-③高级能力,5-②初级能力 占总成绩 5%

期末考试 3-③高级能力、1-②中级能力、2-①初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

问答题:

个、%

应用题:

10 个、50%

论述题:

2 个、30%

计算题:

个、%

其 他:

个 %

试题难易程度

基本题: 30% 灵活题: 20% 综合题: 50%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 82.1 % )

备 注

Page 479: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

479

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,作业及平时测验完成情况优秀,最

终合计成绩在 90 分以上。

良好(89-80) 平时按时出勤,课堂表现认真,作业及平时测验全面且大部分正确,

最终合计成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,作业及平时测验全面且部分正确,

最终合计成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,作业及平时测

验不全面且部分正确,最终合计成绩在 60 分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业及平时测验不全面或不正

确,最终合计成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver2.0

制定人签字:单世民

审核人签字:单世民

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 4月

Page 480: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

480

2016 年教学大纲

一、课程基本信息

1. 课程编号: 1090430120

2. 课程中文名称: 数据库系统

3. 课程英文名称: Principles of Database Systems

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《离散数学》、《程序设计基础及 C程序设计》

9. 后继课程: 《数据库程序设计》《系统分析与设计》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 4 3 6

二、任课教师

单世民(副教授)、刘宇(教授)、原旭(副教授)、薛昕惟(讲师)、徐秀娟(讲师)

三、教材及主要参考资料

教 材: 《数据库系统概念(英文精编版,第 6 版)》 Abraham

Silberschatz, Henry F. Korth, S. Sudarshan,著, 杨冬

青改编,机械工业出版社,2013

参考资料: 《 Database System: A Practical Approach to Design,

Implementation, and Management》(Third Edition),Thomas

Connolly & Carolyn begg 编,电子工业出版社。

(2) 《 数 据 库 系 统 概 念 》( 原 书 第 六 版 ) Abraham

Silberschatz,Henry F. Korth,S. Sudarshan 著,杨冬青,

唐世渭等译,机械工业出版社,2012.

(3) 《数据库系统概论》第 4版,王珊,萨师煊编,高等教

育出版社,2006。

四、课程简介

《数据库系统》课程是软件工程专业和网络工程专业基础课程之一。本课程旨在讲

授包括数据库系统基础概念、关系数据库、数据库设计及数据存储与事务管理基础四个

Page 481: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

481

部分的内容,关注基础概念、理论与思想方法,同时注重在实践方面针对设计构思和基

本设计与应用技能的训练。

本课程通过设计案例介绍数据库设计过程中的设计方法,强调基本的设计原则,如

消除冗余、无损分解及函数依赖保持等;通过一个小型的数据集对关系数据库的数据查

询技术进行讲解与实践训练,强调关系查询语言中的核心原则。

五、课程目标

(一)课程培养能力体系(要求达成 3 个能力指标,每个指标需要明确达成的程度:初

级、中级、高级)

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

② 掌握软件工程基础及专

业知识

(高级能力)掌握数据库的

基本概念、组成与系统架

构、了解查询实现与事务管

理的基本思想与方法。了解

数据流图、数组字典工程方

法描述系统需求。运用实体

-联系图等概念模型描述系

统数据概念结构,运用实体

-联系图转换规则转换得到

数据库逻辑结构。

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

③ 构建符合规格及限制的

系统、组件,具备对设计及

开发出的系统与原定规格

及限制进行对比评估的能

(中级能力)运用关系规范

化理论对数据库逻辑结构

进行优化,运用关系数据库

查询语言实施数据库设计

方案

5. 使用现代工具:能够针

对复杂软件工程问题,开

发、选择与使用恰当的软件

工程的工具、系统分析与开

发方法、过程控制与管理方

法,包括对复杂软件工程问

题的预测与模拟,并能够理

解其局限性

② 掌握开发、选择与使用

现代软件开发工具。

(初级能力)掌握一种主流

数据库管理系统的基本使

用和基本管理方法

(二)教学目标

目标内容 具体目标

Page 482: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

482

专业知识 掌握数据、数据库、数据库管理系统与数据库系统的概念区别

掌握数据模型分类、常用的概念模型类型及关系模型

掌握数据库系统的基本架构

了解数据库设计中的需求分析方法

掌握数据库概念结构设计方法

掌握数据库逻辑结构设计与关系规范化方法

了解数据库物理结构设计的过程与影响因素

了解查询实现与事务管理的基本思想与方法。

专业技能 了解使用数据流图及数据字典的方法

掌握使用 SQL语言进行数据管理的方法

掌握使用关系代数构造查询的方法及关系代数与 SQL 语言的对应

关系

掌握使用 ER图进行数据库概念结构设计的方法

掌握运用转换规则将 ER概念模型转换为关系逻辑模型的方法

掌握使用关系规范化理论进行关系模式判断及模式分解的方法

(三)教学任务

本课程将理论讲授与课上操作、实践教学环节相结合,使学生更深入地理解和掌握

数据库系统中的基本概念与基本方法,熟练运用实体-联系图、关系模型、关系代数、

SQL 语言、关系规范化理论及数据库设计方法,为后续的软件开发学习与实践做好充分

的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:数据库系统基础,关系数据库,数据库设计以及查询实现与

事务管理基础。

第一部分:数据库系统基础

学生要了解的基础知识:数据库相关基础概念;数据库系统的系统结构;数据模型

的概念与组成。

1.数据库相关基础概念

内容包括:数据、数据库、数据库管理系统和数据库系统的概念与区别,数据库系统

的特点与发展。

2.数据库系统的系统结构

内容包括:数据库系统的三层模式结构,数据库系统分层设计的作用、特点与意义。

3.数据模型的概念与组成

内容包括:数据模型的基本概念,数据模型的分类,常用的概念模型。

第二部分:关系数据库

Page 483: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

483

掌握关系模型相关概念,SQL语言,关系代数。

4.关系模型相关概念

内容包括:关系、关系模式、关系数据库、关系模型等相关概念,关系模型的组成

部分及其具体内容与关键概念。

5.SQL语言

内容包括:数据定义语言(DDL),数据操纵语言(DML),数据的完整性约束。

6.关系代数

内容包括:形式化关系查询语言的种类,关系代数的使用方法及其与 SQL语言的对

应方法。

第三部分:数据库设计

详细论述数据库设计的过程与思路。要求学生掌握数据库设计的流程、概念模型的

建模方法、概念模型转换为关系模型的方法、关系模型的范式判断方法与关系模式的分

解方法。

7.掌握数据库设计的流程

内容包括:数据库设计流程中各个步骤的工作内容和阶段生成物。

8.会使用 ER 模型针对数据需求建立概念模型

内容包括:区分和识别实体、联系和属性,区分联系的基数关系,针对不同类型属

性的建模方法。

9.会依据转换规则将 ER模型转换为关系模型

内容包括:实体、联系转换为关系模式的方法,冗余关系模式的处理

10.会依据关系规范化理论判断关系模式所满足的范式,并进行关系模式的分解

内容包括:数据依赖、函数依赖、范式的概念,依据函数依赖和范式判断关系模式

规范化程度的方法,无损分解和函数依赖保持的概念,关系模式无损分解的方法。

11. 了解数据库物理结构设计的内容。

内容包括:了解视图、索引、数据物理结构的概念。

第四部分:查询实现与事务管理基础

了解关系数据库管理系统中的查询处理过程,掌握事务的概念与应用方法,了解事

务在数据库管理系统运行过程中的作用。

12.了解关系系统中的查询处理过程

内容包括:查询处理的流程,数据字典的作用,代数优化及物理优化的概念。

13.掌握事务的概念与应用方法

内容包括:事务的概念与特点,事务控制语句

14.了解事务的应用场景与作用

内容包括:并发处理的潜在问题及并发控制的概念,数据库恢复的概念与基本思路。

(二)实践教学内容及要求

序号 具体内容 要求 教学周 学时

1 数据库管理系统环 了解数据库管理系 3 4

Page 484: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

484

境与管理工具操作

方法实践

统运行模式与管理

方法,掌握数据库管

理工具的使用方法

2 运用 SQL语句处理

数据管理请求

运用 SQL语句进行

较复杂数据查询,掌

握使用 SQL 语句进

行数据维护的方法

4-6 12

3 使用数据库建模工

具进行数据库设计

建模

了解数据库建模工

具的使用方法,并针

对具体案例完成建

模过程。

7 4

4 验证数据库恢复和

数据库并发控制方

了解运用备份与还

原等工具进行数据

恢复的方法,验证并

发执行存在的问题

及应用事务进行解

决的方法。

8 4

Page 485: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

485

七、实践教学实施计划表

序号 名称 教学

周 实践教学内容 实践教学目标

实施

方法 学时 考核方式 实践场所 实践类型

1 操作环境

实践 3

数据库管理系统环境与管理工具

操作方法

掌握 MS SQL Server

的基本使用

实践

教学 4 无 实验室 学习验证型

2 SQL 语言

初级开发 4

运用 SQL语句完成初级难度的数

据查询管理需求(双语)

完成初级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

1

实验室、课

下 综合性开发型

3 SQL 语言

中级开发 5

运用 SQL语句完成中级难度的数

据查询管理需求(双语)

完成中级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

2

实验室、课

下 综合性开发型

4 SQL 语言

高级开发 6

运用 SQL语句完成高级难度的数

据查询管理需求(双语)

完成高级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

3

实验室、课

下 综合性开发型

5 数据库设

计建模 7

数据库建模工具使用方法,针对

具体案例完成建模过程。

了解使用建模工具

进行数据库建模

实践

教学 4 无 实验室 学习验证型

6 数据库恢

复与并发 8

数据库管理系统进行数据备份与

还原的方法,并发执行存在的问

题及应用事务进行解决的方法。

了解数据库管理系

统进行数据备份与

还原的方法以及事

务处理语句

实践

教学 4 无 实验室 学习验证型

Page 486: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

486

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 掌握数据

库基础概念

数据、数据库、数据库管理系统和

数据库系统的概念与区别,数据库

系统的特点与发展。

1-②中级 掌握 讲授、

讨论 1 1

1.2 掌握数据

库系统结构

数据库系统的特点,数据库系统的

三层模式结构。 1-②中级 掌握

讲授、

讨论 1 1

1.3 掌握数据

模型的概念与

组成

数据模型的基本概念,数据模型的

分类,常用的概念模型。 1-②中级 掌握

讲授、

讨论 1 1

操作环境实践 数据库管理系统环境与管理工具操

作方法

1-②中级,

5-②初级 掌握 实践 4 4

2

2.1 掌握关系

模型概念

关系、关系模式、关系数据库、关

系模型等相关概念。

关系模型的组成部分及其具体内容

与关键概念

1-②中级 掌握 讲授、

讨论 2 2

Page 487: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

487

库 2.2 SQL语言基

SQL 的特点。

数据定义、数据修改。

基本的数据查询,分组查询,不相

关子查询,相关子查询。

3-③高级 了解/

掌握

讲授、

讨论 9 9

2.3 SQL语言进

查询语句中的各种连接方法。

视图管理方法。

完整性约束的类型及设置方法。

3-③高级 掌握 讲授、

讨论 4 4

2.4 关系代数

形式化关系查询语言的种类

关系代数

关系代数与 SQL 之间的关系

3-③高级 了解/

掌握

讲授、

讨论 2 2

初级 SQL 运用 SQL 语句完成初级难度的数

据查询管理需求(双语)

3-③高级,

5-②初级 运用

课后

作业 4 2 4 2

中级 SQL 运用 SQL 语句完成中级难度的数

据查询管理需求(双语)

3-③高级,

5-②初级 运用

课后

作业 4 2 4 2

高级 SQL 运用 SQL 语句完成高级难度的数

据查询管理需求(双语)

3-③高级,

5-②初级 运用

课后

作业 4 2 4 2

测试 A 关系代数(双语) 3-③高级 运用 随堂

测试

3

3.1 数据库设

计基础

数据库设计过程。

实体-联系模型的建模方法与转换

方法。

3-③高级 掌握/

分析

讲授、

讨论 2 2

Page 488: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

488

计 3.2数据库设

计理论

数据依赖、函数依赖、范式的概念,

依据函数依赖和范式判断关系模式

规范化程度的方法,无损分解和函

数依赖保持的概念,关系模式无损

分解的方法。

3-③高级 掌握/

分析

讲授、

讨论 5 5

3.2 数据库设

计实施

数据库物理结构设计的内容

实体-联系设计问题 3-③高级 了解

讲授、

讨论 1 1

数据库设计建

模实践

数据库建模工具使用方法,针对具

体案例完成建模过程 3-③高级 了解 练习 4 4

测试 B 数据库设计 ER建模 1-②中级 运用 随堂

测试

4

4.1 关系系统

查询处理

查询处理的流程,数据字典的作用,

代数优化及物理优化的概念。 1-②中级 了解

讲授、

讨论 1 1

4.2 数据库恢

复与事务

数据库恢复的概念,事务在数据库

恢复中的应用 1-②中级 掌握

讲授、

讨论 1 1

4.3 并发控制

与事务

本法处理的潜在问题及并发控制的

概念,事务在数据库并发控制中的

应用

1-②中级 掌握 讲授、

讨论 2 2

数据库恢复与

并发实践

数据库管理系统数据备份与还原的

方法,验证并发执行存在的问题及

应用事务进行解决的方法。

1-②中级 了解 练习 4 4

合计 32 24 56 6

Page 489: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

489

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程通过数据库的基础知识讲解、案

例分析以及操作实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手段,

最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 2

分。

日常考核 5%

课后作业 1 初级 SQL 课后作业 第 4 周 5%

课后作业 2 中级 SQL 课后作业 第 5 周 5%

课后作业 3 高级 SQL 课后作业 第 6 周 5%

测验 A 关系代数 随堂测试 第 6 周 5%

测验 B 数据库设计 ER 建模 随堂测试 第 7 周 5%

终结性考核 期末考试 全部知识单元教学内容 试卷笔试 考试周 70 %

Page 490: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

490

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1 3-③高级能力,5-②初级能力 占总成绩 5%

课后作业 2 3-③高级能力,5-②初级能力 占总成绩 5%

课后作业 3 3-③高级能力,5-②初级能力 占总成绩 5%

测试 A 3-③高级能力,5-②初级能力 占总成绩 5%

测试 B 3-③高级能力,5-②初级能力 占总成绩 5%

期末考试 3-③高级能力、1-②中级能力、2-①初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

问答题:

个、%

应用题:

10个、50%

论述题:

2 个、30%

计算题:

个、%

其 他:

个 %

试题难易程度

基本题: 30% 灵活题: 20% 综合题: 50%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 82.1 % )

备 注

Page 491: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

491

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,作业及平时测验完成情况优秀,最

终合计成绩在 90 分以上。

良好(89-80) 平时按时出勤,课堂表现认真,作业及平时测验全面且大部分正确,

最终合计成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,作业及平时测验全面且部分正确,

最终合计成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,作业及平时测

验不全面且部分正确,最终合计成绩在 60 分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业及平时测验不全面或不正

确,最终合计成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver2.0

制定人签字:单世民

审核人签字:单世民

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

Page 492: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

492

Page 493: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

493

2015 年教学大纲

一、课程基本信息

1. 课程编号: 1090430120

2. 课程中文名称: 数据库系统

3. 课程英文名称: Principles of Database Systems

4. 课程性质: 必修课

5. 考核方式: 平时成绩 +期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 1学期

8. 先修课程: 《离散数学》、《程序设计基础及 C程序设计》

9. 后继课程: 《数据库程序设计》《系统分析与设计》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

56 32 24 4 3 6

二、任课教师

单世民(副教授)、刘宇(教授)、原旭(副教授)、薛昕惟(讲师)、徐秀娟(讲师)

三、教材及主要参考资料

教 材: 《数据库系统概念(英文精编版,第 6 版)》 Abraham

Silberschatz, Henry F. Korth, S. Sudarshan,著, 杨冬

青改编,机械工业出版社,2013

参考资料: 《 Database System: A Practical Approach to Design,

Implementation, and Management》(Third Edition),Thomas

Connolly & Carolyn begg 编,电子工业出版社。

(2) 《 数 据 库 系 统 概 念 》( 原 书 第 六 版 ) Abraham

Silberschatz,Henry F. Korth,S. Sudarshan 著,杨冬青,

唐世渭等译,机械工业出版社,2012.

(3) 《数据库系统概论》第 4版,王珊,萨师煊编,高等教

育出版社,2006。

四、课程简介

《数据库系统》课程是软件工程专业和网络工程专业基础课程之一。本课程旨在讲

授包括数据库系统基础概念、关系数据库、数据库设计及数据存储与事务管理基础四个

Page 494: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

494

部分的内容,关注基础概念、理论与思想方法,同时注重在实践方面针对设计构思和基

本设计与应用技能的训练。

本课程通过一个综合的设计案例,完整地介绍数据库设计过程中的设计方法,强调

基本的设计原则,如消除冗余、无损分解及函数依赖保持等;通过一个小型的数据集对

关系数据库的数据查询技术进行讲解与实践训练,强调关系查询语言中的核心原则。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将数学、

自然科学、工程基础和专业

知识用于解决复杂工程问

题。

②掌握软件工程基础及专

业知识

(高级能力)掌握数据库的

基本概念、组成与系统架

构、了解查询实现与事务管

理的基本思想与方法。

2.问题分析:能够应用数

学、自然科学和工程科学的

基本原理,识别、表达、并

通过文献研究分析复杂工

程问题,以获得有效结论。

②运用草稿、图表、流程表

等工程方法描述问题

(初级能力)了解数据流

图、数组字典工程方法描述

系统需求。运用实体-联系

图等概念模型描述系统数

据概念结构,运用实体-联

系图转换规则转换得到数

据库逻辑结构。

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

③构建符合规格及限制的

单元及系统

(中级能力)运用关系规范

化理论对数据库逻辑结构

进行优化,运用关系数据库

查询语言实施数据库设计

方案

(二)教学目标

目标内容 具体目标

专业知识 掌握数据、数据库、数据库管理系统与数据库系统的概念区别

掌握数据模型分类、常用的概念模型类型及关系模型

掌握数据库系统的基本架构

了解数据库设计中的需求分析方法

掌握数据库概念结构设计方法

掌握数据库逻辑结构设计与关系规范化方法

Page 495: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

495

了解数据库物理结构设计的过程与影响因素

了解查询实现与事务管理的基本思想与方法。

专业技能 了解使用数据流图及数据字典的方法

掌握使用 SQL语言进行数据管理的方法

掌握使用关系代数构造查询的方法及关系代数与 SQL 语言的对应

关系

掌握使用 ER图进行数据库概念结构设计的方法

掌握运用转换规则将 ER概念模型转换为关系逻辑模型的方法

掌握使用关系规范化理论进行关系模式判断及模式分解的方法

(三)教学任务

本课程将理论讲授与课上操作、实践教学环节相结合,使学生更深入地理解和掌握

数据库系统中的基本概念与基本方法,熟练运用实体-联系图、关系模型、关系代数、

SQL 语言、关系规范化理论及数据库设计方法,为后续的软件开发学习与实践做好充分

的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 4大部分:数据库系统基础,关系数据库,数据库设计以及查询实现与

事务管理基础。

第一部分:数据库系统基础

学生要了解的基础知识:数据库相关基础概念;数据库系统的系统结构;数据模型

的概念与组成。

1.数据库相关基础概念

内容包括:数据、数据库、数据库管理系统和数据库系统的概念与区别,数据库系统

的特点与发展。

2.数据库系统的系统结构

内容包括:数据库系统的三层模式结构,数据库系统分层设计的作用、特点与意义。

3.数据模型的概念与组成

内容包括:数据模型的基本概念,数据模型的分类,常用的概念模型。

第二部分:关系数据库

掌握关系模型相关概念,SQL语言,关系代数。

4.关系模型相关概念

内容包括:关系、关系模式、关系数据库、关系模型等相关概念,关系模型的组成

部分及其具体内容与关键概念。

5.SQL语言

内容包括:数据定义语言(DDL),数据操纵语言(DML),数据的完整性约束。

6.关系代数

Page 496: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

496

内容包括:形式化关系查询语言的种类,关系代数的使用方法及其与 SQL语言的对

应方法。

第三部分:数据库设计

详细论述数据库设计的过程与思路。要求学生掌握数据库设计的流程、概念模型的

建模方法、概念模型转换为关系模型的方法、关系模型的范式判断方法与关系模式的分

解方法。

7.掌握数据库设计的流程

内容包括:数据库设计流程中各个步骤的工作内容和阶段生成物。

8.会使用 ER 模型针对数据需求建立概念模型

内容包括:区分和识别实体、联系和属性,区分联系的基数关系,针对不同类型属

性的建模方法。

9.会依据转换规则将 ER模型转换为关系模型

内容包括:实体、联系转换为关系模式的方法,冗余关系模式的处理

10.会依据关系规范化理论判断关系模式所满足的范式,并进行关系模式的分解

内容包括:数据依赖、函数依赖、范式的概念,依据函数依赖和范式判断关系模式

规范化程度的方法,无损分解和函数依赖保持的概念,关系模式无损分解的方法。

11. 了解数据库物理结构设计的内容。

内容包括:了解视图、索引、数据物理结构的概念。

第四部分:查询实现与事务管理基础

了解关系数据库管理系统中的查询处理过程,掌握事务的概念与应用方法,了解事

务在数据库管理系统运行过程中的作用。

12.了解关系系统中的查询处理过程

内容包括:查询处理的流程,数据字典的作用,代数优化及物理优化的概念。

13.掌握事务的概念与应用方法

内容包括:事务的概念与特点,事务控制语句

14.了解事务的应用场景与作用

内容包括:并发处理的潜在问题及并发控制的概念,数据库恢复的概念与基本思路。

Page 497: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

497

(二)实践教学内容及要求

序号 具体内容 要求 教学周 学时

1 数据库管理系统环

境与管理工具操作

方法实践

了解数据库管理系

统运行模式与管理

方法,掌握数据库管

理工具的使用方法

3 4

2 运用 SQL语句处理

数据管理请求

运用 SQL语句进行

较复杂数据查询,掌

握使用 SQL 语句进

行数据维护的方法

4-6 12

3 使用数据库建模工

具进行数据库设计

建模

了解数据库建模工

具的使用方法,并针

对具体案例完成建

模过程。

7 4

4 验证数据库恢复和

数据库并发控制方

了解运用备份与还

原等工具进行数据

恢复的方法,验证并

发执行存在的问题

及应用事务进行解

决的方法。

8 4

Page 498: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

498

七、实践教学实施计划表

序号 名称 教学

周 实践教学内容 实践教学目标

实施

方法 学时 考核方式 实践场所 实践类型

1 操作环境

实践 3

数据库管理系统环境与管理工具

操作方法

掌握 MS SQL Server

的基本使用

实践

教学 4 无 实验室 学习验证型

2 SQL 语言

初级开发 4

运用 SQL语句完成初级难度的数

据查询管理需求(双语)

完成初级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

1

实验室、课

下 综合性开发型

3 SQL 语言

中级开发 5

运用 SQL语句完成中级难度的数

据查询管理需求(双语)

完成中级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

2

实验室、课

下 综合性开发型

4 SQL 语言

高级开发 6

运用 SQL语句完成高级难度的数

据查询管理需求(双语)

完成高级 SQL 语言

实践作业(双语)

实践

教学 4

课程作业

3

实验室、课

下 综合性开发型

5 数据库设

计建模 7

数据库建模工具使用方法,针对

具体案例完成建模过程。

了解使用建模工具

进行数据库建模

实践

教学 4 无 实验室 学习验证型

6 数据库恢

复与并发 8

数据库管理系统进行数据备份与

还原的方法,并发执行存在的问

题及应用事务进行解决的方法。

了解数据库管理系

统进行数据备份与

还原的方法以及事

务处理语句

实践

教学 4 无 实验室 学习验证型

Page 499: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

499

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 掌握数据

库基础概念

数据、数据库、数据库管理系统和

数据库系统的概念与区别,数据库

系统的特点与发展。

1-②中级 掌握 讲授、

讨论 1 1

1.2 掌握数据

库系统结构

数据库系统的特点,数据库系统的

三层模式结构。 1-②中级 掌握

讲授、

讨论 1 1

1.3掌握数据

模型的概念与

组成

数据模型的基本概念,数据模型的

分类,常用的概念模型。 1-②中级 掌握

讲授、

讨论 1 1

操作环境实践 数据库管理系统环境与管理工具操

作方法 1-②中级 掌握 实践 4 4

2

2.1 掌握关系

模型概念

关系、关系模式、关系数据库、关

系模型等相关概念。

关系模型的组成部分及其具体内容

与关键概念

1-②中级 掌握 讲授、

讨论 2 2

Page 500: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

500

库 2.2 SQL语言基

SQL 的特点。

数据定义、数据修改。

基本的数据查询,分组查询,不相

关子查询,相关子查询。

3-③高级 了解/

掌握

讲授、

讨论 9 9

2.3 SQL语言进

查询语句中的各种连接方法。

视图管理方法。

完整性约束的类型及设置方法。

3-③高级 掌握 讲授、

讨论 4 4

2.4 关系代数

形式化关系查询语言的种类

关系代数

关系代数与 SQL 之间的关系

3-③高级 了解/

掌握

讲授、

讨论 2 2

初级 SQL 运用 SQL 语句完成初级难度的数

据查询管理需求(双语) 3-③高级 运用

课后

作业 4 2 4 2

中级 SQL 运用 SQL 语句完成中级难度的数

据查询管理需求(双语) 3-③高级 运用

课后

作业 4 2 4 2

高级 SQL 运用 SQL 语句完成高级难度的数

据查询管理需求(双语) 3-③高级 运用

课后

作业 4 2 4 2

测试 A 关系代数(双语) 3-③高级 运用 随堂

测试

3

3.1 数据库设

计基础

数据库设计过程。

实体-联系模型的建模方法与转换

方法。

3-③高级 掌握/

分析

讲授、

讨论 2 2

Page 501: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

501

计 3.2数据库设

计理论

数据依赖、函数依赖、范式的概念,

依据函数依赖和范式判断关系模式

规范化程度的方法,无损分解和函

数依赖保持的概念,关系模式无损

分解的方法。

3-③高级 掌握/

分析

讲授、

讨论 5 5

3.2 数据库设

计实施

数据库物理结构设计的内容

实体-联系设计问题 3-③高级 了解

讲授、

讨论 1 1

数据库设计建

模实践

数据库建模工具使用方法,针对具

体案例完成建模过程 3-③高级 了解 练习 4 4

测试 B 数据库设计 ER建模 2-②高级 运用 随堂

测试

4

4.1 关系系统

查询处理

查询处理的流程,数据字典的作用,

代数优化及物理优化的概念。 1-②中级 了解

讲授、

讨论 1 1

4.2 数据库恢

复与事务

数据库恢复的概念,事务在数据库

恢复中的应用 1-②中级 掌握

讲授、

讨论 1 1

4.3 并发控制

与事务

本法处理的潜在问题及并发控制的

概念,事务在数据库并发控制中的

应用

1-②中级 掌握 讲授、

讨论 2 2

数据库恢复与

并发实践

数据库管理系统数据备份与还原的

方法,验证并发执行存在的问题及

应用事务进行解决的方法。

1-②中级 了解 练习 4 4

合计 32 24 56 6

Page 502: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

502

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程通过数据库的基础知识讲解、案

例分析以及操作实践,不断提升学生能力。以课堂讲授、课堂练习和测试、实验等手段,

最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为 4学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 1 分,旷课一次扣 2

分。

日常考核 5%

课后作业 1 初级 SQL 课后作业 第 4 周 5%

课后作业 2 中级 SQL 课后作业 第 5 周 5%

课后作业 3 高级 SQL 课后作业 第 6 周 5%

测验 A 关系代数 随堂测试 第 6 周 5%

测验 B 数据库设计 ER 建模 随堂测试 第 7 周 5%

终结性考核 期末考试 全部知识单元教学内容 试卷笔试 考试周 70 %

Page 503: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

503

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 1 3-③高级能力 占总成绩 5%

课后作业 2 3-③高级能力 占总成绩 5%

课后作业 3 3-③高级能力 占总成绩 5%

测试 A 3-③高级能力 占总成绩 5%

测试 B 3-③高级能力 占总成绩 5%

期末考试 3-③高级能力、1-②中级能力、2-②初级能力 占总成绩 70 %

(三)终结性考核安排

考试时间 100分钟 记分方式 ■百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20%

问答题:

个、%

应用题:

10个、50%

论述题:

2 个、30%

计算题:

个、%

其 他:

个 %

试题难易程度

基本题:30% 灵活题:20% 综合题:50%

其他:%

教学大纲

覆盖率

教学大纲覆盖率=含考题内容的学时/课程总学时数*100%=

(82.1% )

备注

Page 504: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

504

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,作业及平时测验完成情况优秀,最

终合计成绩在 90 分以上。

良好(89-80) 平时按时出勤,课堂表现认真,作业及平时测验全面且大部分正确,

最终合计成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,作业及平时测验全面且部分正确,

最终合计成绩在 70分以上。

合格(69-60) 平时除个别情况之外按时出勤,课堂表现比较认真,作业及平时测

验不全面且部分正确,最终合计成绩在 60 分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,作业及平时测验不全面或不正

确,最终合计成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:单世民

审核人签字:单世民

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015年 3月

Page 505: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

505

Page 506: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

506

《系统分析与设计》

2017 年教学大纲

一、课程基本信息

1. 课程编号: 1090440030

2. 课程中文名称: 系统分析与设计

3. 课程英文名称: System Analysis and Design

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《软件工程》、《UML》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 48 0 8 3 0

二、任课教师

林林(副教授)、马瑞新(副教授)、徐博(讲师)

三、教材及主要参考资料

教 材: 《信息系统工程》(第 3版). 唐九阳、葛斌、张翀等 编著. 电

子工业出版社. 2014.

参考资料: 《系统分析与设计方法》(第 7 版). Whitten, Bentley 著,

肖刚,孙慧译. 机械工业出版社

《系统分析与设计教材》(第 7 版). Shelly, Cashman,

Rosenblatt 著,史晟辉 等译.机械工业出版社

四、课程简介

《系统分析与设计》是软件工程专业大类课程之一。本课程旨在讲授包括现代系统

分析员、系统分析任务、系统设计任务及实施与支持四个部分的内容,既关注概念,重

Page 507: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

507

视方法,更注重实践。本课程通过两个具体、综合的系统项目运作,全过程地、完整地

介绍先进的系统分析与设计方法,在承认现实世界中开发环境多变的同时,强调永久价

值的基本原则。在强调传统结构化方法和面向对象方法的系统开发两方面的概念、技术、

建模的同时,加强对项目管理的作用和技术方面的介绍,指出在系统开发生命周期内要

关注现代结构分析,关注 RAD、RUP、基于 Web的开发、极限编程等最新技术。

五、课程目标

(一)课程培养能力体系

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂工程问

题。

③掌握计算机系统及网络

系统构成,并能够综合运用

上述专业知识解决软件工

程及应用领域的复杂工程

问题。

(初级能力)掌握计算机及

网络的基础知识,并在解决

复杂工程问题时能够使用

这些基础知识。

2. 问题分析:能够应用高

等数理基础、工程技术基

础、社会科学基础和软件工

程专业知识,识别、表达、

并通过文献研究分析软件

工程及应用领域的复杂工

程问题,以获得有效结论

②基于计算机系统和网络

系统组织与结构,设计软件

工程模型

(初级能力)掌握计算机体

系结构及网络系统结构,在

设计软件解决方案时能够

使用这些基础知识。

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

②掌握软件工程设计方法,

尤其是面向对象理论与方

法,能够通过统一建模语言

设计符合需求、具有创新性

的系统解决方案,同时识别

社会、健康、安全、法律、

文化以及环境等因素

(高级能力)了解软件开发

过程管理模型、ISO、CMMI

标准,掌握软件生命周期的

要素。对复杂工程问题的解

决方案进行分析,能够评价

对社会、健康、安全、法律

以及文化的影响

5.使用现代工具:能够针对

复杂工程问题,开发、选择

与使用恰当的技术、资源、

现代工程工具和信息技术

工具,包括对复杂工程问题

的预测与模拟,并能够理解

其局限性。

③ 对复杂工程问题进行预

测与模拟,并能够理解其局

限性

(初级能力)掌握复杂工程

问题分析方法,通过分析方

法对问题进行预测与模拟,

提出其局限性

7.环境和可持续发展:能够

理解和评价面向复杂软件

工程问题的系统开发中对

环境、社会可持续发展的影

①识别及预测软件开发、实

施、维护中可能出现问题,

具备应对突发事件和危机

的能力,能够洞悉或预测软

(初级能力)了解软件危机

分析及预测的方法,掌握相

对应的解决工具、技术及步

骤。

Page 508: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

508

响。 件开发、软件实施、软件维

护中可能出现的问题,并采

取恰当的应对措施。

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并在多学科环境中应

用。

③ 在多学科环境中运用项

目管理方法

(中级能力)能够根据跨学

科案例,了解运用项目管理

方法。

(二)教学目标

目标内容 具体目标

专业知识 了解系统分析员的角色

了解系统开发模型

掌握需求分析方法

掌握系统宏观设计方法

掌握系统详细设计方法

掌握系统测试与实现方法

了解系统集成、项目管理方法

专业技能 掌握使用数据流图方法

掌握使用数据字典分析系统方法

掌握描述过程规范和结构化决策方法

掌握数据库设计方法

掌握基于 UML 的面向对象系统分析与设计方法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解和掌

握系统分析与设计的基本方法,熟练应用数据流图、数据字典、数据库设计、基于 UML

的面向对象系统分析与设计方法,在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 5大部分:系统分析基础,信息需求分析,分析过程,设计基础,以及

软件工程与实现。

第一部分:系统分析基础

学生要了解的基础知识:分析员要做些什么工作;各种新兴信息系统如何适应组织

的需要;如何确定一个系统项目是否值得承接;商业项目管理的最新内容;以及如何用

专门的软件工具管理系统项目。

1.了解系统分析员的角色

内容包括:系统类型,系统集成技术,系统分析与设计的必要性,系统分析员的角

Page 509: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

509

色,系统开发生命期,使用 CASE工具,高级 CASE和低级 CASE,面向对象系统分析与设

计,敏捷方法和其他可供选择的方法

2.了解组织风格及其对信息系统的影响

内容包括:组织作为系统,系统的图形化描述方法,用例建模,管理的层次,组织

文化

3.了解项目管理基本内容

内容包括:项目启动,确定可行性,活动规划和控制,基于计算机的项目进度安排,

功能点分析,管理分析与设计活动,敏捷开发

第二部分:信息需求分析

会运用系统的和结构化的方法执行信息需求分析。重视分析有助于分析员确保在设

计系统之前解决正确的问题。

4.掌握交互式方法信息收集

内容包括:面谈,联合应用程序设计,使用问卷调查表

5.掌握非干扰性方法信息收集

内容包括:采样,调查,观察决策者的行为,观察物理环境

6.掌握敏捷建模和原型化方法

内容包括:原型化方法,原型的开发,用户在原型化方法中的角色,快速应用程序

开发,敏捷建模,敏捷建模与结构化方法的比较

第三部分:分析过程

详细论述分析过程。本部分建立在前两部分基础上,使学生接触数据流分析及结构

化和半结构决策。要求学生逐步掌握如何在绘制数据流图(DFD)时运用结构化技术。

7.会使用数据流图

内容包括:需求确定的数据流方法,开发数据流图,逻辑数据流图和物理数据流图,

创建物理数据流图,第 2个数据流图实例,分割 Web 站点,使用数据流图进行沟通

8.会使用数据字典分析系统

内容包括:数据字典,数据存储库,创建数据字典,使用数据字典

9.会描述过程规范和结构化决策

内容包括:过程规范概述,结构化英语,决策表,决策树,选择一种结构化决策分

析技术,物理过程规范和逻辑过程规范

10.了解如何准备系统

内容包括:确定硬件和软件的需求,识别和预测成本和效益,成本和效益比较,系

统建议,陈述系统建议

第四部分:设计基础

介绍设计基础。本部分从设计输出开始,因为许多业内人士认为系统是输出驱动的。

详细讨论了基于 Web的窗体设计;特别注意输出方法与内容的关联,输出对用户的影响,

以及设计良好的窗体和屏幕显示。

11.掌握设计有效的输出

内容包括:输出设计的目标,将输出内容与输出方式联系起来,认识到输出偏差对

用户的影响,设计屏幕输出,设计 Web 站点,输出生产和 XML

Page 510: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

510

12.掌握设计有效的输入

内容包括:良好的表单设计,良好的屏幕和 Web 窗体设计,内联网和互联网网页设

13.掌握数据库设计

内容包括:数据库,数据概念,规范化,主文件/数据库关系设计指导原则,使用

数据库,反规范化,数据仓库

14.了解人机交互

内容包括:理解人机交互,用户界面的类型,对话设计的指导原则,为用户提供反

馈,电子商务网站设计时要考虑的特殊因素,mash up,设计查询

15.了解设计准确的数据输入规程

内容包括:有效的编码,快速而高效的数据获取,通过输入有效性检查保证数据的

质量,电子商务环境中的准确性优势

第五部分:软件工程与实现

介绍作为实现高质量系统的方法的结构化软件工程和编程技术。

16.掌握基于 UML 的面向对象系统分析与设计

内容包括:面向对象概念,CRC 卡片和对象思考,UML 的概念和图,用例建模,活

动图,顺序图和通信图,类图,状态图,包和其他 UML 制品,UML实践,使用 UML进行

建模的重要性

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,进行系统

需求分析

提出系统需求方案,

同时考虑社会、环境

等因素

4 2 课后作业

2 运用数据流图、数

据字典、UML 等软

件工程方法设计系

统架构

掌握系统分析与设

计全过程中的开发

工具,

8 4-10 课后作业

3 构建系统宏观架

构,实现系统详细

设计

实现系统需求、设计

具有创新、考虑社

会、环境等因素

Page 511: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

511

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 2

面向具有工程背景

的案例,进行系统

需求分析

完成系统

分析报告 实践教学 4 课程作业

课堂、

课下

综合型试

2 框架设计 单元项目 4

运用开发工具和

UML 软件工程方法、

进行设计系统架构

设计

完成系统

框架设计

报告

实践教学 4 课程作业 课堂、

课下

综合型试

3 详细设计 单元项目 6

运用开发工具和

UML 软件工程方法、

进行设计系统详细

设计

完成系统

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 8

评价实施方案,考

虑创新性、社会、

法律等影响

完成系统

测试与实

施报告

实践教学 2 课程作业 课堂、

课下

综合型试

Page 512: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

512

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 了解系统

分析员的角色

系统类型,系统集成技术,系统分

析与设计的必要性,系统分析员的

角色,系统开发生命期,使用 CASE

工具,高级 CASE和低级 CASE,面向

对象系统分析与设计,敏捷方法和

其他可供选择的方法

1-③初级

2-②初级

7-①初级

了解 讲授、

讨论 2 2

1.2 了解组织

风格及其对信

息系统的影响

组织作为系统,系统的图形化描述

方法,用例建模,管理的层次,组

织文化

1-③初级

2-②初级

7-①初级

了解 讲授、

讨论 2 2

1.3 了解项目

管理基本内容

项目启动,确定可行性,活动规划

和控制,基于计算机的项目进度安

排,功能点分析,管理分析与设计

活动,敏捷开发

7-①初级

11-③中级 掌握

讲授、

讨论 2 2

2

2.1 掌握交互

式方法信息收

面谈,联合应用程序设计,使用问

卷调查表

2-②初级

5-③初级 了解

讲授、

讨论 2 1

Page 513: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

513

2.2 掌握非干

扰性方法信息

收集

采样,调查,观察决策者的行为,

观察物理环境

2-②初级

5-③初级 了解

讲授、

讨论 2 1

2.3 掌握敏捷

建模和原型化

方法

原型化方法,原型的开发,用户在

原型化方法中的角色,快速应用程

序开发,敏捷建模,敏捷建模与结

构化方法的比较

1-③初级

3-②高级

5-③初级

掌握 讲授、

讨论 2

测试 A 1-③初级

5-③初级

随堂

测试 2 2

需求分析 面向具有工程背景的案例,进行系

统需求分析

3-②高级

5-③初级

掌握/

运用/

分析

讨论 课后

作业 2 2

3

分析

过程

3.1 会使用数

据字典分析系

数据字典,数据存储库,创建数据

字典,使用数据字典

2-②初级

5-③初级

掌握/

运用/

分析

讲授、

讨论 2 2

3.2 会描述过

程规范和结构

化决策

过程规范概述,结构化英语,决策

表,决策树,选择一种结构化决策

分析技术,物理过程规范和逻辑过

程规范

2-②初级

3-②高级

掌握/

运用/

分析

讲授、

讨论 4 4

3.3 了解如何

准备系统

确定硬件和软件的需求,识别和预

测成本和效益,成本和效益比较,

系统建议,陈述系统建议

2-②初级

7-①初级 了解

讲授、

讨论 4 4

Page 514: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

514

测试 B 2-②初级

5-③初级

随堂

测试

框架设计 运用开发工具和 UML软件工程方法、

进行设计系统架构设计

3-②高级

5-③初级

课后

作业 2 2

4

设计

基础

4.1 掌握设计

有效的输出

输出设计的目标,将输出内容与输

出方式联系起来,认识到输出偏差

对用户的影响,设计屏幕输出,设

计 Web站点,输出生产和 XML

2-②初级

5-③初级 掌握

讲授、

讨论 4 4

4.2 掌握设计

有效的输入

良好的表单设计,良好的屏幕和 Web

窗体设计,内联网和互联网网页设

2-②初级

5-③初级 掌握

讲授、

讨论 4 4

4.3 掌握数据

库设计

数据库,数据概念,规范化,主文

件/数据库关系设计指导原则,使

用数据库,反规范化,数据仓库

2-②初级

5-③初级

掌握/

运用/

分析

讲授、

讨论 4 4

4.4 了解人机

交互

了解人机交互,用户界面的类型,

对话设计的指导原则,为用户提供

反馈,电子商务网站设计时要考虑

的特殊因素,mash up,设计查询

2-②初级

5-③初级

7-①初级

了解 讲授、

讨论 4 4

4.5 了解设计

准确的数据输

入规程

有效的编码,快速而高效的数据获

取,通过输入有效性检查保证数据

的质量,电子商务环境中的准确性

优势

2-②初级

5-③初级

7-①初级

了解 讲授、

讨论 4 4

测试 C 2-②初级

5-③初级

随堂

测试 2 2

Page 515: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

515

详细设计 运用开发工具和 UML 软件工程方

法、进行设计系统详细设计

2-②初级

5-③初级

课后

作业 4 4

5

软件

工程

与实

5. 掌握基于

UML的面向对

象系统分析与

设计

面向对象概念,CRC 卡片和对象思

考,UML的概念和图,用例建模,活

动图,顺序图和通信图,类图,状

态图,包和其他 UML制品,UML实践,

使用 UML进行建模的重要性

5-③初级

11-③中级 掌握

讲授、

讨论 4 4

测试 D 6-②高级

11-③中级

随堂

测试

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

法律等影响

3-②高级

5-③初级

7-①初级

11-③中级

课后

作业 4 4

合计 48 48

Page 516: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

516

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业 系统分析 第 4 周 15%

课后作业 系统设计 第 8 周 15%

测验 A 系统分析基础 第 2 周 5%

测验 B 信息需求分析及分析过

程 第 4 周 5%

测验 C 系统设计基础 第 6 周 5%

测验 D 软件工程与实现 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 50 %

Page 517: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

517

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 3-②高级、5-③初级 占总成绩 15%

课后作业 3-②高级、5-③初级 占总成绩 15%

测试 A 1-③初级、5-③初级 占总成绩 5%

测试 B 2-②初级、5-③初级 占总成绩 5%

测试 C 2-②初级、5-③初级 占总成绩 5%

测试 D 6-②高级、11-③中级 占总成绩 5%

期末考试 1-③初级、2-②初级、3-②高级、7-①初级、11-③

中级 占总成绩 50 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20 分

问答题:

5 个、10%

应用题:

7 个、35%

论述题:

3 个、30%

计算题:

1 个、5%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

Page 518: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

518

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:马瑞新

审核人签字:马瑞新

专业负责人签字:孔维强

主管院长:江贺

制定日期:2017年 3月

2016 年教学大纲

一、课程基本信息

Page 519: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

519

1. 课程编号: 1090440030

2. 课程中文名称: 系统分析与设计

3. 课程英文名称: System Analysis and Design

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2学期

8. 先修课程: 《软件工程》、《UML》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

48 30 18 8 3 8

二、任课教师

林林(副教授)、马瑞新(副教授)、徐博(讲师)

三、教材及主要参考资料

教 材: 《信息系统工程》(第 3版). 唐九阳、葛斌、张翀等 编著. 电

子工业出版社. 2014.

参考资料: 《系统分析与设计方法》(第 7版). Whitten, Bentley 著,肖

刚,孙慧译. 机械工业出版社

《系统分析与设计教材》(第 7 版). Shelly, Cashman,

Rosenblatt 著,史晟辉 等译.机械工业出版社

四、课程简介

《系统分析与设计》是软件工程专业大类课程之一。本课程旨在讲授包括现代系统

分析员、系统分析任务、系统设计任务及实施与支持四个部分的内容,既关注概念,重

视方法,更注重实践。本课程通过两个具体、综合的系统项目运作,全过程地、完整地

介绍先进的系统分析与设计方法,在承认现实世界中开发环境多变的同时,强调永久价

值的基本原则。在强调传统结构化方法和面向对象方法的系统开发两方面的概念、技术、

建模的同时,加强对项目管理的作用和技术方面的介绍,指出在系统开发生命周期内要

关注现代结构分析,关注 RAD、RUP、基于 Web的开发、极限编程等最新技术。

五、课程目标

(一)课程培养能力体系

Page 520: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

520

1级能力指标 2级能力指标 课程培养能力指标

1.工程知识:能够将高等数

理基础、工程技术基础、社

会科学基础和软件工程专

业知识用于解决软件工程

及应用领域的复杂工程问

题。

③掌握计算机系统及网络

系统构成,并能够综合运用

上述专业知识解决软件工

程及应用领域的复杂工程

问题。

(初级能力)掌握计算机及

网络的基础知识,并在解决

复杂工程问题时能够使用

这些基础知识。

2. 问题分析:能够应用高

等数理基础、工程技术基

础、社会科学基础和软件工

程专业知识,识别、表达、

并通过文献研究分析软件

工程及应用领域的复杂工

程问题,以获得有效结论

②基于计算机系统和网络

系统组织与结构,设计软件

工程模型

(初级能力)掌握计算机体

系结构及网络系统结构,在

设计软件解决方案时能够

使用这些基础知识。

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

②掌握软件工程设计方法,

尤其是面向对象理论与方

法,能够通过统一建模语言

设计符合需求、具有创新性

的系统解决方案,同时识别

社会、健康、安全、法律、

文化以及环境等因素

(高级能力)了解软件开发

过程管理模型、ISO、CMMI

标准,掌握软件生命周期的

要素。对复杂工程问题的解

决方案进行分析,能够评价

对社会、健康、安全、法律

以及文化的影响

5.使用现代工具:能够针对

复杂工程问题,开发、选择

与使用恰当的技术、资源、

现代工程工具和信息技术

工具,包括对复杂工程问题

的预测与模拟,并能够理解

其局限性。

③ 对复杂工程问题进行预

测与模拟,并能够理解其局

限性

(初级能力)掌握复杂工程

问题分析方法,通过分析方

法对问题进行预测与模拟,

提出其局限性

7.环境和可持续发展:能够

理解和评价面向复杂软件

工程问题的系统开发中对

环境、社会可持续发展的影

响。

①识别及预测软件开发、实

施、维护中可能出现问题,

具备应对突发事件和危机

的能力,能够洞悉或预测软

件开发、软件实施、软件维

护中可能出现的问题,并采

取恰当的应对措施。

(初级能力)了解软件危机

分析及预测的方法,掌握相

对应的解决工具、技术及步

骤。

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并在多学科环境中应

用。

③ 在多学科环境中运用项

目管理方法

(中级能力)能够根据跨学

科案例,了解运用项目管理

方法。

(二)教学目标

目标内容 具体目标

Page 521: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

521

专业知识 了解系统分析员的角色

了解系统开发模型

掌握需求分析方法

掌握系统宏观设计方法

掌握系统详细设计方法

掌握系统测试与实现方法

了解系统集成、项目管理方法

专业技能 掌握使用数据流图方法

掌握使用数据字典分析系统方法

掌握描述过程规范和结构化决策方法

掌握数据库设计方法

掌握基于 UML的面向对象系统分析与设计方法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解和掌

握系统分析与设计的基本方法,熟练应用数据流图、数据字典、数据库设计、基于 UML

的面向对象系统分析与设计方法,在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 5大部分:系统分析基础,信息需求分析,分析过程,设计基础,以及

软件工程与实现。

第一部分:系统分析基础

学生要了解的基础知识:分析员要做些什么工作;各种新兴信息系统如何适应组织

的需要;如何确定一个系统项目是否值得承接;商业项目管理的最新内容;以及如何用

专门的软件工具管理系统项目。

1.了解系统分析员的角色

内容包括:系统类型,系统集成技术,系统分析与设计的必要性,系统分析员的角

色,系统开发生命期,使用 CASE工具,高级 CASE和低级 CASE,面向对象系统分析与设

计,敏捷方法和其他可供选择的方法

2.了解组织风格及其对信息系统的影响

内容包括:组织作为系统,系统的图形化描述方法,用例建模,管理的层次,组织

文化

3.了解项目管理基本内容

内容包括:项目启动,确定可行性,活动规划和控制,基于计算机的项目进度安排,

功能点分析,管理分析与设计活动,敏捷开发

第二部分:信息需求分析

Page 522: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

522

会运用系统的和结构化的方法执行信息需求分析。重视分析有助于分析员确保在设

计系统之前解决正确的问题。

4.掌握交互式方法信息收集

内容包括:面谈,联合应用程序设计,使用问卷调查表

5.掌握非干扰性方法信息收集

内容包括:采样,调查,观察决策者的行为,观察物理环境

6.掌握敏捷建模和原型化方法

内容包括:原型化方法,原型的开发,用户在原型化方法中的角色,快速应用程序

开发,敏捷建模,敏捷建模与结构化方法的比较

第三部分:分析过程

详细论述分析过程。本部分建立在前两部分基础上,使学生接触数据流分析及结构

化和半结构决策。要求学生逐步掌握如何在绘制数据流图(DFD)时运用结构化技术。

7.会使用数据流图

内容包括:需求确定的数据流方法,开发数据流图,逻辑数据流图和物理数据流图,

创建物理数据流图,第 2个数据流图实例,分割 Web 站点,使用数据流图进行沟通

8.会使用数据字典分析系统

内容包括:数据字典,数据存储库,创建数据字典,使用数据字典

9.会描述过程规范和结构化决策

内容包括:过程规范概述,结构化英语,决策表,决策树,选择一种结构化决策分

析技术,物理过程规范和逻辑过程规范

10.了解如何准备系统

内容包括:确定硬件和软件的需求,识别和预测成本和效益,成本和效益比较,系

统建议,陈述系统建议

第四部分:设计基础

介绍设计基础。本部分从设计输出开始,因为许多业内人士认为系统是输出驱动的。

详细讨论了基于 Web的窗体设计;特别注意输出方法与内容的关联,输出对用户的影响,

以及设计良好的窗体和屏幕显示。

11.掌握设计有效的输出

内容包括:输出设计的目标,将输出内容与输出方式联系起来,认识到输出偏差对

用户的影响,设计屏幕输出,设计 Web 站点,输出生产和 XML

12.掌握设计有效的输入

内容包括:良好的表单设计,良好的屏幕和 Web 窗体设计,内联网和互联网网页设

13.掌握数据库设计

内容包括:数据库,数据概念,规范化,主文件/数据库关系设计指导原则,使用

数据库,反规范化,数据仓库

14.了解人机交互

内容包括:理解人机交互,用户界面的类型,对话设计的指导原则,为用户提供反

馈,电子商务网站设计时要考虑的特殊因素,mash up,设计查询

Page 523: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

523

15.了解设计准确的数据输入规程

内容包括:有效的编码,快速而高效的数据获取,通过输入有效性检查保证数据的

质量,电子商务环境中的准确性优势

第五部分:软件工程与实现

介绍作为实现高质量系统的方法的结构化软件工程和编程技术。

16.掌握基于 UML 的面向对象系统分析与设计

内容包括:面向对象概念,CRC 卡片和对象思考,UML 的概念和图,用例建模,活

动图,顺序图和通信图,类图,状态图,包和其他 UML 制品,UML实践,使用 UML进行

建模的重要性

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,进行系统

需求分析

提出系统需求方案,

同时考虑社会、环境

等因素

4 2 课后作业

2 运用数据流图、数

据字典、UML 等软

件工程方法设计系

统架构

掌握系统分析与设

计全过程中的开发

工具,

8 4-10 课后作业

3 构建系统宏观架

构,实现系统详细

设计

实现系统需求、设计

具有创新、考虑社

会、环境等因素

Page 524: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

524

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 2

面向具有工程背景

的案例,进行系统

需求分析

完成系统

分析报告 实践教学 4 课程作业

课堂、

课下

综合型试

2 框架设计 单元项目 4

运用开发工具和

UML 软件工程方法、

进行设计系统架构

设计

完成系统

框架设计

报告

实践教学 4 课程作业 课堂、

课下

综合型试

3 详细设计 单元项目 6

运用开发工具和

UML 软件工程方法、

进行设计系统详细

设计

完成系统

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 8

评价实施方案,考

虑创新性、社会、

法律等影响

完成系统

测试与实

施报告

实践教学 2 课程作业 课堂、

课下

综合型试

Page 525: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

525

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 了解系统

分析员的角色

系统类型,系统集成技术,系统分

析与设计的必要性,系统分析员的

角色,系统开发生命期,使用 CASE

工具,高级 CASE和低级 CASE,面向

对象系统分析与设计,敏捷方法和

其他可供选择的方法

1-③初级

2-②初级

7-①初级

了解 讲授、

讨论 2 2

1.2 了解组织

风格及其对信

息系统的影响

组织作为系统,系统的图形化描述

方法,用例建模,管理的层次,组

织文化

1-③初级

2-②初级

7-①初级

了解 讲授、

讨论 2 2

1.3 了解项目

管理基本内容

项目启动,确定可行性,活动规划

和控制,基于计算机的项目进度安

排,功能点分析,管理分析与设计

活动,敏捷开发

7-①初级

11-③中级 掌握

讲授、

讨论 2 2

2

2.1 掌握交互

式方法信息收

面谈,联合应用程序设计,使用问

卷调查表

2-②初级

5-③初级 了解

讲授、

讨论 2 1

Page 526: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

526

2.2 掌握非干

扰性方法信息

收集

采样,调查,观察决策者的行为,

观察物理环境

2-②初级

5-③初级 了解

讲授、

讨论 2 1

2.3 掌握敏捷

建模和原型化

方法

原型化方法,原型的开发,用户在

原型化方法中的角色,快速应用程

序开发,敏捷建模,敏捷建模与结

构化方法的比较

1-③初级

3-②高级

5-③初级

掌握 讲授、

讨论 2

测试 A 1-③初级

5-③初级

随堂

测试 2

需求分析 面向具有工程背景的案例,进行系

统需求分析

3-②高级

5-③初级

掌握/

运用/

分析

讨论 课后

作业 2 2 2 2 2

3

分析

过程

3.1 会使用数

据字典分析系

数据字典,数据存储库,创建数据

字典,使用数据字典

2-②初级

5-③初级

掌握/

运用/

分析

讲授、

讨论 2 1

3.2 会描述过

程规范和结构

化决策

过程规范概述,结构化英语,决策

表,决策树,选择一种结构化决策

分析技术,物理过程规范和逻辑过

程规范

2-②初级

3-②高级

掌握/

运用/

分析

讲授、

讨论 4 2

3.3 了解如何

准备系统

确定硬件和软件的需求,识别和预

测成本和效益,成本和效益比较,

系统建议,陈述系统建议

2-②初级

7-①初级 了解

讲授、

讨论 4 1

Page 527: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

527

测试 B 2-②初级

5-③初级

随堂

测试

框架设计 运用开发工具和 UML软件工程方法、

进行设计系统架构设计

3-②高级

5-③初级

课后

作业 2 2 4 2 4

4

设计

基础

4.1 掌握设计

有效的输出

输出设计的目标,将输出内容与输

出方式联系起来,认识到输出偏差

对用户的影响,设计屏幕输出,设

计 Web站点,输出生产和 XML

2-②初级

5-③初级 掌握

讲授、

讨论 4 1

4.2 掌握设计

有效的输入

良好的表单设计,良好的屏幕和 Web

窗体设计,内联网和互联网网页设

2-②初级

5-③初级 掌握

讲授、

讨论 4 1

4.3 掌握数据

库设计

数据库,数据概念,规范化,主文

件/数据库关系设计指导原则,使

用数据库,反规范化,数据仓库

2-②初级

5-③初级

掌握/

运用/

分析

讲授、

讨论 4 2

4.4 了解人机

交互

了解人机交互,用户界面的类型,

对话设计的指导原则,为用户提供

反馈,电子商务网站设计时要考虑

的特殊因素,mash up,设计查询

2-②初级

5-③初级

7-①初级

了解 讲授、

讨论 4 1

4.5 了解设计

准确的数据输

入规程

有效的编码,快速而高效的数据获

取,通过输入有效性检查保证数据

的质量,电子商务环境中的准确性

优势

2-②初级

5-③初级

7-①初级

了解 讲授、

讨论 4 1

测试 C 2-②初级

5-③初级

随堂

测试 2

Page 528: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

528

详细设计 运用开发工具和 UML 软件工程方

法、进行设计系统详细设计

2-②初级

5-③初级

课后

作业 4 4 4 4 4

5

软件

工程

与实

5. 掌握基于

UML的面向对

象系统分析与

设计

面向对象概念,CRC 卡片和对象思

考,UML的概念和图,用例建模,活

动图,顺序图和通信图,类图,状

态图,包和其他 UML制品,UML实践,

使用 UML进行建模的重要性

5-③初级

11-③中级 掌握

讲授、

讨论 4 2

测试 D 6-②高级

11-③中级

随堂

测试

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

法律等影响

3-②高级

5-③初级

7-①初级

11-③中级

课后

作业 4 2 2 2 2

合计 48 10 10 48 12

Page 529: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

529

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业 系统分析 第 4 周 15%

课后作业 系统设计 第 8 周 15%

测验 A 系统分析基础 第 2 周 5%

测验 B 信息需求分析及分析过

程 第 4 周 5%

测验 C 系统设计基础 第 6 周 5%

测验 D 软件工程与实现 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 50 %

Page 530: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

530

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 3-②高级、5-③初级 占总成绩 15%

课后作业 3-②高级、5-③初级 占总成绩 15%

测试 A 1-③初级、5-③初级 占总成绩 5%

测试 B 2-②初级、5-③初级 占总成绩 5%

测试 C 2-②初级、5-③初级 占总成绩 5%

测试 D 6-②高级、11-③中级 占总成绩 5%

期末考试 1-③初级、2-②初级、3-②高级、7-①初级、11-③

中级 占总成绩 50 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20分

问答题:

5个、10%

应用题:

7个、35%

论述题:

3 个、30%

计算题:

1个、5%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

Page 531: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

531

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:马瑞新

审核人签字:马瑞新

专业负责人签字:孔维强

主管院长:江贺

制定日期:2016年 12月

2015 年教学大纲

一、课程基本信息

Page 532: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

532

1. 课程编号: 1090440030

2. 课程中文名称: 系统分析与设计

3. 课程英文名称: System Analysis and Design

4. 课程性质: 必修课

5. 考核方式: 平时成绩 + 期末考试

6. 开课专业: 软件工程专业

7. 开课学期: 第三学年第 2 学期

8. 先修课程: 《软件工程》、《UML》

9. 后继课程: 《软件开发案例分析》

10. 学时安排:

总学时 理论教学 实践教学 周学时 学分 课外学时

32 24 8 8 2 8

二、任课教师

林林(副教授)、马瑞新(副教授)、徐博(讲师)

三、教材及主要参考资料

教 材: 《信息系统工程》(第 3 版). 唐九阳、葛斌、张翀等 编著. 电

子工业出版社. 2014.

参考资料: 《系统分析与设计方法》(第 7 版). Whitten, Bentley 著,肖刚,

孙慧译. 机械工业出版社

《系统分析与设计教材》(第 7 版). Shelly, Cashman, Rosenblatt

著,史晟辉 等译.机械工业出版社

四、课程简介

《系统分析与设计》是软件工程专业大类课程之一。本课程旨在讲授包括现代系统

分析员、系统分析任务、系统设计任务及实施与支持四个部分的内容,既关注概念,重

视方法,更注重实践。本课程通过两个具体、综合的系统项目运作,全过程地、完整地

介绍先进的系统分析与设计方法,在承认现实世界中开发环境多变的同时,强调永久价

值的基本原则。在强调传统结构化方法和面向对象方法的系统开发两方面的概念、技术、

建模的同时,加强对项目管理的作用和技术方面的介绍,指出在系统开发生命周期内要

关注现代结构分析,关注 RAD、RUP、基于 Web 的开发、极限编程等最新技术。

五、课程目标

(一)课程培养能力体系

Page 533: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

533

1 级能力指标 2 级能力指标 课程培养能力指标

3.设计/开发解决方案:能

够设计针对复杂工程问题

的解决方案,设计满足特定

需求的系统、单元(部件)

或工艺流程,并能够在设计

环节中体现创新意识,考虑

社会、健康、安全、法律、

文化以及环境等因素。

① 掌握软件生命周期要

素,了解软件开发过程管理

模型、ISO 国际质量标准、

CMMI 软件评价标准

(初级能力)了解软件开发

过程管理模型、ISO、CMMI

标准,掌握软件生命周期的

要素

5.使用现代工具:能够针对

复杂工程问题,开发、选择

与使用恰当的技术、资源、

现代工程工具和信息技术

工具,包括对复杂工程问题

的预测与模拟,并能够理解

其局限性。

③ 对复杂工程问题进行预

测与模拟,并能够理解其局

限性

(初级能力)掌握复杂工程

问题分析方法,通过分析方

法对问题进行预测与模拟,

提出其局限性

6.工程与社会:能够基于工

程相关背景知识进行合理

分析,评价专业工程实践和

复杂工程问题解决方案对

社会、健康、安全、法律以

及文化的影响,并理解应承

担的责任。

② 评价专业工程实践和复

杂工程问题解决方案,评价

对社会、健康、安全、法律

以及文化的影响

(高级能力)对复杂工程问

题的解决方案进行分析,能

够评价对社会、健康、安全、

法律以及文化的影响

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并在多学科环境中应

用。

① 掌握技术管理、人员管

理、工程管理的原理

(高级能力)掌握软件项目

管理中技术管理、人员管

理、工程管理的原理,并能

够针对实际问题进行应用

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并在多学科环境中应

用。

② 掌握与成本、风险等相

关的经济决策方法

(中级能力)掌握软件项目

管理中成本、风险等相关的

经济决策方法

11.项目管理:理解并掌握

工程管理原理与经济决策

方法,并在多学科环境中应

用。

③ 在多学科环境中运用项

目管理方法

(中级能力)能够根据跨学

科案例,了解运用项目管理

方法。

(二)教学目标

目标内容 具体目标

专业知识 了解系统分析员的角色

Page 534: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

534

了解系统开发模型

掌握需求分析方法

掌握系统宏观设计方法

掌握系统详细设计方法

掌握系统测试与实现方法

了解系统集成、项目管理方法

专业技能 掌握使用数据流图方法

掌握使用数据字典分析系统方法

掌握描述过程规范和结构化决策方法

掌握数据库设计方法

掌握基于 UML 的面向对象系统分析与设计方法

(三)教学任务

本课程将理论讲授与课上操作、课后大作业环节相结合,使学生更深入地理解和掌

握系统分析与设计的基本方法,熟练应用数据流图、数据字典、数据库设计、基于 UML

的面向对象系统分析与设计方法,在软件工程领域驾驭现在,应对未来做好充分的准备。

六、各章节(知识单元)教学内容及基本要求

(一)理论知识单元内容及要求

本课程分成 5 大部分:系统分析基础,信息需求分析,分析过程,设计基础,以及

软件工程与实现。

第一部分:系统分析基础

学生要了解的基础知识:分析员要做些什么工作;各种新兴信息系统如何适应组织

的需要;如何确定一个系统项目是否值得承接;商业项目管理的最新内容;以及如何用

专门的软件工具管理系统项目。

1.了解系统分析员的角色

内容包括:系统类型,系统集成技术,系统分析与设计的必要性,系统分析员的角

色,系统开发生命期,使用 CASE 工具,高级 CASE 和低级 CASE,面向对象系统分析与

设计,敏捷方法和其他可供选择的方法

2.了解组织风格及其对信息系统的影响

内容包括:组织作为系统,系统的图形化描述方法,用例建模,管理的层次,组织

文化

3.了解项目管理基本内容

内容包括:项目启动,确定可行性,活动规划和控制,基于计算机的项目进度安排,

功能点分析,管理分析与设计活动,敏捷开发

第二部分:信息需求分析

会运用系统的和结构化的方法执行信息需求分析。重视分析有助于分析员确保在设

Page 535: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

535

计系统之前解决正确的问题。

4.掌握交互式方法信息收集

内容包括:面谈,联合应用程序设计,使用问卷调查表

5.掌握非干扰性方法信息收集

内容包括:采样,调查,观察决策者的行为,观察物理环境

6.掌握敏捷建模和原型化方法

内容包括:原型化方法,原型的开发,用户在原型化方法中的角色,快速应用程序

开发,敏捷建模,敏捷建模与结构化方法的比较

第三部分:分析过程

详细论述分析过程。本部分建立在前两部分基础上,使学生接触数据流分析及结构

化和半结构决策。要求学生逐步掌握如何在绘制数据流图(DFD)时运用结构化技术。

7.会使用数据流图

内容包括:需求确定的数据流方法,开发数据流图,逻辑数据流图和物理数据流图,

创建物理数据流图,第 2 个数据流图实例,分割 Web 站点,使用数据流图进行沟通

8.会使用数据字典分析系统

内容包括:数据字典,数据存储库,创建数据字典,使用数据字典

9.会描述过程规范和结构化决策

内容包括:过程规范概述,结构化英语,决策表,决策树,选择一种结构化决策分

析技术,物理过程规范和逻辑过程规范

10.了解如何准备系统

内容包括:确定硬件和软件的需求,识别和预测成本和效益,成本和效益比较,系

统建议,陈述系统建议

第四部分:设计基础

介绍设计基础。本部分从设计输出开始,因为许多业内人士认为系统是输出驱动的。

详细讨论了基于 Web 的窗体设计;特别注意输出方法与内容的关联,输出对用户的影

响,以及设计良好的窗体和屏幕显示。

11.掌握设计有效的输出

内容包括:输出设计的目标,将输出内容与输出方式联系起来,认识到输出偏差对

用户的影响,设计屏幕输出,设计 Web 站点,输出生产和 XML

12.掌握设计有效的输入

内容包括:良好的表单设计,良好的屏幕和 Web 窗体设计,内联网和互联网网页

设计

13.掌握数据库设计

内容包括:数据库,数据概念,规范化,主文件/数据库关系设计指导原则,使用

数据库,反规范化,数据仓库

14.了解人机交互

内容包括:理解人机交互,用户界面的类型,对话设计的指导原则,为用户提供反

馈,电子商务网站设计时要考虑的特殊因素,mash up,设计查询

Page 536: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

536

15.了解设计准确的数据输入规程

内容包括:有效的编码,快速而高效的数据获取,通过输入有效性检查保证数据的

质量,电子商务环境中的准确性优势

第五部分:软件工程与实现

介绍作为实现高质量系统的方法的结构化软件工程和编程技术。

16.掌握基于 UML 的面向对象系统分析与设计

内容包括:面向对象概念,CRC 卡片和对象思考,UML 的概念和图,用例建模,

活动图,顺序图和通信图,类图,状态图,包和其他 UML 制品,UML 实践,使用 UML

进行建模的重要性

(二)课外学习内容及要求

序号 具体内容 要求 教学周 学时 考核方式

1 面向具有工程背景

的问题,进行系统

需求分析

提出系统需求方案,

同时考虑社会、环境

等因素

4 2 课后作业

2 运用数据流图、数

据字典、UML 等软

件工程方法设计系

统架构

掌握系统分析与设

计全过程中的开发

工具,

8 4-10 课后作业

3 构建系统宏观架

构,实现系统详细

设计

实现系统需求、设计

具有创新、考虑社

会、环境等因素

Page 537: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

537

Page 538: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

538

七、实践项目实施计划表

序号 项目名称 项目类型 教学周 项目内容 项目成果 实施方法 课内学时 考核方式 实践场所 实验类型

1 需求分析 单元项目 2

面向具有工程背景

的案例,进行系统

需求分析

完成系统

分析报告 实践教学 2 课程作业

课堂、

课下

综合型试

2 框架设计 单元项目 4

运用开发工具和

UML 软件工程方

法、进行设计系统

架构设计

完成系统

框架设计

报告

实践教学 2 课程作业 课堂、

课下

综合型试

3 详细设计 单元项目 6

运用开发工具和

UML 软件工程方

法、进行设计系统

详细设计

完成系统

详细设计

报告

实践教学 4 课程作业 课堂、

课下

综合型、

验证型试

4

系统测试

与实施方

单元项目 8

评价实施方案,考

虑创新性、社会、

法律等影响

完成系统

测试与实

施报告

实践教学 2 课程作业 课堂、

课下

综合型试

Page 539: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

539

八、各单元知识点、技能点分布及学时分配表

小节标题 知识点与技能点 能力目标 掌握

程度

教学实

考核

方式

各教学环节学时分配

理论教学 实践教学 课

1

1.1 了解系统

分析员的角色

系统类型,系统集成技术,系统分

析与设计的必要性,系统分析员的

角色,系统开发生命期,使用 CASE

工具,高级 CASE 和低级 CASE,面

向对象系统分析与设计,敏捷方法

和其他可供选择的方法

3-①初级 了解 讲授、

讨论 2 2

1.2 了解组织

风格及其对信

息系统的影响

组织作为系统,系统的图形化描述

方法,用例建模,管理的层次,组

织文化

5-③初级 了解 讲授、

讨论 2 2

1.3 了解项目

管理基本内容

项目启动,确定可行性,活动规划

和控制,基于计算机的项目进度安

排,功能点分析,管理分析与设计

活动,敏捷开发

11-①高级

11-②中级 掌握

讲授、

讨论 2 2

2

2.1 掌握交互

式方法信息收

面谈,联合应用程序设计,使用问

卷调查表 5-③初级 了解

讲授、

讨论 1 1

Page 540: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

540

2.2 掌握非干

扰性方法信息

收集

采样,调查,观察决策者的行为,

观察物理环境 5-③初级 了解

讲授、

讨论 1 1

2.3 掌握敏捷

建模和原型化

方法

原型化方法,原型的开发,用户在

原型化方法中的角色,快速应用程

序开发,敏捷建模,敏捷建模与结

构化方法的比较

6-②高级 掌握 讲授、

讨论 2

测试 A 11-①高级

11-②中级

随堂

测试 2

需求分析 面向具有工程背景的案例,进行系

统需求分析

11-①高级

11-②中级

掌握/

运用/

分析

讨论 课后

作业 2 2 2 2 2

3

分析

过程

3.1 会使用数

据字典分析系

数据字典,数据存储库,创建数据

字典,使用数据字典 3-①初级

掌握/

运用/

分析

讲授、

讨论 1 1

3.2 会描述过

程规范和结构

化决策

过程规范概述,结构化英语,决策

表,决策树,选择一种结构化决策

分析技术,物理过程规范和逻辑过

程规范

3-①初级

掌握/

运用/

分析

讲授、

讨论 2 2

3.3 了解如何

准备系统

确定硬件和软件的需求,识别和预

测成本和效益,成本和效益比较,

系统建议,陈述系统建议

5-③初级 了解 讲授、

讨论 1 1

Page 541: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

541

测试 B 3-①初级

5-③初级

随堂

测试

框架设计 运用开发工具和 UML 软件工程方

法、进行设计系统架构设计

3-①初级

5-③初级

课后

作业 2 2 4 2 4

4

设计

基础

4.1 掌握设计

有效的输出

输出设计的目标,将输出内容与输

出方式联系起来,认识到输出偏差

对用户的影响,设计屏幕输出,设

计 Web 站点,输出生产和 XML

5-③初级

6-②高级 掌握

讲授、

讨论 1 1

4.2 掌握设计

有效的输入

良好的表单设计,良好的屏幕和

Web 窗体设计,内联网和互联网网

页设计

5-③初级

6-②高级 掌握

讲授、

讨论 1 1

4.3 掌握数据

库设计

数据库,数据概念,规范化,主文

件/数据库关系设计指导原则,使

用数据库,反规范化,数据仓库

5-③初级

6-②高级

掌握/

运用/

分析

讲授、

讨论 2 2

4.4 了解人机

交互

了解人机交互,用户界面的类型,

对话设计的指导原则,为用户提供

反馈,电子商务网站设计时要考虑

的特殊因素,mash up,设计查询

5-③初级

6-②高级 了解

讲授、

讨论 1 1

4.5 了解设计

准确的数据输

入规程

有效的编码,快速而高效的数据获

取,通过输入有效性检查保证数据

的质量,电子商务环境中的准确性

优势

5-③初级

6-②高级 了解

讲授、

讨论 1 1

测试 C 5-③初级

6-②高级

随堂

测试

Page 542: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

542

详细设计 运用开发工具和 UML 软件工程方

法、进行设计系统详细设计 6-②高级

课后

作业 4 4 4 4 4

5

软件

工程

与实

5. 掌握基于

UML 的面向对

象系统分析与

设计

面向对象概念,CRC 卡片和对象思

考,UML 的概念和图,用例建模,

活动图,顺序图和通信图,类图,

状态图,包和其他 UML 制品,UML

实践,使用 UML 进行建模的重要性

11-③中级 掌握 讲授、

讨论 2 2

测试 D 6-②高级

11-③中级

随堂

测试

系统测试与实

施方案

评价实施方案,考虑创新性、社会、

法律等影响

6-②高级

11-③中级

课后

作业 2 2 2 2 2

合计 32 10 10 32 12

Page 543: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

543

九、教学方法及组织形式

1.课堂讲授为主,实验和课后作业为辅。本课程从通过系统分析与设计的基础知

识讲解、案例分析以及项目实践,不断提升学生能力。以课堂讲授、课堂练习和测试、

实验等手段,最终实现培养目标。

2.基于工程教育理念,以“互动、启发式和探究式”组织教学,采用演示教学、

练习教学、实验教学、探究教学、任务分析等多种教学方法,并将构思、设计、实施和

运行引入教学过程中。

3.教学过程中,以学生为主体,鼓励学生自主学习,团队协作等、加强职业能力

的训练,运用启发引导、任务引领、问题导向、分组讨论、协同教学等多种互动式教学

方法,完成课程教学任务。

4.教学实施过程中,提供丰富的教育资源丰富,如课件、案例、录像、网络资源

等等。

5.结合课程实施过程,从知识掌握、能力水平、态度表现等方面,对学生进行全

方位的考核。

十、教学环境

1.使用投影仪,采用多媒体与板书相结合教学手段

2.一次实验时间为2学时。

十一、形成性考核与终结性考核

(一)课程考核内容及总体安排

类别 考核项目 考核主要内容 考核方式 考核时间 权重

形成性考核

平时表现

日常表现:迟到、早退一

次扣 2 分,旷课一次扣 4

分。

日常考核 %

课后作业 系统分析 第 4 周 15%

课后作业 系统设计 第 8 周 15%

测验 A 系统分析基础 第 2 周 5%

测验 B 信息需求分析及分析过

程 第 4 周 5%

测验 C 系统设计基础 第 6 周 5%

Page 544: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

544

测验 D 软件工程与实现 第 8 周 5%

终结性考核 期末考试 全部知识单元教学内容 考试周 50 %

(二)命题要求

考核项目 重点考核知识点、技能点 备注

课后作业 11-①高级、11-②中级、3-①初级、5-③初级 占总成绩 15%

课后作业 6-②高级、11-③中级 占总成绩 15%

测试 A 11-①高级、11-②中级 占总成绩 5%

测试 B 3-①初级、5-③初级 占总成绩 5%

测试 C 5-③初级、6-②高级 占总成绩 5%

测试 D 6-②高级、11-③中级 占总成绩 5%

期末考试 3-①初级、5-③初级、11-①高级、11-②中级、

11-③中级 占总成绩 50 %

(三)终结性考核安排

考试时间 120 分钟 记分方式 ■ 百分制

□ 等级制

终结性

考核方式 试卷考试 学生考核提交类型

■ 纸版

□ 电子版

□ 其他

试题类型、题数、

分值比例

单项选择题:

10 个、20分

问答题:

5个、10%

应用题:

7个、35%

论述题:

3 个、30%

计算题:

1个、5%

其 他:

个 %

试题难易程度

基本题: 60% 灵活题: 20% 综合题: 20%

其 他: %

教学大纲

覆盖率

教学大纲覆盖率 = 含考题内容的学时/课程总学时数 * 100% =

( 96 % )

备 注

(四)总成绩评定标准

Page 545: 软件工程专业 专业主干课程和主要专业课程 教学大纲zy.upln.cn/gongshi/files/IM_KCJXDG/080902/IM... · 包括Pthread\Win32 线程、Java 线程 (4)了解线程中的一些问题

545

等级 评定指标(定性与定量结合)

优秀(100-90) 平时按时出勤,课堂表现认真,实验按时完成且报告全面正确,作

业完成情况优秀,期末总成绩在 90分以上。

良好(89-80) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且大

部分正确,作业完成情况良好,期末总成绩在 80分以上。

中等(79-70) 平时按时出勤,课堂表现认真,实验按时完成,实验报告全面且部

分正确,作业完成情况中等,期末总成绩在 70分以上。

合格(69-60)

平时除个别情况之外按时出勤,课堂表现比较认真,实验按时完成,

实验报告不全面且部分正确,作业完成情况一般,期末总成绩在

60分以上。

不合格(60以下) 平时不能按时出勤,课堂表现较差,实验不能按时完成,实验报告

不全面或不正确,作业完成情况较差,期末总成绩在 60分以下。

十二、课程评价与持续改进

学院教学质量管理与保障部,系、专业团队教学质量的管理人员,负责组织和实施

对课程教学过程与结果的评价工作。主要措施有:三级联合评估、过程监控、总结与评

价、持续改进。

(一)三级联合评估:学院、系、专业团队三级联合评估。每年度进行一次课程评

估,从课程目标、内容、教学实施、教学资源建设、教学效果等进行全方位的评价,提

出存在问题和改进建议。

(二)过程监控:学院质量监控委员会、各级领导干部及同行实施学院统一的听课

制度,监控教学实施过程并进行反馈。授课期间面向学生进行问卷调查,了解教师授课

效果及教材等资源的使用情况,并进行反馈。

(三)总结与评价:课程考核结束后,各课程组进行试卷分析和课程总结,针对学

生对课程掌握的情况,提出目前存在的问题和后续改进的措施。

(四)持续改进:综合如上的评估反馈、听课反馈、学生反馈、课程总结,汇总各

方面的意见和建议,在课程目标、课程学时、课程内容、授课方法、考核方式、资源建

设等方面进行持续改进。

十三、大纲管理

大纲版本号:Ver1.0

制定人签字:林林

审核人签字:林林

专业负责人签字:孔维强

主管院长:郭禾

制定日期:2015 年 3 月