六、建议教材和课程资源 1.建议教材 (1)Java程序设计,王先国、衣杨、关春喜、何忠礼编著,清华大学出版社,2020年 2.教学参考书 (1)Java编程思想(第4版),Bruce Eckel编著,机械工业出版社,2021年 (2)Java从入门到精通(第5版),明日科技编著,清华大学出版社,2021年 (3)Java程序设计教程(第7版),John Lewis,William Loftus编著,电子工业出版社,2021年 3.推荐网站 (1)幕课网,htps:/coding.imooc..com/?c=java (2)中国大学MOOC,htps:hww.icourse163.org/search.htm?search=-java#/ (3)Java社区中文主页,htps:www.oracle.com/cn/technical--resources/ 七、说明 1.本课程实践性较强,需充分使用计算机教学手段,设计丰富案例,以案例为驱动,充分调 动学生的积极性,锻炼学生的实践能力。 2.课程教学中可适当利用官方提供的帮助文档,以补充教材不足。 制定人:计算机系统结构教研室执笔人:李士勇 审核人:黄勇 批准人:高国红 33
33 六、建议教材和课程资源 1.建议教材 (1) Java 程序设计,王先国、衣杨、关春喜、何忠礼 编著,清华大学 出版社,2020 年 2.教学参考书 (1)Java 编程思想(第 4 版),Bruce Eckel 编著,机械工业出版社,2021 年 (2)Java 从入门到精通 (第 5 版),明日科技 编著,清华大学出版社,2021 年 (3)Java 程序设计教程(第 7 版),John Lewis, William Loftus 编著,电子工业出版社,2021 年 3.推荐网站 (1)慕课网,https://coding.imooc.com/?c=java (2)中国大学 MOOC,https://www.icourse163.org/search.htm?search=java#/ (3)Java 社区中文主页,https://www.oracle.com/cn/technical-resources/ 七、说明 1.本课程实践性较强,需充分使用计算机教学手段,设计丰富案例,以案例为驱动,充分调 动学生的积极性,锻炼学生的实践能力。 2.课程教学中可适当利用官方提供的帮助文档,以补充教材不足。 制定人:计算机系统结构教研室 执笔人:李士勇 审核人:黄勇 批准人:高国红
数据结构课程教学大纲 一、课程基本信息 课程名称:数据结构 课程英文名称:Data Structure 课程编码:2115Z0101 学时/学分:64/4 课程类型:专业必修课程 适用专业:计算机科学与技术、T特色实验班 先修课程:C语言程序设计ava语言程序设计、离散数学 课程简介: 数据结构是计算机及相关专业的一门专业核心课程。数据结构课程主要讲授非数值计算领域涉 及的数据的逻辑结构、物理结构以及各种数据结构的操作算法。主要培养学生在非数值计算问题中 分析问题、解决问题的能力,为实际应用所涉及的数据选择适当的逻辑结构、物理结构,并设计相 应的算法的能力。 二、课程目标 (一)课程目标 课程目标1:理解数据结构的基本概念,了解抽象数据类型的定义,掌握算法时间复杂度与空 间复杂度的分析技术。 课程目标2:掌握线性结构、树和图的逻辑结构、物理结构和相关算法,掌握常用的查找和排 序方法。通过挖掘数据结构课程的思政元素,培养学生的工程素养和崇尚科学、精益求精的工匠精 神,引导学生践行社会主义核心价值观,增强文化自信,培养学生的爱国主义精神。 课程目标3:具有一定的分析问题、解决问题的能力,能够根据计算机领域的工程问题选用合 适的数据结构,设计简单的求解算法,并编程实现。 (二)课程目标与毕业要求的关联分析 序号 课程目标 支排的专业毕业要求及指标点 理解数据结构的基本概 念,了解抽象数据类型的 12掌握计算机专业基础知识和编程语言,能够用 定义,掌握算法时间复杂 度与空间复杂度的分析技 于计算机领域工程问题的分析和程序设计。 术。 掌握线性结构、树和图的逻 12掌握计算机专业基础知识和编程语言,能够用 辑结构、物理结构和相关算 于计算机领域工程问题的分析和程序设计。 法,掌握常用的查找和排序
数据结构课程教学大纲 一、课程基本信息 课程名称:数据结构 课程英文名称:Data Structure 课程编码:2115Z0101 学时/学分:64/4 课程类型:专业必修课程 适用专业:计算机科学与技术、IT 特色实验班 先修课程:C 语言程序设计/Java 语言程序设计、离散数学 课程简介: 数据结构是计算机及相关专业的一门专业核心课程。数据结构课程主要讲授非数值计算领域涉 及的数据的逻辑结构、物理结构以及各种数据结构的操作算法。主要培养学生在非数值计算问题中 分析问题、解决问题的能力,为实际应用所涉及的数据选择适当的逻辑结构、物理结构,并设计相 应的算法的能力。 二、课程目标 (一)课程目标 课程目标 1:理解数据结构的基本概念,了解抽象数据类型的定义,掌握算法时间复杂度与空 间复杂度的分析技术。 课程目标 2:掌握线性结构、树和图的逻辑结构、物理结构和相关算法,掌握常用的查找和排 序方法。通过挖掘数据结构课程的思政元素,培养学生的工程素养和崇尚科学、精益求精的工匠精 神,引导学生践行社会主义核心价值观,增强文化自信,培养学生的爱国主义精神。 课程目标 3:具有一定的分析问题、解决问题的能力,能够根据计算机领域的工程问题选用合 适的数据结构,设计简单的求解算法,并编程实现。 (二)课程目标与毕业要求的关联分析 序号 课程目标 支撑的专业毕业要求及指标点 1 理 解 数 据 结 构 的 基 本 概 念,了解抽象数据类型的 定义,掌握算法时间复杂 度与空间复杂度的分析技 术。 1.2 掌握计算机专业基础知识和编程语言,能够用 于计算机领域工程问题的分析和程序设计。 2 掌握线性结构、树和图的逻 辑结构、物理结构和相关算 法,掌握常用的查找和排序 1.2 掌握计算机专业基础知识和编程语言,能够用 于计算机领域工程问题的分析和程序设计
方法。通过挖掘数据结构课 程的思政元素,培养学生的 工程素养和人文素养,培养 学生崇尚科学的精神,引导 学生践行社会主义核心价值 观,增强文化自信。 具有一定的分析问题、解决 问题的能力,能够根据计算 22能够运用计算机科学与技术专业科学的基本原 机领域的工程问题选用合适 理和方法,正确表达计算机应用领域的项目问 的数据结构,设计简单的求 题。 解算法,并编程实现。 三、教学内容及要求 (一)理论教学部分 1.绪论(支排课程目标1) (1)了解数据结构的研究对象、发展历史及其在计算机学科中的地位。 (2)掌握数据结构的基本概念。 (3)了解抽象数据类型的定义、表示和实现方法。 (4)理解算法五个要素的确切含义。 (5)掌握算法设计的要求和算法效率的度量方法, ※课程思政内容及教学要求:结合数据结构课程的的发展历史,介绍历代伟人及科技公司对数 据结构的贡献,培养学生崇尚科学的精神。 2.线性表(支撑课程目标2) (1)了解线性表的逻辑结构的特点。 (2)理解线性表的顺序存储结枸的特点,掌握线性表的顺序存储结构的描述方法,掌握线性 表在顺序存储结构上的基本操作的实现算法。 (3)理解线性表的链式存储结构的特点,掌握线性表的链式存储结构描述方法,特别是链表 中的头结点、头指针和首元结点的区别。掌握线性表在链式存储结构上的基本操作的实现算法,掌 握循环链表的特点,了解双向链表的特点,能在实际应用中选用适当的链表结构。 (4)理解线性表的顺序存储结构和链式存储结构的优缺点及适用场合。 3.栈和队列(支撑课程目标2) (1)掌握栈的逻辑结构特点和操作特点,掌握栈在顺序存储结构和链式存储结构上的基本操 作实现方法。 (2)掌握队列的逻辑结构特点和操作特点,掌握队列在顺序存储结构和链式存储结构上的基 本操作实现方法
35 方法。通过挖掘数据结构课 程的思政元素,培养学生的 工程素养和人文素养,培养 学生崇尚科学的精神,引导 学生践行社会主义核心价值 观,增强文化自信。 3 具有一定的分析问题、解决 问题的能力,能够根据计算 机领域的工程问题选用合适 的数据结构,设计简单的求 解算法,并编程实现。 2.2 能够运用计算机科学与技术专业科学的基本原 理和方法,正确表达计算机应用领域的项目问 题。 三、教学内容及要求 (一)理论教学部分 1. 绪论(支撑课程目标 1) (1)了解数据结构的研究对象、发展历史及其在计算机学科中的地位。 (2)掌握数据结构的基本概念。 (3)了解抽象数据类型的定义、表示和实现方法。 (4)理解算法五个要素的确切含义。 (5)掌握算法设计的要求和算法效率的度量方法。 ※课程思政内容及教学要求:结合数据结构课程的的发展历史,介绍历代伟人及科技公司对数 据结构的贡献,培养学生崇尚科学的精神。 2. 线性表(支撑课程目标 2) (1)了解线性表的逻辑结构的特点。 (2)理解线性表的顺序存储结构的特点,掌握线性表的顺序存储结构的描述方法,掌握线性 表在顺序存储结构上的基本操作的实现算法。 (3)理解线性表的链式存储结构的特点,掌握线性表的链式存储结构描述方法,特别是链表 中的头结点、头指针和首元结点的区别。掌握线性表在链式存储结构上的基本操作的实现算法,掌 握循环链表的特点,了解双向链表的特点,能在实际应用中选用适当的链表结构。 (4)理解线性表的顺序存储结构和链式存储结构的优缺点及适用场合。 3. 栈和队列(支撑课程目标 2) (1)掌握栈的逻辑结构特点和操作特点,掌握栈在顺序存储结构和链式存储结构上的基本操 作实现方法。 (2)掌握队列的逻辑结构特点和操作特点,掌握队列在顺序存储结构和链式存储结构上的基 本操作实现方法
(3)了解栈和队列在程序设计中的应用。 (4)理解栈和队列与线性表的区别和联系。 ※课程思政内容及教学要求:结合队列的先进先出的特点,引导学生树立良好的排队意识,遵 守社会秩序、尊重社会公德,树立起正确的社会导向。由先来先服务的规则引申社会主义核心价值 观的文明、平等、公正,引导学生树立正确的价值观。 4.串(支撑课程目标2) (1)了解串的逻辑结构特点、基本概念和基本操作,掌握串的定长顺序存储结构、堆分配存 储结构和块链存储结构的特点。 (2)掌握串的模式匹配的原理及模式匹配的经典算法。 ※课程思政内容及教学要求:结合字符串的模式匹配操作,介绍病毒感染检测方法,引申到我 国在新冠肺炎爆发以来,党和国家始终坚持人民至上、生命至上,果断采取防控措施,广泛进行核 酸检测,鼓励全民接种新冠疫苗,迅速控制疫情,培养学生的民族自豪感,引导学生努力学习,用 专业知识建设国家,为民族复兴的伟大目标努力奋斗。 5.数组和广义表(支撑课程目标2) (1)了解数组的逻辑结构的特点。 (2)掌握二维数组在以行序或列序为主序的存储结构上元素地址的计算方法。 (3)掌握特殊矩阵的压缩存储方法,了解稀疏矩阵的压缩存储方法。 (4)了解广义表的逻辑结构特点及存储表示方法,掌握广义表的基本概念和取表头、取表尾 基本操作。 6.树(支撑课程目标2) (1)了解树的定义和基本术语。 (2)掌握二叉树的定义、性质和存储结构,掌握二叉树性质的推导、证明方法。 (3)掌握二叉树的先序、中序和后序遍历策略的递归算法,能灵活运用遍历算法实现二叉树 的其他操作,掌握二叉树的层次遍历方法。 (4)了解线索二叉树的基本特征,掌握线索化二叉树的方法。 (5)掌握哈夫曼树的建立方法和哈夫曼编码方法。 (6)掌握树的存储结构及其特点。 (7)掌握树和森林与二叉树的互相转换,了解树和森林的遍历方法。 ※课程思政内容及教学要求:结合树型结构的特点和在家谱中的应用,介绍我国古代四大名著 之一的《红楼梦》中贾家家谱的构成,让学生感受红楼梦的伟大艺术成就,弘扬传统文化,增强文 化自信。 7.图(支撑课程目标2) (1)了解图的逻辑结构特点、图的定义和术语。 (2)掌握图的邻接矩阵和邻接表两种存储结构及其构造算法,能为实际问题的求解选择适当
(3)了解栈和队列在程序设计中的应用。 (4)理解栈和队列与线性表的区别和联系。 ※课程思政内容及教学要求:结合队列的先进先出的特点,引导学生树立良好的排队意识,遵 守社会秩序、尊重社会公德,树立起正确的社会导向。由先来先服务的规则引申社会主义核心价值 观的文明、平等、公正,引导学生树立正确的价值观。 4. 串(支撑课程目标 2) (1)了解串的逻辑结构特点、基本概念和基本操作,掌握串的定长顺序存储结构、堆分配存 储结构和块链存储结构的特点。 (2)掌握串的模式匹配的原理及模式匹配的经典算法。 ※课程思政内容及教学要求:结合字符串的模式匹配操作,介绍病毒感染检测方法,引申到我 国在新冠肺炎爆发以来,党和国家始终坚持人民至上、生命至上,果断采取防控措施,广泛进行核 酸检测,鼓励全民接种新冠疫苗,迅速控制疫情,培养学生的民族自豪感,引导学生努力学习,用 专业知识建设国家,为民族复兴的伟大目标努力奋斗。 5. 数组和广义表(支撑课程目标 2) (1)了解数组的逻辑结构的特点。 (2)掌握二维数组在以行序或列序为主序的存储结构上元素地址的计算方法。 (3)掌握特殊矩阵的压缩存储方法,了解稀疏矩阵的压缩存储方法。 (4)了解广义表的逻辑结构特点及存储表示方法,掌握广义表的基本概念和取表头、取表尾 基本操作。 6. 树(支撑课程目标 2) (1)了解树的定义和基本术语。 (2)掌握二叉树的定义、性质和存储结构,掌握二叉树性质的推导、证明方法。 (3)掌握二叉树的先序、中序和后序遍历策略的递归算法,能灵活运用遍历算法实现二叉树 的其他操作,掌握二叉树的层次遍历方法。 (4)了解线索二叉树的基本特征,掌握线索化二叉树的方法。 (5)掌握哈夫曼树的建立方法和哈夫曼编码方法。 (6)掌握树的存储结构及其特点。 (7)掌握树和森林与二叉树的互相转换,了解树和森林的遍历方法。 ※课程思政内容及教学要求:结合树型结构的特点和在家谱中的应用,介绍我国古代四大名著 之一的《红楼梦》中贾家家谱的构成,让学生感受红楼梦的伟大艺术成就,弘扬传统文化,增强文 化自信。 7. 图(支撑课程目标 2) (1)了解图的逻辑结构特点、图的定义和术语。 (2)掌握图的邻接矩阵和邻接表两种存储结构及其构造算法,能为实际问题的求解选择适当
的存储结构。 (3)掌握图的深度优先遍历和广度优先遍历算法。 (4)理解连通分量和最小生成树的概念,掌挥求最小生成树的方法。 (5)掌握迪杰斯特拉算法求图的单源最短路径的方法, (6)理解拓扑排序和关键路径的概念,掌握拓扑排序的方法,了解寻找关键路径的方法。 ※课程思政内容及教学要求:通过分析最小生成树的概念,引入节约、环保的思想,引导学生 树立厉行节约、反对铺正浪费的正确观念,弘扬中华民族传统美德。 8.查找(支撑课程目标2) (1)了解查找的基本概念。 (2)掌握线性表的顺序查找、折半查找和分块查找方法 (3)掌握二叉排序树的构造和查找方法 (4)了解平衡二叉树的基本概念和平衡的调整方法。 (5)掌握B树的基本概念,掌握B树的查找方法。 (6)了解B+树的基本概念,了解B+树和B树的区别。 (6)掌握哈希表的构造和冲突处理技术,掌握哈希表的查找算法。 9.排序(支排课程目标2) (1)了解排序的基本概念,理解内部排序的定义和各种排序方法的特点 (2)掌握直接插入排序、折半插入排序和希尔排序方法。 (3)掌握骨泡排序和快速排序方法。 (4)掌握简单选择排序和堆排序方法。 (5)掌握归并排序。 (6)了解基数排序方法。 (7)掌握并会分析各种内部排序方法的时间效率和空间效率,了解算法适用范围。 ※课程思政内容及教学要求:通过对比各种内部排序算法的性能和适用场合,培养学生的辩证 思维能力和精益求精的工匠精神, (二)实验教学部分 实验一线性表的顺序实现及应用(支林课程目标3) (1)掌握线性表的顺序存储方式。 (2)掌握线性表在顺序实现方式下基本操作的实现方法 (3)学会利用线性表解决实际问题。 实验二线性表的链式实现及应用(支撑课程目标3) (1)掌握线性表的链式存储方式 (2)掌握链表在链式实现方式下基本操作的实现方法。 (3)学会利用线性表解决实际问题
37 的存储结构。 (3)掌握图的深度优先遍历和广度优先遍历算法。 (4)理解连通分量和最小生成树的概念,掌握求最小生成树的方法。 (5)掌握迪杰斯特拉算法求图的单源最短路径的方法。 (6)理解拓扑排序和关键路径的概念,掌握拓扑排序的方法,了解寻找关键路径的方法。 ※课程思政内容及教学要求:通过分析最小生成树的概念,引入节约、环保的思想,引导学生 树立厉行节约、反对铺正浪费的正确观念,弘扬中华民族传统美德。 8. 查找(支撑课程目标 2) (1)了解查找的基本概念。 (2)掌握线性表的顺序查找、折半查找和分块查找方法。 (3)掌握二叉排序树的构造和查找方法。 (4)了解平衡二叉树的基本概念和平衡的调整方法。 (5)掌握 B 树的基本概念,掌握 B 树的查找方法。 (6)了解 B+树的基本概念,了解 B+树和 B 树的区别。 (6)掌握哈希表的构造和冲突处理技术,掌握哈希表的查找算法。 9. 排序(支撑课程目标 2) (1)了解排序的基本概念,理解内部排序的定义和各种排序方法的特点。 (2)掌握直接插入排序、折半插入排序和希尔排序方法。 (3)掌握冒泡排序和快速排序方法。 (4)掌握简单选择排序和堆排序方法。 (5)掌握归并排序。 (6)了解基数排序方法。 (7)掌握并会分析各种内部排序方法的时间效率和空间效率,了解算法适用范围。 ※课程思政内容及教学要求:通过对比各种内部排序算法的性能和适用场合,培养学生的辩证 思维能力和精益求精的工匠精神。 (二)实验教学部分 实验一 线性表的顺序实现及应用(支撑课程目标 3) (1)掌握线性表的顺序存储方式。 (2)掌握线性表在顺序实现方式下基本操作的实现方法。 (3)学会利用线性表解决实际问题。 实验二 线性表的链式实现及应用(支撑课程目标 3) (1)掌握线性表的链式存储方式。 (2)掌握链表在链式实现方式下基本操作的实现方法。 (3)学会利用线性表解决实际问题