介绍学科的起源与发展现状。
学科在计算机专业的地位:核心课程,专业必修课。
可以适当强调一下数据结构课程的重要性:考研,算法竞赛与求职
必备的知识。
论述学习数据结构的必要性:提高逻辑思维能力和软件开发能力。
给出如何学好数据结构这门课程,推荐的学习方法和学习路径。
强调: 动脑 动手 动口
动脑就是听课和思考
动手就是上机编程实践
动口就是勤学多问,多请教讨论,上网查资料。
学习方法:听课->编程->刷题
学习路径: 基本算法->线性结构->非线性结构,抓主要重点学。
数据结构的先修课程:数学,程序设计,计算机导论。
强调数据结构的语言独立性,使用什么程序设计语言学数据结构都可以。
数据结构的后续课程:算法分析与设计。
注意:课程内容陈旧,没有结合时代前沿是现在大部分数据结构参考书的硬伤。
新教材要理解联系实际,强调在实际软件开发中的应用。
新教材中增加知识图谱,思维导图,帮助理解和掌握知识点。
第一章 第1部分:基础概念
数据结构的基本概念:数据,数据项,数据元素,数据对象(基本概念部分也要图文并茂)。
数据结构课程的两大知识模块: 数据结构 与算法。
数据结构与算法的关系:数据结构是算法的基础,算法需要使用数据结构。
数据结构三要素:逻辑结构,物理结构,数据运算。
逻辑结构两大类:线性结构 和 非线性结构。对两种结构做简单介绍,并对各种逻辑结构列举实例,以及应用场景,比如线性表,栈的应用场景,树结构的应用场景,图的应用场景。新的教科书一定要理论联系实际,和实际软件开发紧密结合。每一种数据结构与算法都给出具体的实例,让同学去思考,为什么要使用这种数据结构。
存储结构:常见的四种结构是顺序存储,链式存储,索引存储和哈希存储。
在数据结构课程中,主要研究顺序存储和链式存储。
数据运算:常见的就是对数据的增、删、改、查、排序,数据运算往往和算法相关,比如在线性表中插入数据,这是线性表的一个基本运算,可以对应一个插入算法。
第一章 第2部分:算法
先讲算法的概念,再学数据结构(数据结构从第二章开始)。
需要说明:授课老师可以先讲排序,无需受章节的约束与限制。
1.算法的基本概念:什么是算法?算法等于程序吗?它和程序的区别是什么?
2.算法的作用:为什么要设计算法?
3.如何描述算法:文字,图形,代码。
4.算法的基本特性:五大基本特征。
5.算法的评价:什么样的算法是好的算法?什么样的算法是不好的算法?
6.时间复杂度与空间复杂度。
主要研究时间复杂度。
注意时间复杂度越大,越慢,性能越差(不好)。
时间复杂度越小,速度越快,性能好(时间复杂度越小越好)。
理解并掌握大O表示法。