收藏 分享(赏)

“数据结构”课程教学大纲与教学规程.doc

上传人:fmgc7290 文档编号:4562689 上传时间:2019-01-02 格式:DOC 页数:5 大小:49.50KB
下载 相关 举报
“数据结构”课程教学大纲与教学规程.doc_第1页
第1页 / 共5页
“数据结构”课程教学大纲与教学规程.doc_第2页
第2页 / 共5页
“数据结构”课程教学大纲与教学规程.doc_第3页
第3页 / 共5页
“数据结构”课程教学大纲与教学规程.doc_第4页
第4页 / 共5页
“数据结构”课程教学大纲与教学规程.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、“数据结构”课程教学大纲和教学规程1. 课程基本信息课程编号:课程名称(中文):数据结构课程名称(英文):Data Structures开课学期:见培养方案与教学计划课程类别: 核心专业基础课程总学时数与学分: 68 学时(4 学分,不含实验课时,4 学时/周)先修课程: 计算机科学与技术导论、高级语言程序设计、高等数学或数学分析、线性代数或高等代数、集合论与图论、近世代数(可缺省) 。教学形式: 课堂讲授 + 课外教学 + 实验教学(实验部分实行单列)使用教材: 许卓群等编著, 数据结构 ,高等教育出版社,1987 年 5 月第 1 版。教学参考书: 颜蔚敏等编, 数据结构 ,清华大学出版社

2、。注:上述两本书可以互为教材和教学参考书。大纲制定者: 赵致琢、李慧琪(厦门大学计算机科学系)大纲审定者: 此外,配合实验课程的教学中,学生应理论联系实际,理论指导实践,通过规范地完成一系列数据结构实验进一步巩固所学的相关书本知识,在知识、能力、素质上得到进一步的提高。2课程性质、类别与任务“数据结构”是计算机科学与技术专业一门重点专业基础课程,也是学科专业核心专业基础课程之一,属于必修课程。本课程的教学任务是针对大量的信息处理对象,介绍对象信息与数据表示的各种抽象的、基本的逻辑结构及其上的基本运算操作。通过研究各种基本数据结构内在的逻辑关系和它们在计算机中的存储表示方式,初步建立数据结构上基

3、本运算操作的正确性概念,同时,结合各种典型问题讨论其上的各种基本运算操作及其基本算法,讲授各种数据结构的特点、适用范围,以及对一些基本算法效率的定性和定量分析方法,为后续课程提供必要的数据结构基础。此外,配合实验课程的教学中,学生应理论联系实际,理论指导实践,通过规范地完成一系列数据结构实验进一步巩固所学的相关书本知识,在知识、能力、素质上得到进一步的提高。3课程教学的基本要求(教学内容和教学重点)“数据结构”内容的重点是各种数据表示抽象的逻辑结构及其上基本的运算操作。课程教学的基本要求是通过教学活动,使每一个学生较好地掌握课程的主要内容,能够运用数据结构的理论、方法与技术解决相应的、一般的实

4、际问题。课程的教学内容主要包括如下知识点,其中,属于重点的内容用黑体标示,今后教学改革拟增加的内容用绛红色标示,部分非重要内容用括弧标注为“一般了解”:数据结构的概念;数据的逻辑结构;数据的存储结构;线性表;非线性表;四种基本的存储映像方法:顺序、链接、索引、散列;数据结构上的基本运算;几种常用的运算;可支撑算法运行的计算模型;算法;算法的特性;计算正确性;数据结构上运算的正确性;数据结构的选择和评价标准;线性结构与顺序表;向量;向量的运算;栈;栈的基本运算;栈的应用(一般了解) ;递归的概念;栈和递归的关系;队列;队列的基本运算;限制存取点的表:双端队列、双栈、超队列、超栈;数据掩蔽与操作封

5、装;抽象数据类型;基本数据结构上运算的正确性:VDM 元语言或抽象机、操作语义、栈运算的操作语义;2链表与动态存储管理;单链表;单链表的存储结构;单链表的基本运算;栈和队列的链接存储表示;栈的链式存储结构及单链形式栈的运算;队列的链式存储结构及单链形式队列的运算;线性表的其他链接存储表示;循环表及其基本运算;双链表及其基本运算;对称表及其基本运算(一般了解) ;串;串的存储表示;串的顺序存储;串的索引存储及链式存储;串的基本运算及其实现;模式匹配;一些基本的匹配算法;内排序与外排序;排序码;排序;“稳定的”和“不稳定的”排序方法;排序算法好坏的评价标准;一些常用的基本的排序方法:插入排序、直接

6、插入排序、二分插入排序、表插入排序、shell 排序、选择排序、直接选择排序、 树形选择排序、 交换排序、起泡排序、快速排序、分配排序、归并排序、基数排序;线性表的检索;衡量一个检索算法效率的主要标准:平均检索长度;一些基本的检索方法:顺序检索、二分法检索、分块检索、散列表的检索;散列表的检索:散列函数、碰撞、同义词、负载因子;碰撞的处理方法:拉链法、开地址法、插入算法;基于属性的检索:倒排表(一般了解) 、多重表(一般了解) ;树形结构;树;树的递归定义;有序树;森林;二叉树;满二叉树;完全二叉树;树的二叉树表示;森林与二叉树的转换;周游;树形结构的周游;二叉树的周游方式:前序法、后序法、中

7、序法;周游树和树林的主要方式:深度优先周游(先根次序、后根次序) 、宽度优先周游、D-检索;树形结构的存储;链式存储:二叉树和树的 llink-rlink 法存储表示、树的三重链接法存储表示;穿线树:对称序穿线树的概念、按对称序线索化二叉树、按对称序周游对称序穿线树;穿线树上的基本运算操作;顺序存储;完全二叉树的顺序存储;带右链的先根次序表示法;带双标记位的先根次序表示法;带右链的层次次序表示法;带度数的后根次序表示法;不同表示法之间的转换;二叉树周游算法:使用栈的周游算法、使用栈对二叉树进行后序周游、逆转链的周游算法、穿线树、用逆转链的方法对二叉树进行前序周游、Robson 周游算法、用 R

8、obson 算法对二叉树进行后序周游、Siklossy 周游算法、用 Siklossy 算法对二叉树进行对称序周游;树目录;二叉排序树;二叉排序树上的基本运算;最佳二叉排序树;外部路径长度和内部路径长度;最佳二叉排序树的构造方法;具有不等权值结点的最佳二叉排序树的构造方法;平衡的二叉排序树:结点的平衡因子、AVL 树的检索和插入算法;字符树(一般了解) ;双链树;双链树的检索和插入算法;trie 结构;trie 结构的检索算法;树形结构的其他应用:Huffman 算法及其应用;求具有最小带权外部路径长度的扩充二叉树的方法;堆、堆排序;用筛选法建堆的算法和堆排序算法;决策树(一般了解) ;博弈树

9、(一般了解) ;图;图的存储表示法:图的相邻矩阵表示法、图的邻接表表示法、图的邻接多重表表示法;图的周游和生成树;图的深度优先周游和宽度优先周游方法、构造网络的最小生成树方法;最短路径;求带权图中从一个结点到其他各结点的最短路径:Dijkstra 算法;求带权图中每一对结点之间的最短路径的算法;拓扑排序:有向图的拓扑排序、在有向图的邻接表表示上实现拓扑排序;关键路径(一般了解) ;数组结构:多维数组、稀疏矩阵和广义表;多维数组:多维数组的行优先和列优先顺序序列;稀疏矩阵:稀疏矩阵的顺序存储、链式存储和散列存储;稀疏矩阵的乘法(一般了解) ;广义表:广义表、再入表、递归表;广义表的存储:广义表的

10、单链表示法、广义表的双链表示法;文件:顺序文件、文件结构概述、文件的逻辑结构和存储结构、文件上的基本运算操作; 顺序文件;顺序文件的分块插值检索(一般了解) ;散列文件;按桶散列;按桶散列方法的文件组织及查找、修改、插入、删除等运算;索引顺序文件;索引文件的存储结构:静态索引结构、多分树应用;动态索引结构;B-树及其应用、B +树及其应用;类型文件;面向对象表示法:从抽象数据类型到对象结构、类与对象、属性继承、面向对象的数据结构表示方法、对象的基本运算。3抽象数据类型的代数语义(有条件的学校和学生作为选修) 。4教学目标、教学内容的初步论证和教学过程中应该注意的事项在抽象数据类型和面向对象程序

11、设计技术出现以前,各种数据结构大多数都是静态的,数据表示抽象的逻辑结构和其上的运算操作之间是分离的,其上的运算操作大都借助一些简单的算法加以刻画。为了保护程序设计中数据的安全,人们提出了数据掩蔽与操作封装的构想,抽象数据类型的概念随之产生,并由此派生出对象的概念,发展了面向对象的程序设计概念、方法和技术,直至今日的 Agent 和智能 Agent。从那时起,数据掩蔽与操作封装的思想、分层描述与属性继承的思想成为数据描述与程序设计的主导思想之一。在计算机科学与技术的发展过程中,大量的例子已经充分说明,一个问题求解质量好坏和效率的高低,更多地将是取决于问题抽象之后对象信息表示的数据结构而不是施加在

12、数据结构上的操作。因此,数据结构课程的重点要落实在各种数据结构及其上的基本运算操作而不是解决各种问题的算法方面(算法问题将来主要由“算法设计与分析”课程去解决) ,并特别注意以下几点:第一,在介绍各种基本的数据结构时,注意到许多具体数据结构与离散数学密切相关,应该借助离散数学提高数据结构描述的抽象化程度,同时帮助学生建立数据的逻辑结构与存储结构之间的关系,以及如何在数据结构与程序设计语言之间建立有机的联系,这样有利于学生深入掌握计算机科学与技术;第二,算法作为刻画数据结构上基本运算操作的一种载体,应该严格限定在一些简单的基本算法的范围内,同“算法设计与分析”课程之间形成一个合理的分工,不应该过

13、多涉及如何寻找算法和研究算法设计的方法。算法复杂性的分析也是需要的,但此处仅仅是用于比较不同数据结构的优劣;第三,为了提高抽象化程度,体现学科抽象描述求解问题与具体实现解决问题相分离的特点,防止学生面对一个具体问题,先入为主地带上程序或过程的观点去分析、解决问题,数据结构中对算法的描述不应该使用高级程序设计语言,而应该采用数学语言(带自然语言的算术、代数运算、函数运算等) ,更不应该片面强调教材中的算法都在计算机上运算通过,因为所有这些算法在今天看来都是最基本的、简单的,它们的正确性是容易判定的。而且,采用算法刻画数据结构上的基本运算操作,应该介绍可支持算法执行的计算模型;第四,使用抽象的数学

14、语言描述数据结构上的基本运算,欲说明这种运算的含义和正确性,应该介绍操作语义的描述方法(至少要说明存在计算的正确性问题) ,通过对简单数据结构上基本运算语义的描述,帮助学生初步建立计算的正确性这样一种认识和概念。但是,这样一种客观的要求在涉及一些诸如动态数据结构那样的对象时,限于学生的基础和课时,进一步的内容应该将来由程序设计方法学、形式语义学等课程去完成。事实上,一旦采用数学语言来刻画算法的运算操作,就比较容易引入操作语义方法来描述语义。此时,由于算法描述采用数学语言,引入了支持描述语言的计算模型,因此,无论是采用状态机或元语言描述基本运算操作,建立操作语义将是自然的,而且,有助于学生深入认

15、识数据结构知识;第五,对抽象数据类型的讨论可适当深入,以便引出面向对象表示方法。从内涵发展的角度考虑,为了支持未来面向对象程序设计方法和技术的学习, “数据结构”课程的内容中拟加强抽象数据类型、数据的对象表示等内容,并展示面向对象方法、面向对象程序设计方法与技术及其发展前景,但不作深入讨论。学生基础好、师资力量强的学校可通过抽象数据类型的代数理论,可概要介绍刻画复杂对象语义的基本方法和发展前景。第六,鼓励教师结合学科范型(也称范式) ,将学科方法论的内容融入教学过程之中(对教师暂不作基本要求) ,以帮助学生建立与“数据结构”课程内容相关的科学的思想方法。通过上述分析, “数据结构”课程的教学应

16、该注意两个层面的交叉线索。从学科抽象描述求解问题与具体实现解决问题相分离的发展要求出发,第一条线索是从基本数据结构的角度,介绍数据类型、结构类型、存储结构、表、字符串、数据存储、树、图、指针、文件等内容,第二条线索是从运算及其正确性和比较数据结构优劣的角度介绍计算模型、算4法、效率、基本运算操作及其语义正确性,并努力将科学哲学的思想方法融入到教学内容之中。两条线索在抽象数据类型处实现合一。然后介绍抽象数据类型、抽象数据类型的代数理论(抽象数据类型的语义) 、对象、面向对象的数据表示方法,对象理论(不涉及对象的语义理论) ,突出数据掩蔽与操作封装、分层分类描述与属性继承的思想,反映数据结构发展的

17、潮流。这样一种内容设计上的安排,不仅可以从内涵的角度支持面向对象的程序设计和(移动、智能)Agent 计算,而且可以支持人工智能知识表示中从框架、状态空间树向语义网络的发展,向学生展示一个新的发展天地,并且,减少了将来研究生学位课程“形式语义学”中可取材内容偏多的压力,为后续课程提供必要的基础。5课外教学要求本课程的课外教学内容和形式主要由学生读书,任课教师辅导、答疑、批改作业、实践环节等几部分构成,其中,实践环节的实验教学已经单列,实验教学内容已经剥离。本课程要求学生在有时间的情况下,尽可能完成教材中所有的习题。学生应在任课教师的帮助下,认真听课,反复思考,大量完成作业,在学习中反复进行阅读

18、、思考、做习题,通过阅读、思考、做习题、分析、联想、概括、归纳、总结等多种有效的方式方法,比较全面、准确地掌握课程的主要内容和教学重点。任课教师(包括助教)每周安排 2 次辅导、答疑,每次 1 小时。每次辅导、答疑至少应有一位教师参加,一般不得合并执行。主讲教师应批改全班学生作业量的 5%,参加辅导、答疑的次数不少于总次数的 1/5,以掌握教学的效果,调控教学进度。课程对学生作业的质量要求是:正确、简洁、规范。要求做题正确,意味着学生必须掌握基本概念、基本原理、基本方法、基本技术等课程的基本知识,基本知识不掌握,就很难正确解答问题,这是对学生知识水平和解决问题能力的考核。要求做题简洁和规范,意

19、味着在正确解题的情况下,不应该存在“拖泥带水”和“东拉西扯”的问题,而且,正反映出学生在这方面训练有素,这是对学生素质的考核。6课程的实验教学计算机科学实验课程将安排一些有代表性的上机实验单元与本课程相呼应,目的是通过实验让学生体会理论与实践高度统一的学科特点,进一步认识理论、抽象、设计等三个过程及其相互关系,形成对学科范型更深入的体会和认识。其中,有一个单元是综合性的实验,如一个简单的信息管理系统。它要求学生从分析问题出发,解决某一简单的实际问题。如使用多种数据结构完成一个计算问题。学生应按照理论联系实际,理论指导实践的要求,在实际操作中规范地完成各项实验。通过实验工作,借助程序设计语言,在

20、数据结构理论与程序使用的实际数据结构之间建立有机的联系,掌握运用数据结构、算法和程序解决一些简单问题的方法。实验教学按照实验单元进行,一个实验单元完成后或相近内容的一组实验单元完成后,每一个学生要撰写和提交实验报告。任课教师应依据每一个学生的实验报告,在学期结束时给出学生该门课程的学术评语和成绩,并与四个学年所有实验课程评语一起,最终产生对学生的实践能力作出综合评定的学术评语与成绩。学术评语应着重从发展的眼光和视角,考察学生是否能够理论联系实际,理论指导实践,按照实验课程的教学要求,规范地完成实验单元,较好或基本掌握了实验教学的内容。在实验课程单列之前,课程的实践环节拟安排 36 学时(实际执

21、行 9 次共 9*4=36 学时) ,教学内容由大纲确定,实验考核成绩占总成绩的 20-30%,实验课程单列之后,实验考核成绩单独计算,不计入课程考核成绩。7考核的方式方法课程结束考核方式: 闭卷考试课堂考试时间: 3 小时(180 分钟)考试命题: 任课教师命题,研究所分管该课程的负责人和分管教学的系副主任审题;课程考试的命题内容要从大纲的要求出发,围绕本课程的教学内容、知识点和教学要5求,着重从知识、能力、素质三个方面对学生进行全面的考核,重点考核学生运用知识解决问题的能力,同时考察学生的综合素质。考核范围为除了最后一周教学的内容外,其他大纲确定的知识点都在考试范围之内,课程考试的试卷命题

22、范围不得免除期中考试已经考过的内容。试卷中不少于 85%的内容应来自课程重点内容的范围,不少于 10%的内容应来自课程非重点内容的范围,要求学生全面复习,以达到系统掌握,全面考核的目的。试卷的题型要力戒避免文科标准化试卷的题型,避免出现简单概念问答题和简答题。试卷题目数量一般为 5、6、7 题,以优秀学生在全部会做的情况下正常书写速度能够在 120 分钟内完成为宜。试卷题目数量的减少与全面考核的目的并不矛盾。由于考核的范围是明确的,只要教师不透露题型和范围,学生就必须全面复习,这样,即使题目不覆盖某些教学内容,也不会影响实际的教学效果。随堂监考授权: 主讲教师和助教实验考核的方式: 实验操作与

23、实验报告(独立于课程的考试) ,成绩实行四级记分。其中,优(86-100 分) ,良(71-75) ,及格(60-70) ,不及格(59 分及以下) 。期中考试: 由任课教师决定是否安排期中考试,主要用于检查教学情况。口试:任课教师有权根据需要,安排学生进行口试。关于考核的说明: 为了鼓励学生全面掌握课程的教学内容,融会贯通,学期成绩一般应以最后一次考试成绩为准,期中考试的成绩一般不计入最后成绩,而只与平时作业、口试情况等作为少数学生成绩需要提分时的一种参考依据。例如,期中考试成绩优秀而期末考试成绩不佳的同学,以及期末考试成绩在 55 分及其以上,60 分以下的同学,教师可以参考平时作业(较好) 、口试(较好)情况等决定是否加分。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报