《数据结构与算法》课程教学大纲
一、课程简介及教学基本要求
《数据结构与算法》是计算机程序设计的重要理论基础,是计算机相关专业的核心专业基础课程,针对我校计算机学院大学二年级学生开设,它前承高级语言程序设计和高等数学,后接操作系统、编译原理、数据库原理、人工智能等专业课程。程序设计就像搭积木,数据结构是零件,而算法则是设计图纸。高效运行且节约存储空间的程序,取决于数据结构和算法的设计。课程的学习效果不仅关系到后续课程的学习,而且直接关系到软件设计水平的提高和专业素质的培养,在计算机学科教育中有非常重要的作用。
本课程将按照“线性结构,树型结构,图形结构,集合结构”四大模块循序渐进展开,重点学习线性表、字符串、栈和队列、树和二叉树、图以及集合在计算机上的存储和处理。课程采用“线下+线上”“课程+思政”“理论+实践”六位一体,“课前导学→理论精讲→小组实验→闯关训练→实践扩展→答疑反馈”六阶递进的混合教学模式。
二、课程教学目标
通过本课程的学习,使学生掌握数据结构的基本理论与知识,算法设计与分析的基本方法与技巧,培养学生分析和解决实际问题的能力,并为其开展计算机学科应用奠定数据结构与算法方面的基础。通过解决工程问题,践行学术道德教育,增强学生软件岗位职业道德和团队合作意识,理论联系实际、精益求精的工作态度以及勇于开拓的创新精神。具体目标如下:
目标1. 理解数据结构和算法的基本概念。掌握常用基本数据结构的逻辑特征、存储表示和基本运算。掌握常用查和排序算法,并能够分析不同算法的适用场景。
目标2. 具备初步的算法分析能力,会计算算法的时间、空间复杂度。
目标3. 提升分析解决问题的能力,学会分析数据对象的特性,选择(应用)有效的数据结构,设计合适的算法,并编写和调试程序。
目标4. 培养软件岗位职业道德和团队合作意识,理论联系实际、精益求精的工作态度以及勇于开拓的创新精神。
毕业要求
毕业要求分解指标点
课程教学目标
课程贡献度
1.工程知识
1.1掌握数学、自然科学、工程基础和计算机专业的基本概念和基本理论知识,并能够将其用于计算机领域复杂工程问题的表述。(知识掌握)
目标1
字符串是什么数据结构
H
2.问题分析
2.1具备应用数学、自然科学和工程科学的基本原理,识别和判断复杂工程问题的关键环节和参数的能力。(识别)
目标2
H
3.工程设计
3.2理解和分析计算机应用的特定需求,对复杂工程问题进行分解,对子系统模块和业务流程进行设计与开发。(功能设计)
目标3
H
4.调查研究
4.1基于计算机专业技术原理,通过文献研究、信息分析等相关方法,研究和分析计算机领域复杂工程问题的解决方案。(研究分析)
4.2针对相关领域关键问题,研究对象特征,运用计算机科学相关原理和专业知识选择研究路线,设计实验方案。(设计方案)
目标3
H
8.沟通表达和团队合作
8.1具有团队精神,能够胜任团队成员角,具有一定独立解决工程问题的能力,同时又能配合团队合作完成任务,能组织团队成员开展工作,并具有合理协调和决策的能力。(组织与协作)
目标4
L
注:课程贡献度用标志表示(“H”表示“高”,“M”表示“中”,“L”表示“低”)
三、教学内容与教学方法
第一章 绪论
【课程内容】
数据结构与算法课程主要研究非数值计算的现实问题中的数据在计算机中表示、存取和处理。本章内容包括:
1. 什么是数据结构
2. 数据结构的基本概念和术语
3. 算法和算法分析
4.抽象数据类型
知识点:数据的三层次,数据结构的三要素,四种逻辑结构,四种存储结构,算法的概念和
特点,算法的时间和空间复杂度。
【教学方法】
讲授法结合讨论法、翻转课堂、案例教学、项目教学等多种教学方法
【支撑课程目标】
目标1,目标2
【重/难点】
重点:数据结构的概念和术语、算法时间复杂性分析方法。
难点:数据逻辑结构和存储结构的定义以及区别,算法时间复杂性分析方法以及复杂性函数的渐进表示。
【学时分配】
线下理论教学2学时,线下实验0学时,线上单元导学0.5学时,线上习题解析0.5学时,线上
答疑辅导1学时。
【评价方式】
在线学习数据的形成性评价+闯关训练和实验作业的结果性评价。
第二章 线性表
【课程内容】
线性结构是最简单、最常用的数据结构,其特点是数据元素之间的逻辑关系是线性关系。线性结构是数据元素间约束力最强的一种数据结构:在非空线性结构的有限集合中,存在唯一一个被称为“第一个”的数据元素;存在唯一一个被称为“最后一个”的数据元素;除“第一个”数据元素无前驱外,集合中的每个数据元素均有且只有一个“直接”前驱;除“最后一个”元素无后继外,集合中的每个数据元素均有且只有一个“直接”后继。本章内容包括:
1.线性表的类型定义
2.线性表的顺序表示和基本运算
3.线性表的链式表示和基本运算
4.双链表的概念和基本运算
5.循环链表的概念和基本运算
6.线性表实现方法的比较
7.算法设计举例
知识点:顺序表、单链表的定义、特点及基本操作,双向链表、循环链表的特点、定义及基本操作。
【教学方法】
讲授法结合讨论法、翻转课堂、案例教学、项目教学等多种教学方法
【支撑课程目标】
目标1,目标2,目标3
【重/难点】
重点:顺序表、单链表、双向链表、循环链表的插入、删除操作。
难点:顺序表和单链表操作的实现。
【学时分配】
线下理论教学6学时,线下实验4学时,线上单元导学1.5学时,线上习题解析1.5学时,线上答疑辅导3学时。
【评价方式】
在线学习数据的形成性评价+闯关训练和实验作业的结果性评价。
第三章 栈和队列
【课程内容】
栈和队列仍属于线性结构,它们的逻辑结构和线性表相同,具有线性结构的共同特征。学习
本章时,既要注意栈和队列所具有的线性结构的共性,更要掌握其个性。栈和队列的基本操作是线性表操作的子集,限定插入和删除元素的操作只能在线性表的一端进行。栈按“后进先出”的规则进行操作,队列按“先进先出”的规则进行操作。本章内容包括:
1. 栈的概念、特点、逻辑结构、存储结构和基本运算
2. 栈的应用举、栈与递归
3. 队列的概念、特点、逻辑结构、存储结构和基本运算
4. 算法设计举例
知识点:栈的特点及基本操作,顺序栈和链栈的实现,栈与递归,队列的特点和基本操作,循环队列的实现,栈与队列的综合应用
【教学方法】
讲授法结合讨论法、翻转课堂、案例教学、项目教学等多种教学方法
【支撑课程目标】
目标1,目标2,目标3
【重/难点】
重点:栈的压栈和弹栈操作、队列的入队和出队操作、中缀表达式求值
难点:栈的应用:中缀表达式求值、中缀表达式转后缀表达式、后缀表达式求值
【学时分配】
线下理论教学6学时,线下实验2学时,线上单元导学1.5学时,线上习题解析1.5学时,线上答疑辅导3学时。
【评价方式】
在线学习数据的形成性评价+闯关训练和实验作业的结果性评价。
第四章 字符串
【课程内容】
从数据结构角度讲,串属于线性结构,是一种数据元素(简称元素)为字符的特殊的线性表。串的逻辑结构和线性表相似。学习本章时,要注意串所具有的线性结构的共性,更要掌握其个性。串的特殊性主要表现在以下两个方面: ① 串中的一个元素是一个字符;② 操作的对象一般不再是单个元素,而是一组元素。串的基本操作和线性表的基本操作有很大差别。在线性表的基本操作中,大多以单个元素作为操作对象,而在串的基本操作中,通常以“串的整体”作为操作对象,例如,在主串中查子串的位置,在主串中截取一个子串。本章内容包括:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。