学校云 建设你的专属在线教育平台
中国大学MOOC
SPOC学校专有课程
数据结构 林甲祥
分享
spContent=数据结构是计算机科学的关键内容,也是构建高效算法的必要基础。其中涉及的知识,在相关专业的课程系统中始终处于核心位置。本课程旨在围绕各类数据结构的设计与实现,揭示其中的规律原理与方法技巧;同时针对算法设计及其性能分析,使学生了解并掌握主要的套路与手段。
—— 课程团队
课程概述

写在选课之前进度:未阅读


(1)为什么学习数据结构?

数据结构作为构建高效算法的必要基础,在计算机科学领域中,起到了技术体系的基石的作用。而其中涉及的知识,在相关专业的课程系统中也始终处于核心位置。以ACM/IEEE Computing Curricula(计算机教学大纲)2005年版为例,其中对于几个相关专业(计算机科学,计算机工程,信息系统,信息技术,软件工程)的共同要求中,数据结构与算法作为程序设计概念与技能的核心,紧随在数学之后排在第二位。


(2)我们会从这门课程学到什么?

在我们的这门课(《数据结构》)中,我们旨在围绕各类数据结构的设计与实现,揭示其中的规律原理与方法技巧;同时针对算法设计及其性能分析,使学生了解并掌握主要的套路与手段。讲授的主题从基础的数据结构,一直延伸至新近的研究成果。


而最终的目标,则是学习数据结构基本的实现原理及其优化技巧,并掌握算法设计及其性能分析的基本方法。

授课目标

本课程围绕数据结构的思想、方法、实现和应用等方面展开教学,力求网络工程专业学生熟悉典型的数据结构,培养其掌握运用和设计有效的数据结构与算法解决实际问题的基本能力,以及算法的时间和空间效率分析的基本能力


成绩 要求

课堂讲授以数据的逻辑结构为线索,全面介绍和讨论典型的数据结构在计算机上的存储结构、基本运算的实现方法和一些应用实例,并介绍一些在操作系统、编译技术和存储管理中涉及数据结构问题的综合应用。适当穿插组织小规模的课堂讨论。每章布置12次作业。

实验教学提前提供具体内容的实验指导书(纸质或电子),要求学生在实验室现场提交实验设计,实时评分。

本课程考核依据如下:

l  出勤率(5%

l  课堂提问和参与讨论(10%

l  作业(10%

l  实验(15%

l  期末考试(60%


课程大纲
预备知识

我的知识储备是否足够应付数据结构课程?


虽然我们常说这门课对于数学基础和编程基础有一定的要求,但这并不意味着你需要精通所有相关课程。实际上,你只需掌握若干重要的数学概念及方法,以及C/C++语言编程的基本技巧。为确认自己是否适宜选修这门课程,不妨对照以下清单做一清点:


离散数学基础: 集合、偏序集、良序、数学归纳法、级数、递归、递推


概率基础: 随机分布、概率、伯努利实验、数学期望、期望值的线性律


参考资料

蔚敏, 吴伟民. 数据结构题集(C语言版).  清华大学出版社, 1999.

邓俊辉数据结构(C++语言版)清华大学出版社,  2011年10月


常见问题

Q :  数据结构课程,是否包含算法部分的内容? A :  是的。前半部分讲解 3种典型的数据结构:线性表、树、图;后半部分讲解 2类典型算法那:查找和排序。