数据结构课程教学大纲
《数据结构》课程教学大纲(三套)
数据结构课程教学大纲(三套)《数据结构》课程教学大纲(36/36 课时)一、课程的性质和任务数据结构是计算机及应用专业中一门重要的专业基础课程,在计算机软件的各个领域中均会使用到数据结构的有关知识。
当用计算机来解决实际问题时,就要涉及到数据的表示及数据的处理,而数据表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是软件方面的课程打开厚实的基础。
因此,数据结构课程在计算机应用专业中具有举足轻重的作用。
本课程的任务是:在基础方面,要求学员掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
总言之,使应用者较全面的掌握各种常用的数据结构,提高运用数据结构解决实际问题的能力。
二、课程的基本要求本课程的教学基本要求如下:本课程要求理论必须与上机实践操作相结合,多做题和调试算法,实现算法。
实践项目只利用课堂时间是不够的,必须提前布置给学生。
通过本课程的学习与实践,学生应达到:1、掌握数据结构的基本概念和基本理论;2、熟练掌握顺序表、链表、队列、栈、树以及二叉树、图等基本数据结构的设计和分析;3、熟练地掌握常用算法(递归、遍历、查找、排序)的知识;4、能对所求解的问题进行分析,抽象出逻辑结构,选择合适的存储结构定义所需的运算,设计相应的算法;5、对算法进行分析和评价。
三、教学内容(一)理论教学(二)实践环节四、课时分配《数据结构》课程共4学分,课内72学时,其中理论课36学时,上机36学时。
五、大纲说明本课程必须理论与上机实践操作相结合,并要教、学、练相结合,讲清基本概念,指出知识要点、重点和难点,并通过实例分析解决算法难点;要求学生认真预习、认真听课、认真思索、认真做实验, 通过对算法的编程实现来提高学生 由于内容多、 难度大, 要特别注重精讲多练, 实践项目一定 要提前布置给学生, 调动学生的主观能动性,鼓励学生多提 问题、共同探讨和解决问题。
《数据结构》课程教学大纲(电子信息、自动化、通信专业)
《数据结构》课程教学大纲(Data Structure)一、基本信息课程编号:B3132312课程类别:学科基础选修课适用层次:本科适用专业:自动化,电子信息工程,通信工程开课学期:第五学期总学分:2总学时:32学时(理论课24学时,实验课8学时)考核方式:考查二、课程教育目标本课程是机电类各专业的学科基础选修课。
通过本课程的学习,学生可以掌握数据结构的基本知识,学会使用合理的数据组织和清晰的算法编写效率更高的程序,积累编写复杂程序的经验,为从事软件设计工作打下坚实基础。
三、教学内容与要求1.理论课教学内容(1)绪论教学内容:数据结构的原则和地位,抽象数据类型和数据结构,算法和算法的效率。
基本要求:使学生了解学习数据结构的必要性,掌握数据结构的定义。
要求学生深刻认识该课程的重要地位。
教学重点:数据结构的定义,算法。
教学难点:算法。
(2)算法分析教学内容:算法基本概念,最佳、最差和平均情况,渐近分析和程序运行时间的计算,空间代价,时间和空间权衡。
基本要求:本章的目的在于使学生了算法分析的方法 ,要求学生掌握时间和空间权衡的意义。
教学重点:算法分析的方法。
教学难点:算法分析的方法。
(3)线性表、栈和队列教学内容:线性表,栈和队列等概念。
基本要求:本章的目的是使学生了解线性表、栈和队列及其实现方式与应用。
教学重点:线性表,栈和队列教学难点:线性表,栈和队列的程序设计。
(4)二叉树教学内容:二叉树定义及主要特征,周游二叉树,二叉树的实现,二叉检索树和堆的概念与应用。
基本要求:本章的目的是使学生了解二叉树、二叉检索树和堆及其实现方式,并能应用。
教学重点:二叉树。
教学难点:二叉树和堆的应用。
(5)树教学内容:树的定义与术语,父指针表示法,树的实现,树的顺序表示法。
基本要求:本章的目的是使学生了解树及其实现方式并应用。
教学重点:树的实现。
教学难点:树的程序实现。
(6)图教学内容:术语与表示法,图的实现,图的周游,最短路径问题。
《数据结构》教学大纲
《数据结构》教学大纲一、课程简介《数据结构》是计算机科学与技术相关专业的基础课程之一。
本课程旨在通过理论与实践相结合的方式,培养学生具备良好的数据结构基础、灵活运用和设计数据结构的能力,并通过算法分析、问题求解等方式培养学生的编程思维和创新能力。
二、教学目标1. 理解数据结构的基本概念和原理,包括栈、队列、链表、树、图等基本数据结构的应用场景与实现。
2. 掌握数据结构的基本算法与操作,包括插入、删除、查找、排序等常用操作的实现与分析。
3. 培养学生良好的编程实践能力,能够灵活运用不同的数据结构解决实际问题。
4. 培养学生团队合作精神和沟通能力,能够与他人合作设计和实现复杂的数据结构与算法。
三、教学内容1. 数据结构基础1.1 数据结构与算法的关系1.2 抽象数据类型与数据结构1.3 算法复杂度与评估方法2. 线性结构2.1 线性表的基本概念与实现2.2 栈与队列的定义与应用2.3 数组与链表的对比与选择3. 树形结构3.1 树的基本概念与性质3.2 二叉树的存储与遍历3.3 二叉搜索树与平衡树的应用4. 图结构4.1 图的基本概念与表示方法4.2 图的遍历与连通性算法4.3 最短路径与最小生成树算法5. 排序与查找5.1 常用排序算法的实现与性能分析 5.2 二分查找算法与应用5.3 哈希表的概念与应用四、教学方法1. 理论讲解:通过授课方式向学生讲解数据结构的基本概念、原理和算法分析方法。
2. 实验实践:通过编写程序实践,巩固和加深学生对数据结构的理解与应用能力。
3. 课堂讨论:鼓励学生在课堂上提问和讨论问题,促进学生思维的活跃和沟通能力的培养。
4. 课程设计:结合实际案例,进行小组项目设计,培养学生团队合作和创新能力。
五、教学评价与考核1. 平时成绩:包括课堂讨论与实验成绩,在课堂上主动提问、积极参与实验的学生将获得较高成绩。
2. 作业与报告:包括编程作业、实验报告等,学生需要按时完成,并按要求展示实现结果与思路。
数据结构课程教学大纲
课程
编号
01025016
01825064
01826064
课程
名称
(中文)数据结构
(英文)Data Structures
课
程
基
本
情
况
1.学分:4学时:40(课内学时:40实验学时:)
2.课程性质:学科基础必修课专业选修课
3.适算机原理》、《C语言程序设计》、《高等数学》
1.掌握线性表的基本概念。
2.掌握线性表的顺序存储结构和链式存储结构。
3.掌握特殊的线性表-栈和队列。
4.了解循环线性链表和双向链表。
(三)串(4学时)
1.了解串的基本概念和存储结构
2.了解串的基本运算
3.掌握串的模式匹配
(四)数组和广义表(4学时)
1.掌握数组顺序存储和链式存储结构
2.了解广义表的定义及其应用
配套
实践
环节
说明
大纲
编写
责任
人
信息与计算科学
(教研组)
戴筠(签名)
2001年06月30日
系
审核
意见
数学
(系)
顾桂定(签名)
2001年06月30日
学院
审核
意见
张金仓
(签名)
上海大学理学院(公章)
年月日
要求学生能够掌握数据的逻辑结构、物理结构以及各种结构所定义的运算和应用。对同一种逻辑结构的数据,讨论其不同的物理结构和相应的有关算法,掌握查找和排序的各种方法。
课
程
内
容
及
学
时
分
配
课
程
内
容
及
学
《数据结构》课程教学大纲.doc
《数据结构》课程教学大纲(201402修订)课程名称:数据结构(英文):Data Structure课程性质:专业基础课适用层次:专升本学时:64 (理论教学时数:48 实践教学时数:16 )先修课程:C++程序设计一、课程的作用、地位和任务1.课程性质:本门课程是是计算机专业中一门重要的专业基础课。
用计算机解决任何问题都需要进行数据表示和数据处理,而数据表示和数据处理正是《数据结构》要研究的内容。
本课程主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。
2.目的和任务:通过本门课程的学习,使学生深透地理解数据结构的逻辑结构和物理结构的基本概念以及有关算法,培养基本的、良好的程序设计技能,编制高效可靠的程序,为学习操作系统、编译原理和数据库等课程奠定基础。
3、教学方法:本课程在多媒体课室授课,讲授内容制成课件,利用计算机把讲授内容与实例结合在一起,通过文字、声音、图像和动画的结合进行授课。
实践环节是强化动手能力培养及对技术细节知识掌握的重要组成部分,也是融会贯通各章知识内容的极好手段。
通过上机调试运行自编程序,熟练掌握程序设计、调试程序的方法,进一步领会程序设计的特点。
4、基本要求:1)了解数据结构及其分类、数据结构与算法的密切关系。
2)熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。
3)掌握设计算法的步骤和算法分析方法。
4)掌握数据结构在排序和查找等常用算法中的应用。
二、课程教学内容和要求(一)理论教学第一章绪论:教学内容与要求:逻辑结构与存储结构的含义1.数据的四种逻辑结构与四种存储结构2.抽象数据类型的含义3.算法的特性,4.时间复杂度与空间复杂度的含义重点与难点:数据的四种逻辑结构与四种存储结构,时间复杂度的估算及比较1.1 常用术语(重点)1.2 算法描述(重点)1.3 算法评价(重点)第二章线性表:教学内容与要求:1 线性表的含义, 2线性表的顺序存储、链式存储的各种算法重点与难点:1 线性表的插入、删除算法, 2.双向链表及循环链表的插入、删除过程2. 1 线性表的定义及抽象描述(重点)2.2 线性表的顺序存储和操作实现(重点)2.3 线性表应用举例2.4 线性表的链接存储结构(重点)2.5 线性表操作在单链表上的实现(重点)2.6 多项式计算第三章栈与队列:教学内容与要求:1栈的定义, 2栈的存储及运算实现, 3栈的应用:表达式求值4.栈与递归的实现,5.队列的定义及存储实现重点与难点:1 栈与队列的基本运算, 2 表达式求值3.1 栈与队列的定义和抽象数据类型(重点)3.2 栈与队列的顺序存储结构和操作实现(重点)3.3 栈的应用:表达式求值第四章串,教学内容与要求:1串的概念, 2串的两种存储方式, 3串的模式匹配算法重点与难点:串的模式匹配算法4.1 串的概念(重点)4.2 串的两种存储方式(重点)4.3 串的模式匹配算法第五章多维数组与广义表,本章内容安排学生自学。
《数据结构》课程教学大纲
《数据结构》课程教学大纲课程编号:0806302024课程名称:数据结构英文名称:Data Structure课程类型:专业基础必修课总学时:72 讲课学时:56 上机学时:16学时:72学分:4.5适用对象:计算机科学与技术专业本科生先修课程:计算机导论、C/C++程序设计I、C/C++程序设计II、离散数学一、课程性质、目的和任务数据结构是计算机学科各专业本科学生必修的一门专业基础课,是计算机程序设计的重要理论和实践基础,是培养学生软件设计能力的一门重要课程,在计算机学科的本科教学中,起着非常重要的作用。
本课程研究计算机系统中常用的线性表、二叉树、图等典型数据结构的设计方法,研究各种典型排序和查找算法的设计方法和性能指标,并介绍这些数据结构和算法在实际工程中的应用。
通过学习本课程,使学生深入理解软件设计的基本要素和基本结构,培养逻辑思维能力,提高程序设计能力。
数据结构课程是一门理论和实践相结合的课程,上机实验、课程设计等实践性环节必不可少。
二、教学基本要求本课程是理论与实践并重的课程,要求学生既要掌握数据结构的基础理论知识,又要掌握操作计算机和运行、调试程序的基本技能;能够熟练运用C/C++语言或其它计算机语言编制具有中等难度的应用程序,在实践中培养独立分析问题和解决问题的作风和能力。
本课程的基本要求如下。
理解线性表、栈、队列、串、数组、树、二叉树、图等基本的数据逻辑结构,掌握描述这些数据结构、选择合适的存储结构和实现各种操作的方法。
熟练运用C/C++语言或其它计算机语言表达链式存储结构;熟练运用递归函数表达递归定义、递归算法和递归结构。
理解插入、交换、选择、归并等多种典型排序算法的思想,掌握在线性表、树等各种不同数据结构中的查找算法。
掌握在计算机语言环境中编辑、编译、运行程序的方法,以及单步运行、设置断点、查看变量运行时值等调试程序的方法。
三、教学内容及要求1.绪论①了解数据结构的基本概念,了解数据的逻辑结构、数据的存储结构和对数据的操作,了解抽象数据类型与数据结构的关系。
数据结构课程教学大纲
数据结构课程教学大纲数据结构课程教学大纲引言:数据结构是计算机科学中的重要基础课程,旨在培养学生对数据的组织、存储和管理的能力。
本文将探讨数据结构课程的教学大纲,包括课程目标、内容安排和教学方法等方面。
一、课程目标数据结构课程的主要目标是帮助学生掌握数据结构的基本概念、原理和应用,培养他们解决实际问题时的数据处理能力。
具体目标如下:1. 理解数据结构的基本概念:包括线性结构、树形结构、图形结构等,以及它们之间的关系和特点。
2. 掌握常见数据结构的实现方法:包括数组、链表、栈、队列、树、图等,了解它们的特点和适用场景。
3. 学会分析和评估数据结构的性能:包括时间复杂度和空间复杂度的计算,了解不同数据结构在不同场景下的效率优劣。
4. 培养解决实际问题的能力:通过实际案例和编程实践,培养学生运用数据结构解决实际问题的思维和方法。
二、课程内容安排数据结构课程的内容应包括基本概念、常见数据结构和算法分析等方面。
以下是一个典型的课程内容安排:1. 基本概念介绍:- 数据结构的定义和分类- 数据结构的基本操作:插入、删除、查找等- 算法的基本概念和复杂度分析方法2. 线性结构:- 数组:定义、初始化、插入、删除等操作- 链表:单链表、双链表、循环链表的定义和操作- 栈和队列:定义、实现和应用3. 树形结构:- 二叉树:定义、遍历(前序、中序、后序)、查找、插入和删除等操作 - 堆和优先队列:定义、实现和应用- 平衡二叉树:AVL树、红黑树的定义和操作4. 图形结构:- 图的定义和表示方法- 图的遍历:深度优先搜索和广度优先搜索- 最短路径算法:Dijkstra算法、Floyd-Warshall算法等5. 高级数据结构:- 哈希表:定义、实现和应用- B树和B+树:定义、插入和删除等操作- 图的高级算法:拓扑排序、最小生成树等6. 算法分析:- 时间复杂度和空间复杂度的计算方法- 算法效率的评估和比较- 算法优化和改进方法的介绍三、教学方法为了提高数据结构课程的教学效果,教师可以采用多种教学方法,如下所示:1. 理论讲解:通过课堂讲解和示意图,向学生介绍数据结构的基本概念和实现方法。
《数据结构》课程教学大纲
《数据结构》课程教学大纲一、课程概述数据结构是计算机科学与技术专业的重要基础课程之一。
本课程旨在介绍数据结构的基本概念、常用数据结构及其应用。
通过本课程的学习,学生应具备设计和实现基本数据结构的能力,能够分析并解决实际问题中的数据组织与处理需求。
二、教学目标1. 掌握数据结构的基本概念和分类。
2. 理解不同数据结构的特点、存储结构和操作方式。
3. 能够应用各类数据结构解决实际问题,并分析其性能。
4. 具备编写高质量代码的能力,考虑代码的可读性和可维护性。
5. 培养团队合作意识和解决问题的能力。
三、教学内容1. 数据结构基础1.1 数据结构的定义和作用1.2 数据结构的分类及常用术语1.3 数据结构的表示与实现方式2. 线性结构2.1 线性结构的概念和特点2.2 线性表的顺序存储结构和链式存储结构2.3 线性表的基本操作(插入、删除、查找)2.4 栈和队列的定义、基本操作以及应用3. 非线性结构3.1 树形结构的概念和特点3.2 二叉树及其存储结构(顺序存储和链式存储)3.3 二叉树的遍历(先序、中序、后序)3.4 树与森林的转换和应用4. 图结构4.1 图的定义和基本术语4.2 图的存储结构(邻接矩阵和邻接表)4.3 图的遍历(深度优先搜索和广度优先搜索)4.4 最小生成树和最短路径算法5. 查找算法5.1 查找的基本概念和分类5.2 顺序查找算法5.3 二分查找算法5.4 哈希查找算法6. 排序算法6.1 排序的基本概念和分类6.2 内部排序算法(插入排序、冒泡排序、选择排序、快速排序、归并排序)6.3 外部排序算法四、教学方法1. 集中讲述与课堂演示相结合的教学方法。
2. 利用多媒体技术展示数据结构的基本概念、实例和操作过程。
3. 提供编程实践的机会,让学生独立设计和实现各类数据结构。
4. 组织小组讨论和团队合作,解决数据结构相关问题。
五、考核方式1. 平时成绩包括课堂表现、作业、实验和参与度。
《数据结构》课程教学大纲
《数据结构》课程教学大纲一、课程编号:0503000二、课程名称:数据结构(32学时)Data Structures三、先修课程:大学计算机基础、C语言程序设计四、适用专业:机械工程及自动化、工业设计、测控技术与仪器、物流工程五、课程教学目的数据结构是计算机学科重要的综合性专业基础课程之一,是非数值计算程序设计的基础,也是设计和实现各种应用软件的重要基础。
通过本课程的学习使学生学会分析和研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,并对算法的效率进行简要分析和讨论。
六、课程教学基本要求1.了解数据结构的基本概念;掌握计算语句频度和估算时间复杂度的方法。
2.了解线性表的逻辑结构特性,熟练掌握在顺序表及各种链表结构中实现线性表的基本方法。
3.熟练掌握栈和队列的顺序表示、链表表示以及相应操作的实现,并能正确应用它们解决实际问题。
4.理解串的基本操作的定义,掌握在串的顺序存储结构上实现串的各种操作的方法。
5.理解数组和广义表的概念,了解特殊矩阵的压缩存储方法。
6.了解树和森林的概念和性质;熟练掌握二叉树的结构特性及二叉树的遍历方法;掌握建立赫夫曼树和赫夫曼编码的方法。
7.理解图的基本概念,熟练掌握图的各种存储结构及实现、两种搜索路径的遍历;理解最小生成树、最短路径、AOV网与拓扑排序、AOE网与关键路径。
8.熟练掌握顺序表、二叉排序树和哈希表的查找算法和性能分析。
9.熟练掌握插入排序、交换排序、选择排序、归并排序的方法及其性能分析方法;了解基数排序方法及其性能分析方法。
七、教学基本内容及学时分配1.绪论2学时1.1 数据结构概念1.2 算法分析方法2.线性表5学时2.1 线性表的类型定义2.2 线性表的顺序表示和实现2.3 线性表的链式表示和实现2.4* 线性表的其他存储方式(循环链表、双向链表、静态链表、间接寻址)2.5* 线性表应用举例3.栈和队列3学时3.1 栈和队列的定义及特点3.2 栈的顺序存储表示和链式存储表示3.3* 栈与递归的实现3.4 队列的顺序存储表示和链式存储表示3.5 栈和队列的应用举例4.串2学时4.1 串类型的定义4.2 串的表示和实现4.3 串的模式匹配算法、*模式匹配的改进算法*5.数组和广义表2学时5.1 多维数组(数组的定义、存储及寻址)5.2 矩阵的压缩存储(特殊矩阵的压缩存储、稀疏矩阵的压缩存储)5.3 广义表的概念、表示及基本操作、广义表的存储结构6.树5学时6.1 树的定义和基本术语6.2 二叉树(二叉树的定义、性质和存储结构)6.3 遍历二叉树、*线索二叉树6.4* 树和森林(树的存储结构、森林与二叉树的转换、树和森林的遍历)6.5 赫夫曼树及其应用(赫夫曼树和赫夫曼编码)7.图5学时7.1 图的逻辑结构(图的定义和基本术语、*图的抽象数据类型、图的遍历)7.2 图的存储结构及实现(邻接矩阵、邻接表、十字链表、邻接多重表、*边集数组、图的存储结构的比较)7.3 图的连通性(无向图的连通性、有向图的连通性、生成树和*生成森林)7.4 图的应用举例(最小生成树、最短路径、*AOV网与拓扑排序、*AOE网与关键路径)8.查找4学时8.1 概述(基本概念、查找算法的性能)8.2 线性表的查找技术(顺序查找、折半查找、*斐波那契查找)8.3 树表查找(二叉排序树、*平衡二叉树)8.4 哈希表的查找(概念、哈希函数的设计、处理冲突的方法、哈希查找的性能分析、8.5* 开散列表与闭散列表的比较)9.排序4学时9.1 概述(基本概念、排序算法的性能)9.2 插入排序(直接插入排序、希尔排序)9.3 交换排序(起泡排序、快速排序)9.4 选择排序(简单选择排序、堆排序)9.5 归并排序(二路归并排序的非递归实现、二路归并的递归实现)9.6* 基数排序八、教学重点、难点教学重点:线性表、栈、树和二叉树、图、查找、排序教学难点:递归、串的改进模式匹配算法、线索二叉树、平衡二叉树、图的应用九、使用教材名称、作者及出版社数据结构(用C语言版),严蔚敏、吴伟民编著,2006年3月,清华大学出版社执笔人:杨福兴。
数据结构教学大纲
《数据结构》课程教学大纲一、课程基本概况课程名称:数据结构课程名称(英文):Data Structure课程编号:课程总学时:64(理论课50 ,实验课14 )课程学分:4课程分类:必修开设学期:第5学期适用专业:计算机网络工程先修课程:《集合论》、《图论》和《高级语言(结构或记录,指针)》。
后续课程:《数据库》、《编译原理》、《操作系统》等二、课程性质、目的和任务本课程系统地介绍线性表、栈、队列、字符串、数组、广义表、树、二叉树、图、查找表等几种数据结构的基本概念、操作及其典型应用的例子,通过课堂教学、课外练习和上机实习,使学生了解数据对象的特性,数据组织的基本方法,并初步具备分析和解决现实世界问题在计算机中如何表示和处理的能力以及培养良好的程序设计技能,为后续课程的学习和科研工作的参与打下良好的基础。
三、主要内容、重点及难点(一)理论部分第一章绪论基本要求:掌握相关的基本概念,算法五大要素,计算语句频度和估算算法时间复杂度的方法。
知识点:1.数据结构的基本概念2. 算法设计3.时间和空间复杂度第二章线性表基本要求:掌握线性表的逻辑结构,线性表的存储结构,线性表在顺序结构和链式结构上实现基本操作的方法,从时间和空间复杂度的角度比较线性表两种存储结构的不同特点及其适用场合。
知识点:1.线性表的逻辑结构2.线性表的存储结构及操作的实现3.一元多项式的表示4.习题讨论课第三章栈和队列基本要求:掌握栈和队列的特点,在两种存储结构上栈的基本操作的实现;熟练掌握循环队列和链队列的基本运算,掌握递归算法执行过程中栈状态的变化过程。
知识点:1.栈的定义、表示及实现2.表达式求值3.栈与递归过程4.队列的定义、表示及实现5.习题讨论课第四章串基本要求:掌握串的七种基本运算的定义,利用这些基本运算来实现串的其它各种运算的方法;掌握在顺序存储结构上实现串的各种操作的方法,KMP算法,熟悉NEXT函数和改进NEXT函数的定义和计算;理解串名的存储映象和在堆存储结构实现串操作的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》教学大纲
一、课程性质与目标
数据结构课程属于专业必修课。
通过本课程数据结构的学习,学生应实现如下目标:
1.知识目标:本课程主要讲述线性表、栈、队列、字符串、数组、树、二叉树、图、查找表、内部排序等常用数据结构的基本概念、操作及其典型应用例子。
通过本课程的学习,应使学生掌握数据结构的概念及不同的存储结构、掌握一些典型算法原理和方法,且能够在不同存储结构上实现编程,同时,对于算法设计的方式和技巧也有所体会。
2.能力目标
(1)独立获取知识的能力——逐步掌握科学的学习方法,不断地扩展知识面,增强独立思考的能力,更新知识结构;
(2)科学观察和思维的能力——运用数据结构的基本理论,熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构。
(3)分析问题和解决问题的能力——学会利用数据结构原理分析实际问题,提高发现问题与解决问题的能力。
对部分优秀的学生,培养其在知名程序设计在线评测系统(如POJ 等)中求解实际问题的能力。
(4)求实精神——通过数据结构理论课程教学,培养学生严谨求实的科学态度和刻苦钻研的作风。
(5)实践能力——通过学习,有意识地培养学生编写高质量、高效率程序的能力和风格。
3.素质目标:使学生具备一定的计算思维,热爱算法设计和程序实现,面对实际问题能转换为计算机能够求解的过程并选择合适的数据结构,设计出在时间和空间上具备一定高效率的程序,培养学生学习算法设计与实现的细心和耐心,培养学生坚韧不拔,攀登技术高峰的优秀品质。
让部分优秀的学生热爱上湖南省大学生程序设计竞赛,体会ACM程序设计竞赛的魅力。
二、课程教学基本要求
课程前应该认真预习,特别是前导课程相关知识体系; 课中应该认真听课,参与教学过程中的互动、回答问题及联系实际编程; 课后积极做好复习、认真完成作业及课程设计相关实践教学的环节。
作业应具备一定实用性的数据结构和算法实现为主,对部分优秀学生,引入一定量的知名程序设计在线评测系统(如POJ等)中与数据结构相关的题目进行编程并在线提交验证正确性与时间、空间效率。
三、教学内容与学时分配
注:1. 课后作业布置应引入程序设计在线评测系统(如POJ等)中的数据结构相关题目,对于计算思维和代码编写能力较强的学生,应鼓励其在程序设计在线评测系统(如POJ 等)中多做题目并提交验证;2. 对于标注“选讲”的内容,当班级整体基础和接受能力较差时,可以不在课堂讲授,也不纳入考试范围,但应在课后组织班上计算思维和接受能力较强的学生学习选讲内容。
注:1. “实验类型”主要分为演示性、验证性、综合性和设计性实验。
2. “开出要求”可分为必修或选修二种形式。
四、教学方法与手段
本课程主要采用课堂讲授+上机指导为主,并辅以案例教学、启发式教学,分组讨论,多媒体课件,观看相关视频演示、引入程序设计在线评测系统做相关习题并在线验证结果、引入企业程序员招聘中与数据结构有关的题目作为案例等多种教学方法。
对于重要的思想、原理、重点和难点在课堂上予以讲授;布置需要上机操作的练习;建立有效的考核机制督促、监管学生的学习成效。
五、考核方式及成绩评定细则
考核方式:
1.期末考试:闭卷、笔试,考试时间不应少于100
分钟,但也不应超过120分钟,成绩评定采用计分制(满分100分);题型采用选择题、填空题、判断题、简答题、算法设计、算法实现题等多种形式组成卷面分,满分100分,60分及格。
2.实践环节:见实验教学信息部分
本课程总成绩评定:
1.综合成绩评定采用计分制,满分100分,60分及格。
综合考核成绩=平时成绩×0.3+期末考试成绩×0.7。
2.平时成绩包含出勤、作业/实验组成,按100分制计分。
出勤占总平时成绩的40%,以每周点名次数为依据,作业/实验占总平时成绩60%。
作业/实验布置应引入程序设计在线评测系统(如POJ等)中的数据结构相关题目,尽量让学生提交源代码电子版,评阅成绩的标准根据相关规定,成绩一般可分为优秀、良好、中、及格、不及格五个等级,评分细则如下:
六、教材与参考资料
推荐教材:
《数据结构(C语言版)》,严蔚敏、吴伟民编著,清华大学出版社,2012.
参考资料
1)《数据结构与算法分析新视角》,周幸妮、任智源、马彦卓、樊凯编著,电子工业出版社,2016.
2)《挑战程序设计竞赛(2)算法和数据结构》,[日]渡部有隆编著,支鹏浩翻译,人民邮电出版社,2016.
3)《数据结构编程实验:大学程序设计课程与竞赛训练教材(第2版)》,吴永辉、王建德编著,机械工业出版社,2016.
4)《算法竞赛宝典(3)基础数据结构》,张新华编著,清华大学出版社,2016.
5)《数据结构(STL版)》,王晓东、陈道蓄编著,清华大学出版社,2009.
6)《数据结构算法与解析(STL版)》,高一凡编著,清华大学出版社,2016.
7)《数据结构(C++语言版)(第3版)》,邓俊辉编著,清华大学出版社,2013.
8)《程序员代码面试指南:IT名企算法与数据结构题目最优解》,左程云编著,电子工业出版社,2015.
9)《图解数据结构(第2版)》,胡昭民编著,清华大学出版社,2016.
大纲执笔人:邹竞
系(教研室)审核人:
学院(部)审定人:。