12
1 数据结构》教学大纲 一、课程基本信息 开课单位 基础教学部 课程代码 CS04002 课程名称 数据结构 英文名称 Data Structures 课程性质 核心课程 学分 4 总 学 时 80 先修课程 高等程序设计,离散数学 开课学期 2019 春季 适应专业 计算机类 主讲教师 杨晓波、屈卫兰 二、课程描述 (一)课程简介 《数据结构》是信息类各专业的核心基础课程,是一门理论与实践相结合的课程,在整 个信息相关专业的教学体系中处于举足轻重的地位。数据结构是设计和实现编译程序、操作 系统、数据库系统及其它系统程序和大型应用程序的重要基础。通过本课程理论和实践的教 学,使学生较牢固地掌握数据结构的基本概念、原理、算法,了解算法复杂性的度量方法, 初步掌握根据所求解问题的性质选择合理的数据结构,并对时间空间复杂性进行必要的控 制,培养和提高学生理论、抽象、设计的能力,掌握数据结构和算法的设计分析技术,提高 程序设计的质量,为将来的研究和开发工作打下坚实的基础。 “Data Structures and Algorithms”, one of the most important core courses in Computer Science. The course also covers fundamental data structures and classical algorithms which are widely used in the succeeding specialized courses, such as Operating Systems, Software Engineering, Database Systems, Compiler Principles, Computer Graphics and Human Computer Interaction. What is the combination of data structures and algorithms? Niklaus Wirth wrote a book titled "Algorithms + Data Structures = Programs", which points out their important roles in computing discipline: algorithm and data structure are two closely linked and indivisible parts of programming. The course will follow the idea of “Algorithms + Data Structures = Programs”, aimed at improving students’ knowledge and skills of theory, abstraction and design in problem solving. This course will focus on data structures and algorithms for manipulating them. Data structures for storing information in tables, lists, trees, queues and stacks will be covered. Some basic graph and discrete transform algorithms will also be discussed. On a solid basis of the fundamental theory, the students will analyze the problems using problem, data and algorithm abstraction. Making a tradeoff between space and time complexity, the students will learn how to organize data reasonably, design efficient and effective algorithms, and implement high quality programs, so that they can solve real-world complex problems. After studying the course, the students’ ability of abstract thinking and problem solving should have improved

数据结构》教学大纲 - kczxsp.hnu.edu.cnkczxsp.hnu.edu.cn/upload/20190226205541349.pdf · 构的基本方法,加深对数据结构知识的理解,训练学生的计算机专业实验技能和科学实验方

  • Upload
    others

  • View
    38

  • Download
    0

Embed Size (px)

Citation preview

1

《数据结构》教学大纲

一、课程基本信息

开课单位 基础教学部 课程代码 CS04002

课程名称 数据结构 英文名称 Data Structures

课程性质 核心课程 学分 4

总 学 时 80 先修课程 高等程序设计,离散数学

开课学期 2019 春季 适应专业 计算机类

主讲教师 杨晓波、屈卫兰

二、课程描述

(一)课程简介

《数据结构》是信息类各专业的核心基础课程,是一门理论与实践相结合的课程,在整

个信息相关专业的教学体系中处于举足轻重的地位。数据结构是设计和实现编译程序、操作

系统、数据库系统及其它系统程序和大型应用程序的重要基础。通过本课程理论和实践的教

学,使学生较牢固地掌握数据结构的基本概念、原理、算法,了解算法复杂性的度量方法,

初步掌握根据所求解问题的性质选择合理的数据结构,并对时间空间复杂性进行必要的控

制,培养和提高学生理论、抽象、设计的能力,掌握数据结构和算法的设计分析技术,提高

程序设计的质量,为将来的研究和开发工作打下坚实的基础。

“Data Structures and Algorithms”, one of the most important core courses in Computer

Science. The course also covers fundamental data structures and classical algorithms which are

widely used in the succeeding specialized courses, such as Operating Systems, Software

Engineering, Database Systems, Compiler Principles, Computer Graphics and Human Computer

Interaction.

What is the combination of data structures and algorithms? Niklaus Wirth wrote a book titled

"Algorithms + Data Structures = Programs", which points out their important roles in computing

discipline: algorithm and data structure are two closely linked and indivisible parts of

programming.

The course will follow the idea of “Algorithms + Data Structures = Programs”, aimed at

improving students’ knowledge and skills of theory, abstraction and design in problem

solving. This course will focus on data structures and algorithms for manipulating them. Data

structures for storing information in tables, lists, trees, queues and stacks will be covered. Some

basic graph and discrete transform algorithms will also be discussed. On a solid basis of the

fundamental theory, the students will analyze the problems using problem, data and algorithm

abstraction. Making a tradeoff between space and time complexity, the students will learn how to

organize data reasonably, design efficient and effective algorithms, and implement high quality

programs, so that they can solve real-world complex problems. After studying the course, the

students’ ability of abstract thinking and problem solving should have improved

2

considerably. Their programming skills and the quality of their codes would have increased as

well. After studying this course, students should be well prepared for further study, engineering

and research in computer related areas.

(二)课程教学基本设计

本课程由大班授课、小班讨论和实验组成,学时分配分别为 48学时、16学时、16学时。

1)以课堂教学为主,理论教学、小班讨论与实验训练相结合,强化学生工程观点的建

立和工程分析能力的培养;

2)管理规范:制定课程各类管理制度,运行模式和评价方式,依据规章制度来约束老

师和学生,以及助教的行为。

3)课堂教学采用多媒体课件、电子教案和传统教学方法相结合,讲授基本原理,理论

联系实际,培养学生创新能力,教学过程中采用多媒体教学系统、黑板板书、电子教案,利

用学校的网络资源、计算机资源,组织开展计算机辅助教学,增强教学的直观性和课堂教学

的信息量;

4)课程互动:数据结构课程中,利用手机端网络教学平台 APP,学生可以在课堂上完

成各种练习题、互动交流题,答疑等,老师可以及时了解学生学习情况,及时答疑。

5)小班讨论过程中采用启发式教学,讨论课前提供若干个讨论专题供学生选择,让学

生自主分工、查阅资料、研究分析与制作汇报 PPT,讨论课上通过对案例分析与讨论,引导

学生独立思考,培养学生提出问题、分析问题和解决问题的能力,促进学生的团队协作、自

主学习;

6)课堂教学与小班讨论中通过案例分析,强调计算思维方法建立和应用;

7)实验课对典型数据结构进行验证性综合实验,使学生掌握设计、实现和应用数据结

构的基本方法,加深对数据结构知识的理解,训练学生的计算机专业实验技能和科学实验方

法,提高分析和解决实际问题的能力。

8)答疑:基于课程网络教学 SPOC平台,利用讨论区,作业区和消息互动平台等各种手

段,可以实现师生之间,助教和学生之间和学生之间的互动线上答疑。增加实验课课时,实

现每周都能线下答疑。设立高年级的学生助理,实现传帮带式的答疑。

9)督学:利用网络教学平台的督学功能,监考每位学生的学习情况和成绩,及时督促。

10)SPOC:利用网络教学平台,搭建数据结构 SPOC 课程网站。实现线上和线下的立体

全方位的教学模式。

学时分配如下表:

讲课内容 学时

讲课 实验 讨论

1 算法分析 4 2+6

2 线性结构 12 4 2

3 树形结构 10 4 4

4 图 10 4 2

5 查找 6 2

6 排序 6 2

合计 48+16+16=80

三、课程内容

(一)课程教学目标

通过本课程的理论教学、小班讨论和实验,使学生具备下列能力:

课程目标 1学会常用的数据结构,掌握线性表、栈、队列、二叉树、树和图等常用数据

3

结构的逻辑结构及物理实现,形成一个程序员的基本数据结构工具箱,在解决实际问题时,

能根据复杂工程问题的需求,熟练地选择和使用数据结构来表示、存储和处理问题中待处理

的数据元素。

课程目标 2 掌握对每一个数据结构和相关基本操作算法所花费的时间和空间代价的分

析方法。针对复杂工程问题所要求的资源限制,选择或应用工具箱中的最有效的数据结构,

设计最有效率的解决方案。

课程目标 3 通过课程实验以及撰写课程的各种设计报告,训练学生计算思维能力、算法

设计和分析能力和程序设计与实现能力,重点提高分析设计能力、编程能力、代码优化能力

和调试测试能力,为后续专业知识的学习及实践打下良好的基础,进而提高学生的软件系统

的认知、设计、开发、应用能力。

课程目标 4 具有一定文献搜索和整理能力、交流能力和团队协作能力,能够就数据结

构和算法的相关问题同班级同学与老师进行有效沟通和交流,包括报告撰写、文稿设计、讨

论陈述、清晰表达或回应指令。培养对他人方案和工作的评价能力和对自我表现的评价能力。

课程目标 5 遵守课程各项管理制度,按要求有计划地完成课程各项学习任务,尤其是

完成综合性的实验任务和前瞻性的讨论任务,培养学生终身学习的习惯和能力,树立严谨的

工程态度、科学学术态度。

(二)课程目标与毕业要求的兲系

课程教学目标与毕业要求的兲联矩阵表

毕业要求 指标点 对应课程目

支撑强弱

GA2问题分析:能够运用相关数

学、物理知识和工程科学基本原

理,以及文献查阅和调研方法有

效地识别、表述和分析信息安全

领域复杂工程问题

2-3能够运用数理和工程基

本原理对选择的信息安全领

域复杂工程问题模型进行推

演和正确性分析,以获得有

效结论

课程目标 1

课程目标 2

M

GA4研究:能够基于科学原理并

采用科学方法对信息安全领域

复杂工程问题进行研究,包括设

计实验、分析与解释数据、并通

过信息综合得到合理有效的结

4-1 掌握计算机硬件,操作系

统、网络、数据结构、信息

安全的数学基础等基本理论

知识和科学原理

课程目标 3

课程目标 4

课程目标 5 M

(三)教学环节与课程目标、毕业要求的兲系

教学环节与课程教学目标的兲联矩阵表

教学环节 CT1 CT2 CT3 CT4 CT5

交流互动 M M M H H

专题讨论课 M H H H H

实验 M M H H H

课后作业 H M M M H

期中考试 H H M M M

期末考试 H H M M M

4

教学环节与毕业要求指标点的权重矩阵表

教学环节 GA023 GA041

交流互动 0.1 0.1

专题讨论课 0.1 0.4

实验 0.2 0.4

课后作业 0.1 0.1

期中考试 0.1

期末考试 0.4

(四)教学内容

1、理论教学(48 课时)

教学内容 教学要求 学时 课程

目标

一、算法分析

1)算法分析概述

2)算法分析方法及举例

了解算法的基本概念

掌握算法分析的相关术语

理解算法分析的概念(难点)

掌握算法分析的方法(重点)

4

2,3

二、线性结构

1)数据结构概述

2)线性表

3)栈和队列

了解数据结构的定义、学习目标、学习方法

掌握从问题中的数据中发现其线性特征

掌握线性结构 ADT 的设计和表示(难点)

掌握线性结构 ADT 的物理实现(重点)

掌握基于线性结构 ADT 设计问题解决方案的方

法(重点)

理解选择合适数据结构解决问题的理念

12

1,2,

3,4,

5

三、树形结构

1)树概述

2)树的遍历

3)特殊二叉树

了解树 ADT 的设计和表示(难点)

掌握树结构的性质

掌握树的物理存储实现

理解二叉树的遍历算法和应用(重点)

理解特殊树的定义和特性

掌握特殊树的构建和实现,已经应用(重点)

掌握特殊树的实现

10

1,2,

3,4,

5

四、图

1)图的定义和 ADT

2)图的物理实现

3)图的遍历

4)图的经典问题

理解图的结构性质和特征

掌握图 ADT 的设计和表示(难点)

掌握图的物理存储实现

掌握求解图问题的思路(重点)

掌握基于图数据结构设计伪代码(重点)

掌握图算法的性能分析

10

1,2,

3,4,

5

五、查找

1)线性结构的查找

2)树形结构的查找

3)散列

掌握查找方法的特点

掌握查找方法(重点)

掌握查找算法的设计

掌握查找算法的性能

6

1,2,

3,4,

5

5

六、排序

1)朴素的排序算法

2)先进的排序算法

3)特殊的排序算法

掌握排序方法的特点

掌握排序方法(重点)

掌握排序算法的设计

掌握排序算法的性能

6

1,2,

3,4,

5

1)基于数据结构课程 SPOC网站,采用混合教学模式,根据不同的教学内容和学习目标,以及能力点达成目标,设计不同的教学手段和形式。把学习视频观看,教材阅读,课堂讲授,课堂练习,课堂讨论,课后作业,实验和答疑等各个教学环节有机统一为一个整体,构建一个个性化的以学生为中心的学习平台。

2、小班讨论(16 课时)

讨论主题 教学目标 课 程 目标

专 题一

算法分析习题讨论 1)通过讨论课使学生加深对数据结构中基本概念和方法的理解,扩宽知识面;2)初步具备查阅文献、阅读相关技术资料和调查研究的能力;3)提高学生综合运用本课程知识,理论联系实际的能力,并引导学生积极思考、主动学习;4)锻炼和提高学生的交流、沟通和表达能力以及团队合作能力;5)培养学生的责任感和职业道德。

2

专 题二

什么是数据结构?经典例题讨论 4

专 题三

如何撰写数据结构实验报告 3,4

专 题四

真正的线性结构:STL 容器 1,2,3,

4,5

专 题五

树结构调研 1,2,3,

4,5

专 题六

抽象数据结构的存储方法 1,2,3,

4,5

专 题七

经典图遍历算法 1,2,3,

4,5

专 题八

课程知识点回顾,答疑和未来之路 5

1)具体讨论课内容参见数据结构课程小班讨论指导书。

3、实验

实验内容 教学目标 课程目

1)线性表的物理实现

通过课程实验使学生加深对数据结构基础

知识的理解,能够运用追求效率的原则,

基于数据结构设计并实现求解非数值问题

的方案(设计报告和源码)。

1,2,3,4,5

2)线性表的应用

3)二叉树的物理实现

4)特殊二叉树的应用

5)图的物理实现

6)图的应用

7)查找

8)排序算法实验比较

1)具体实验内容参见数据结构课程实验指导书。实验安排和管理规范参见数据结构实验安排和注意事项文档。

6

四、教学进程表

周 次 主题和知识点 知识点和能力点 讨论课 实验 阅读教材 思考(考勤) 作业

1 1 课程介绍

算法分析概述

介绍课程基本情况,安排和要求

了解算法的基本概念

掌握算法分析的相关术语

理解算法分析的概念

3.1

3.2

3.3

3.4

讨论(网站)

主题 1.2.3

3.4 (a)

1 2 算法分析方法及举例 掌握算法分析的方法 3.4

3.5

3.8(b)

3.12

2 3 数据结构学习概述

了解数据结构的定义

了解数据结构学习目标

了解数据结构学习方法

1:算法分析题讲

0:预备实验 译者序

前言

第一章

主题 4.5

3 4 线性表

线性结构

线性表 ADT 的设计与表示

线性表 ADT 的应用举例

掌握从问题中的数据中发现其线性特征

掌握线性表 ADT 的设计

掌握线性表 ADT 的表示(实验重点)

了解基于线性表 ADT 设计算法,解决问

题(实验重点)

4.1 主题 6 4.1

3 5 基于顺序表实现线性表 掌握基于顺序表设计线性表 ADT 的实现

掌握基于顺序表实现线性表 ADT

4.1.1

4 6 基于链表实现线性表

掌握基于链表表设计线性表 ADT 的实现

掌握基于链表实现线性表 ADT

2:什么是数据结

1:线性表的实现

4.1.2 4.6

5 7 线性表实现的总结

线性表的应用

掌握线性表两种实现方法的特点

掌握基于 ADT 设计问题解决方案的方法

理解选择合适数据结构解决问题的理念

2:一元多项式的

运算

4.1.3 和 4.4

2.4(严)

主题 7

主题 8

主题 9

5 8 栈和队列

栈的类型定义

栈的物理实现

栈的应用举例

队列的类型定义

队列的物理实现

队列的应用举例

掌握栈和队列类型的特点,并能在相应的

应用问题中正确选用它们。

熟练掌握栈和队列的两类实现方法,注意

实现方法的效率

4.2

3.2(严)

4.3

4.18

6 9 树

树形结构

树和二叉树的定义和 ADT

二叉树的性质

了解从问题中的数据中发现其树形特征

了解树 ADT 的设计和表示(实验重点)

掌握树结构的性质(考试重点)

掌握树的物理存储实现(实验重点)

3:如何撰写数据

结构实验报告

实验 3 二叉树

的实现

6.1

5.1

6.3

6.4

6.5

主题 10

主题 11

主题 12

5.1

6.16(a)

7

树和二叉树的物理存储实现 5.3

6.2.2(严)

7 10 树的遍历

预备知识-递归

二叉树的遍历的设计与实现

二叉树遍历的应用

掌握递归算法的设计方法

理解二叉树的遍历算法(考试重点)

掌握二叉树遍历算法的应用(考试重点,

实验重点)

2.5

5.2

6.8(严)

主题 13,14

5.6

7 11 特殊的二叉树

二叉检索树(BST)

理解特殊树的定义和特性(考试重点)

掌握特殊树的构建(考试重点,实验重点)

掌握特殊树的实现(考试重点,实验重点)

了解特殊树的应用

实验 4 BST 5.4

5.15

8 12 特殊的二叉树

堆(树)(Heap)和优先队

4:STL 中线性

结构

5.5

5.25

9 13 特殊的二叉树

Huffman(哈夫曼)编码树

并查集树(根树)

线索化树

期中复习

期中考试

预计周末

5.6

6.2

6.3.2(严)

5.28

6.7

9 14 图

网状结构

图的定义和 ADT

图的物理实现

理解图的结构性质和特征(考试重点)

掌握图 ADT 的设计和表示(实验重点)

掌握图的物理存储实现(考试重点,实验

重点)

11.1

11.2

7.2.3(严)

7.2.4(严)

主题 15

主题 16(下节课

前)

11.3

10 15 图的遍历

图的深度优先遍历

图的高度优先遍历

了解问题描述和背景知识

掌握求解问题的思路(会用算法来求解例

题,考试重点)

掌握基于数据结构设计伪代码(实验重

点)

掌握四个算法的性能分析结果

5:树结构调研 实验 5 图的实

11.3

11.4

11.6

11 16 有向图的拓扑排序

有向图的关键路径问题

实验 6 无向图中

求两点间的所有

简单路径

11.3

7.5.2(严)

11 17 图的经典问题

最短路径问题

Dijkstra 算法和 Floyd 算法

了解问题描述和背景知识

掌握求解问题的思路(会用算法来求解例

题,考试重点)

11.4

16.1

11.10

8

掌握基于数据结构设计伪代码(实验重

点)

掌握四个算法的性能分析结果

12 18 和最小生成树问题

Prim 算法和 Kruskal 算法

6:抽象数据结构

的物理实现

11.5 11.17

11.18

13 19 线性结构的查找

顺序查找

二分查找

自组织,集合,分块和索引

掌握查找方法的特点(考试重点)

掌握查找方法(会用算法来求解例题,考

试重点)

掌握查找算法的设计(实验重点)

掌握查找算法的性能

实验 7 自组织线

性表

9.1

9.2

9.3

9.1(严)

13 20 树形结构的查找

BST,AVL,B 树,键树

熟练掌握二叉排序树的构造和查找方法。

了解 AVL 树,B-树、B+树和键树的特点

以及它们的建树和查找的过程。

5.4

13.2

10.5

13.1

9.2(严)

13.5 (a)

14 21 散列

散列函数

冲突解决策略

掌握散列方法的原理和特点

掌握散列方法的基本方法(考试重点)

7:图的遍历问题

调研

9.4 主题 17 9.14

15 22 朴素的排序算法

插入,选择和冒泡

掌握排序方法的原理和特点

掌握排序方法的基本方法(会用算法来求

解例题,考试重点)

掌握排序算法的设计(实验重点)

排序

排序

7.1

7.2 主题 18 任选 10个

整数的一

个集合。

用每种排

序方法排

序,给出

每趟排序

结果

15 23 Shell 排序

快速排序

7.3

7.5

16 24 堆排序

归并排序

基数排序和分配排序

8:答疑和复习 实验 8 排序算法

实验比较

7.6

7.4

7.7

9

五、课程组织及教学方法

(一)课程组细方式

本课程由教学团队 4 位老师共同主讲。针对教学内容,强化实际操作,通过课埻讲授、

小班讨论、课程实验等教学环节安排强化“软件系统能力”的培养。本课程配备助教,由本

专业硕士研究生担仸,助教将跟班听课,负责辅导答疑、批改辅导课程实验,参与讨论课程,

协助主讲教师完成教学活动各个环节。

小班讨论以学生分组讨论和集中报告交流为主、鼓励和要求全班同学积极参与讨论、指

导老师辅助点评,学生之间互相点评,课上课下一起讨论的模式。小班讨论的内容安排合理

考虑课程授课内容的重点讨论和分析、教材内容扩展自学与交流等多种内容。

期中考试和期末考试采用闭卷笔试方式,主要考察课程知识点综合掌握情况。

所有教学资源(课件 PPT、实验环境和教学教辅资料等)、教学过程(课埻作业、小班

讨论 PPT 和准备文档和实验报告等)和答疑活动等均在湖南大学网络教学平台数据结构

SPCO 网站提交、批改和管理。

(二)教学方法

为了达成课程目标,课程教学采用课埻讲授、小班讨论和课程实验/集中检查结合的方

式进行。教学过程管理完全使用 SPOC 网络平台,电子化、网络化的方式进行。

课埻讲授:由于本课程以程序=算法+数据结构的视角来学习数据的表示、存储和处理,

以及相兲算法的设计和分析,以效率权衡和优化为目标。每种数据结构由多个知识点之间兲

联构成,且每个知识点内涵和外延知识均很多(涉及到本专业后续的专业课程)。课埻讲授

的着重点是突出数据结构的特点,表示和设计,实现以及应用五个方面整体原理和方法的学

习,构建数据结构工具箱,数据结构实现和应用的性能分析和权衡,以及优化。由于教学内

容多,而课时相对较少,为了突出兲联性讲授,采用 SPOC 教学方法,用微视频,课前讨

论,课埻串讲,课埻练习,课后答疑,结合作业,实验和讨论构建一个完整的学习链。

小班讨论:按教学需求一般设置三类小班讨论专题:第一,与兲键课程实验或者实验课

程紧密相兲的操作性专题,要求学生在小班讨论上充分演示整个实际操作过程,并分享遇到

的问题和解决方案;第二,以小班讨论补充和强化课埻教学内容,以专题形式对部分难点进

行分析和讲解,要求学生做详绅分析报告,助教和指导教师点评;第三,知识延伸/扩展类

专题,要求学生按专题题目要求,通过查阅文献,对该专题进行问题分析、解决方案设计和

实际解决方法进行完整的展示和说明,同学们自由讨论,助教和指导教师点评。

课程实验:课程实验采取开放性实验、线下验收的组细方式,即在课程网站上发布实验

内容,学生自由选择完成实验的时间和地点,然后在规定的时间节点通过课程网站提交预习

设计报告,最实验报告和源代码,并在教学进程中规定的实验集中环节进行实验内容的交流

10

和答疑,由指导教师和助教对学生进行指导,由仸课老师评阅实验设计报告,助教白盒测试

学生代码的方式进行评分。

(三)课程学习产出教学策略设计案例

课堂教学产出目标:学生掌握数据结构核心基础知识,数据结构设计和实现的方法,数

据结构应用的策略设计,培养算法设计和程序设计的计算思维。

教学策略设计:1.强调数据结构的五个部分的整体观,始织以数据结构的定义、表示、

实现、使用和应用为线索串联各个部分的核心知识点;

案例 1:BST 树 (课埻 2 学时,小班讨论 2 学时,实验课 2 学时)

核心基础知识:BST 的特点,BST 实现的兲键点,BST 的应用;

策略设计:1.从 BST 树的定义、表示、实现、使用和应用五个方面为主线进行课埻教

学; 2.通过小班讨论加强树的物理实现和 BST 树的扩展知识研讨; 3.课程实验基于 BST

实现动态查找表的编程实现;

小班讨论产出目标:学生掌握按照给定主题进行自主资料查找、分析与综合的能力,能

提出较为清晰的解决思路,并给出基本结果,并展现出合格的现场宣讲与演示能力。

教学策略设计:1.每次专题的讨论均需课前独立准备讨论素材; 2.讨论课分组协作完

成小组汇报 PPT,以及小组工作互评; 3.分组报告时,生生互评,教师评分;4.教师点评

总结,课下回复学生提问,实现进一步的讨论和交流;

案例 2:讨论四:真正的线性结构:STL 容器

策略设计:1.同学们在课前各自收集这 5 个线性序列式容器的资料。内容包括:概述,

数据结构(物理结构)的定义,兲键的基本操作的具体实现概述(丼例说明 1~2 个最优特

色的),以及应用(如何基于该容器求解一个具体问题)四个方面。并写好一仹调研资料文

档。2.讨论时,随机分 5 组,每组制定一个容器,小组同学交流课前收集资料,现场制作一

仹报告,并完成小组讨论工作互评。3.分组报告,同学边听报告边在线完成题目,对报告人

和内容进行评价,总结收获,提出质疑。4.教师点评总结,课后在线回答学生的质疑。

课程实验产出目标:独立完成实验内容,具备数据结构和算法的设计,编程实现和调试

能力,并具备问题分析和定义,解决方案设计和表示等设计和优化能力。

教学策略设计:1.要求统一,但要求个人设计问题以及解决方法; 2.通过集中答疑优

化设计方案; 3.通过白盒测试,强调代码质量;4.通过设计型的实验报告突出展示问题的

分析和解决过程的设计思路;

11

案例 3:LAB1:线性表的物理实现

策略设计:1.强调实验中具体问题的定义和设计;2.实验课集中答疑;3.白盒检查线性

表的实现和应用是否规范; 4.通过实验报告评价设计思路和解决方法是否合理;

六、课程考核与评分方法

依据湖南大学和学院的相关制度要求,本课程的成绩评定构成包括:课后讨论交流

(10%)+课后作业(10%)+讨论课(10%)+实验课(20%)+期中考试(10%)+期末考试(40%)。期中考

试和期末考试采用闭卷方式。

项目名称 期中考试 期末考试 平时成绩(50%)

讨论交流 作业 讨论 实验

权重 10% 40% 10% 10% 10% 20%

录入湖南大学教务处成绩系统时:平时成绩 1由讨论交流,作业,讨论三个成绩组成;

平时成绩 2由实验和期中考试成绩组成。

成绩评定方法为:

本门课程的所有环节均要求学生参与,不得缺勤,学生一学期中课程请假超过三分之一,

或旷课 4课时,该学期此课程不能参加考试,不计成绩。

本课程制定了课程所有教学任务的评分细则,采用统一的计分和批阅评语生成软件对各

种平时成绩进行规范化打分和撰写评语。由任课负责各项作业的批阅,助教负责实验代码的

检查。期中考试和期末考试试卷由课程组全体老师和助教依据参考答案和评分标准,集中流

水线式阅卷。

1、期中考试:占总成绩的 10%。采取闭卷考试,考试时间 90分钟,成绩采用百分制,

卷面成绩总分 100分。

2、期末考试:占总成绩的 40% 。采取闭卷考试,考试时间 120分钟,成绩采用百分制,

卷面成绩总分 100分,主要考核学生对本课程学习整体掌握程度,基本分析计算能力,综合

运用所学知识分析问题、解决问题的能力,题型主要有选择题、应用题、算法分析题、算法

填空题和算法设计题。

3、讨论交流:占总成绩的 10% 。课后讨论交流的分数评定是统计课程网站中回复讨论

题的回帖情况。

4、作业:占总成绩的 10%。本门课程所有作业在教学日历中已经布置,作业通过课程

网站提交,自动阅卷评分。

5、讨论:占总成绩的 10%。根据学生课前资料准备,课堂回答问题和小班讨论课上表

现等进行评价。每位学生的每次讨论课分数 = 个人资料 (25%) + 组内互评(25%)+小组报

告 (25%)+回答问题(25%)

个人资料分数,是由任课教师依据每位同学提交的课前准备资料文档来评分。讨论

课个人资料评分规则

1.按照要求提交课前收集准备的资料,报告格式和内容规范,得分 60. (要求包括,

提交方式正确,文件格式和名字正确,提交的题目与布置的题目符合,作业内容采用电子格

式完成,排版规范,内容基本符合要求)

2.内容素材合理有效,阐述清楚,加分 30.

3.能够正确的运用数据结构知识整理素材,按照讨论要求完成报告,加分 10分

组内互评分数,由同组学生根据小组成员在小组讨论中,承担的工作和表现(贡献

度)给予评定。贡献度等级分为:优-积极参与讨论(参考分数 100);良-较积极

12

参与讨论(参考分数 85);中-参与讨论情况一般(参考分数 75);及格-参与讨

论情况差(参考分数 60);不及格-没有参与讨论(参考分数 0)

小组报告分数,由任课教师依据小组报告人现场表现评定,同组成员分数相同。小

组组成:在上课时随机组成,报告的具体内容,上课后布置,小组讨论,合作完成

报告,制作 PPT(时间一般是 30 分钟),报告人现场指派,原则上,每位学生在

一个学期至少要做一次讨论报告。讨论课小组报告评分规则:

1.完成报告(10分钟左右),得分 60分。

2.PPT制作标准合格,加 5分,如果制作精美,再加 10分。

3.内容基本符合要求,素材准确,加 5分,如果内容逻辑合理,素材有效,再加 10分。

4.报告人表述清晰,加 5分,如果能够正确的运用数据结构知识阐述报告,再加 5分

回答问题分数,每位学生在听各个小组报告时,在网络学习平台回答相关问题,任

课教师依据回答问题情况评定。

分数分为:优-积极参与(参考分数 100);良-较积极参与(参考分数 85);中-参与

情况一般(参考分数 75);及格-参与情况差(参考分数 60);不及格-没有参与(参考分

数 0)。

6、实验:占总成绩的 20%,主要考核学生对知识的理解与运用能力、采用现代工具和

科学的方法进行研究的能力。要求学生运用数据结构知识进行程序设计,能设计实验问题的

求解方案,撰写设计报告,完成源代码设计和实现。每次实验成绩(100分)= 程序测试结

果(50%)+ 最终实验报告(50%)

实验的源代码评测

1. 源码测试,采用白盒测试,会先检查代码编写是否符合课程要求。

2. 测试样例一般有 5组测试数据,错一组扣 20分。

最终实验报告

1. 按照要求提交报告,报告格式和内容规范,得分 60. (要求包括,提交方式正确,

文件格式和名字正确,提交的内容与布置的题目和报告内容规范要求符合,内容采

用电子格式完成,排版规范,内容基本符合要求)

2. 报告内容完整,每个部分加 6分(报告中有 5个必写部分).

3. 能够正确的运用数据结构知识完成报告,逻辑清晰,加分 10分

4. 额外奖励加分:有算法流程图,如果画的基本正确,加 5分。有合理的调试分析方

案以及记录,加 5分。有实验心得,如果写的有技术内涵(空谈感想之类不算),

加 5分。注意加分后,成绩超过 100分,会计入期末实验总成绩。

七、教材及参考书

教材

数据结构与算法分析(C++版)(第三版). Clifford A.Shaffer 著, 张 铭、刘晓丹译.

参考书

数据结构(C语言版)严蔚敏 著.

八、课程资源及使用建议

数据结构 SPOC课。登录湖南大学网络教学平台 http://hnu.fy.chaoxing.com/portal