数据结构教学大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》课程教学大纲
课程代码:030731022
课程英文名称:Data Structures
课程总学时:40 讲课:40 实验:0 上机:0
适用专业:电子信息科学与技术专业
大纲编写(修订)时间:2017.5
一、大纲使用说明
(一)课程的地位及教学目标
数据结构是电子信息科学与技术专业的一门专业基础必修课,是主干课。课程主要讨论现实世界中数据的各种逻辑结构、在计算机中的存储结构以及各种算法的设计问题。通过本课程的学习,使学生掌握组织数据、存储数据以及处理数据的基本概念和软件设计的基本方法,培养学生程序设计能力,提高程序设计兴趣,为后续专业课的学习打下坚实的基础。
(二)知识、能力及技能方面的基本要求
通过本课程的学习,在基础方面,要求学生掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,能够在不同存储结构上实现不同的运算,对不同的问题选择不同的数据结构,并对算法设计的方式和技巧有所体会,学生应用此能力能完成将一个具体的问题进行抽象地表示的任务。
(三)实施说明
本课程主要包括基于不同数据结构的“算法思想设计”和“编程实现”两部分,要求学生理论和实际相结合,不仅要学会较为复杂的数据结构的设计,而且要求在计算机上编程实现。教学中首先要使学生理解不同数据结构的逻辑关系,通过较多的实例说明它们的作用和应用背景,再通过大量的编程练习,使学生掌握数据结构和算法的设计和实现,进一步提高程序设计的能力。
(四)对先修课的要求
本课程的教学必须在完成先修课程之后进行。本课程主要的先修课程是C语言程序设计。
(五)对习题课、实践环节的要求
1.对重点、难点章节(如:算法分析、线性表的应用、栈和队列的应用、树的应用、图的应用、排序的应用等)应安排习题课,习题课重点在于引导学生牢固掌握基本数据结构及其实现,并利用数据结构的知识解决常见实际问题,故采取精讲多练,用以解决实际问题为目的。
2.课后布置适量的作业,适时反馈作业问题。学生必须独立、按时完成课外习题和作业,作业的完成情况应作为评定课程成绩的一部分。
3.每个学生要完成大纲中规定的必修实验,通过实验环节,使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、物理结构和操作实现算法,培养学生进行模块化软件设计的能力。实验成绩作为评定课程成绩的一部分。
4.本课程的课程设计单独设课,单独考核,具体要求参见相应的课程设计教学大纲。
(六)课程考核方式
1.考核方式:考试
2.考核目标:在考核学生对数据结构基本概念和实现方法的基础上,重点考核学生的算法设计和分析能力。
3.成绩构成:本课程的总成绩主要由四部分组成:平时成绩(包括作业情况、出勤情况等)占10%~20%,实践能力(结合《数据结构与算法实践》课程的最终成绩,以及依据平时学生完成算法设计与实现作业的实际情况给分)占10%,期中考试成绩(依据实际授课情况而定)占0~10%,
期末考试成绩占70%。
(七)参考书目
《数据结构:C语言版》,严蔚敏编,清华大学出版社,2007
《数据结构:使用C语言》,朱战立编,电子工业出版社,2009
《数据结构》,田鲁怀编,电子工业出版社,2006
《算法与数据结构:C语言描述》,张乃孝编,高等教育出版社,2006
《实用数据结构基础》,陈元春编,中国铁道出版社,2007
二、中文摘要
本课程是电子信息科学与技术专业的一门专业基础必修课,是主干课。课程主要讲授数据结构中的线、树、图的结构及查找、排序技术,使学生掌握组织数据、存储数据以及处理数据的基本概念和软件设计的基本方法,培养学生程序设计能力。本课程将为后续课程的学习以及相关课程设计、毕业设计等奠定重要的基础。
三、课程学时分配表
注:表中()内的数字代表此部分内容的建议选修学时
四、教学内容及基本要求
第1部分绪论
总学时(单位:学时):2 讲课:2 实验:0 上机:0 第1.1部分学习数据结构的意义及要求(讲课0.5学时)具体内容:
1) 学习数据结构的意义
2) 学习数据结构的要求
第1.2部分数据结构的主要内容(讲课0.5学时)
具体内容:
数据结构的研究内容
第1.3部分基本术语(讲课0.5学时)
具体内容:
掌握数据结构的基本术语
重点:
了解数据类型和抽象数据类型的概念
第1.4部分算法描述及分析(讲课0.5学时)
具体内容:
1) 算法的相关概念
2) 算法分析
重点:
掌握算法的时间复杂度分析方法
难点:
掌握算法的时间复杂度分析方法
习题:
求算法的时间复杂度
第2部分线性表
总学时(单位:学时):6 讲课:6 实验:0 上机:0 第2.1部分线性表的逻辑结构、顺序表的实现(讲课2学时)具体内容:
1) 线性表的逻辑结构
2) 线性表的顺序表示和实现
重点:
顺序存储结构和顺序表的设计方法
难点:
顺序表的设计方法,主要是顺序表的各种操作
第2.2部分单链表的实现(讲课2学时)
具体内容:
线性表链式表示和实现
重点:
链式存储结构和单链表的设计方法
难点:
单链表的设计方法,主要是单链表的各种操作
第2.3部分线性表的应用(讲课2学时)
具体内容:
线性表的应用举例
习题:
线性表的归并实现
建议实验:
熟悉上机环境,C语言基础练习(实验2学时)
建议实验:
线性表的应用(实验2学时)
第3部分栈和队列
总学时(单位:学时):6 讲课:6 实验:0 上机:0 第3.1部分栈(讲课2学时)
具体内容:
1) 栈的定义及特点
2) 栈的顺序存储表示和链式存储表示
重点:
掌握栈在两种存储结构上实现的基本运算
第3.2部分栈的应用(讲课2学时)
具体内容:
栈的应用举例
难点:
利用栈解决实际问题的方法
习题:
利用栈实现表达式求值
第3.3部分队列(讲课2学时)
具体内容:
1 队列的定义及特点
2) 队列的顺序存储表示和链式存储表示
重点:
掌握队列在两种存储结构上实现的基本运算
难点:
利用队列解决实际问题的方法
第4部分数组和广义表
总学时(单位:学时):2 讲课:2 实验:0 上机:0 第4.1部分数组的定义(讲课0.5学时)
具体内容:
数组的定义