全部课程 >算法与数据结构    Algorithm and Data Structure

课程基本信息

课程编码:05B20050

课程类别:未设置

先修课程:高等数学,离散数学,线性代数

适用专业:计算机大类所有专业

开课院部:计算机科学与工程学院

课程负责人:
课程教学团队:

课程展示


课程简介

算法与数据结构是计算机科学的一门重要专业基础课,在整个课程体系中处于承上启下的核心地位。它一方面扩展和深化在离散结构、程序设计语言等课程学到的基本技术和方法;一方面为进一步学习其它专业课奠定坚实的理论与实践基础。课程的主要任务是学习数据的逻辑结构,存储结构以及相关的算法设计。本课程的目的是使学生学会分析待加工处理数据的特性,以便选择适当的逻辑结构、存储结构并进行相应的算法设计。在教给学生数据结构选择和算法设计的同时,培养学生的抽象思维能力、逻辑推理能力和形式化思维方法,增强分析问题和解决问题的能力。

    Algorithm and data structure is an important professional basic course of computer science, in the essential core position in the whole course system. On the one hand, expand and deepen it in the discrete structure, programming language courses to learn the basic techniques and methods; On the one hand, in order to further study other course lay a solid basis of theory and practice. Curriculum is the main task of the study data logical structure, storage structure and related algorithm design. The purpose of this course is to make students learn to analysis for the characteristics of processing the data, in order to select the appropriate logic structure, storage structure and the corresponding algorithm design. Taught in the data structure and algorithm design at the same time, develop the students' ability of abstract thinking, logical reasoning ability and formalized way of thinking, enhance the ability to analyze and solve problems.

课程教学要求

序号

专业毕业要求

课程教学要求

关联程度

1

工程知识

 应用数据结构专业知识解决工程问题。

M

2

问题分析

应用算法与数据结构的基本思想,分析问题及其需求,能够设计组织数据的方法。

H

3

设计/开发解决方案

根据问题的需求,合理设计数据的逻辑结构,数据的存储结构以及相关的算法设计,并能对较复杂的工程问题设计解决方案。

H

4

研究

 

 

5

使用现代工具

熟练使用C++环境和工具,合理选用STL和boost等现代程序库,提高程序开发效率。

M

6

工程与社会

 

 

7

环境和可持续发展

 

 

8

职业规范

遵守编码规范和职业道德,具有良好的职业操守。

M

9

个人和团队

具有良好的协作能力,在团队开发中发挥作用。

L

10

沟通

具有良好的交流能力,应用面向对象思想和方法有效地表达思维和过程。

L

11

项目管理

理解工程管理原理与经济决策方法,并能在多学科环境中应用。

L

12

终身学习

通过学习,掌握算法与数据结构的基本特点,在职业发展中能够自主地、持续学习新技术和新工具。

M

课程教学内容

章节

名称

主要内容

重难点关键词

学时

类型

数据结构基础

1.数据结构的兴起和发展。

2.数据结构的研究对象。

3.数据结构的基本概念。

4.算法以及算法分析。

1.数据结构的定义

2.数据的逻辑结构、存储结构

3.算法分析

4

理论讲授

线性表

1.线性表的逻辑结构。

2.线性表的顺序存储结构及实现。

3.线性表的链接存储结构及实现。

4.线性表的其他存储方法。

5.线性表的应用举例。

1.单链表

2.双向链表

3.静态链表

6

理论讲授

栈和队列

1.栈的特征、顺序栈和链栈的实现。

2.栈的基本应用。

3.队列的特征、顺序队列和链队列的实现。

4.队列的基本应用。

5.递归算法的运行过程,递归算法的特征与设计

1.顺序循环队列

2.递归算法的特征与设计

6

理论讲授

字符串

1.字符串的概念与特征;与线性表的区别和联系;字符串的基本操作。

2.字符串的存储结构以及基本操作的实现。

3.模式匹配算法及改进。

 

1.字符串的基本操作在存储结构上的实现

2.模式匹配的KMP算法

2

理论讲授

数组与广义表

1.多维数组的逻辑结构和存储方法。

2.特殊矩阵的逻辑结构,特殊矩阵的逻辑结构到存储结构的映射函数。

3.稀疏矩阵的特点,利用三元组对及特殊矩阵的压缩及典型操作算法设计。

4.广义表的基本操作、广义表的存储结构。

1.多维数组的逻辑结构和存储结构

2.特殊矩阵的结构特性和压缩存储方法

3.稀疏矩阵的压缩存储

4.广义表的概念与存储

4

理论讲授

树与二叉树

1.树的基本概念和特征。

2.二叉树的概念和性质、二叉树的顺序存储结构和链式存储结构、二叉树的遍历及应用、线索二叉树基本概念和构造。

3.树的存储结构、森林与二叉树的相互转换、树和森林的遍历。

4 .Huffman 树和Huffman编码。

1.树和二叉树的相关算法实现

10

理论讲授

1.图的概念与特征、图的邻接矩阵、邻接表、十字链表的存储。

2.图的深度优先和广度优先遍历。

3.最小生成树的算法与实现。

4.最短路径的算法与实现。

5.拓扑排序的算法与实现。

6.关键路径的算法与实现。

1.图的多种经典算法及其编码实现

10

理论讲授

查找技术

1.查找的概念,查找算法的性能标准。

2.顺序查找、折半查找和分块查找。

3.二叉排序树的概念和查找与操作、平衡二叉树的概念与操作。

4 .B-树及其基本操作、B+树的基本概念。

5.散列表的概念与构造方法,查找性能。

6.查找算法的分析及应用

1.查找算法的时间性能

2.折半查找的判定树;平衡二叉树的操作

3.B-树的操作

10

理论讲授

排序

1.排序算法的概念与性能评估标准。

2.插入排序及经典算法。

3.交换排序及经典算法。

4.选择排序及经典算法。

5.归并排序及算法。

6.基数排序及算法。

7.外部排序。

8.各种内部排序算法的比较。

9.排序算法的应用。

1.Shell 排序

2.快速排序

3.堆排序

8

理论讲授

线性结构综合应用

  1. 顺序表的应用
  2. 链表的应用
  3. 栈的应用
  4. 队列的应用
  5. 稀疏矩阵的应用。

1.顺序表与链表

2.栈与队列

3.稀疏矩阵

10

上机实验

非线性结构综合应用

1.树的应用

2.图的应用

1.树的遍历

2.图的遍历

3.拓扑排序

6

上机实验

查找技术综合应用

1.树查找

1.二叉排序树

2

上机实验

排序技术综合应用

1.内排序

1.希尔排序

2.快速排序

3.归并排序

2

上机实验

考核要求及成绩评定

序号

成绩类别

考核方式

考核要求

权重(%)

备注

1

期末成绩

期末考试

笔试闭卷

100%

百分制,60分及格

2

平时成绩

平时表现

上课上机出勤

 

缺勤3次则无法获得学分

3

作业

15次

 

检查重点内容的掌握情况:函数和函数模板、类和构造函数、继承、虚函数、文件流

4

实验报告

4次

 

检查四个实验项目的完成及相关知识的掌握情况

5

期中考试

笔试闭卷

 

考试题型与期末考试相同

学生学习建议

  • 学习方法建议

本课程在教学实践中需要同时注重数据的逻辑结构、数据的存储结构、相关算法与具体实现。学生在学习过程中需要注意下列3个方面内容:

1.准确理解数据结构的基本概念和算法实现,并勤于在Visual C++环境中编程实践以求熟练应用,通过实验提高对理论知识的理解并提高动手能力。

2.课前预习,课后复习,每堂课后要有一定量的习题来帮助消化所学内容。

3.结合课堂教学和课本上的程序实例所示范的知识点典型应用,能够举一反三,完成比较综合的上机实验项目。

本课程上机实验建议采用Visual C++ 2005(或不低于该版本)作为实验环境。

 

  • 学生课外阅读参考资料
  1. 李春葆.数据结构教程(第4版)上机实验指导 .北京:清华大学出版社,2013.
  2. 李春葆.数据结构教程(第4版)学习指导 .北京:清华大学出版社,2013
  3. 严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社
  4. 殷人昆、陶永雷等.数据结构(用面向对象方法与C++描述).北京:清华大学出版社

 

课程改革与建设

本课程为校级精品课程。在课程建设方面,应注重运用现代教育技术和信息技术加大课程建设力度,切实发挥各类精品资源和平台在教学实践中的作用,引导学生自主学习,提高学生的编程实践能力。在课程改革方面,建议加大考试改革力度,注重日常编程能力的养成训练,加大对该部分训练的考查和对结果的评价运用。

本站 所有信息归:武汉工程大学教务处 版权所有 鄂ICP064787

技术支持: 北京文华在线教育科技股份有限公司    建议在IE8以上浏览器1024*768分辨率下浏览本站