数据结构授课教案理论.docx
- 文档编号:6615136
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:88
- 大小:50.99KB
数据结构授课教案理论.docx
《数据结构授课教案理论.docx》由会员分享,可在线阅读,更多相关《数据结构授课教案理论.docx(88页珍藏版)》请在冰豆网上搜索。
数据结构授课教案理论
数据结构与算法课程(理论)
教
案
课程编号:
09014
总学时:
68周学时:
4
适用年级专业(学科类):
工商学院09级电气信息类
开课时间:
2010—2011学年第1学期
使用教材:
数据结构
授课教师姓名:
石强
教师备课专用
章节
前言
课时
1
教
学
目
的
一、了解本课程在学科中的地位;
二、熟悉本课程所需相关课程及知识;
三、初步了解本课程的学习特点和规律;
四、了解本课程学习要求和成绩评定标准;
五、介绍主要参考书目。
教学
重点
及
突出
方法
一、了解本课程在学科中的地位,采用举例的方法说明相关课程间的联系;
二、了解本课程的学习特点和规律,以程序设计基础中得知市为引子,以书中章节安排为例,让学生对课程的特点有一初步了解;
三、明确提出要求,并列举往年实际学习情况,加深学生印象。
教学
难点
及
突破
方法
一、如何引起学生对本课程的重视?
强调课程的基础性和专业性,广泛联系其他课程,指出本课程的重要性。
二、如何使学生了解本课程的学习特点和规律?
结合学生的编程经历和课本中的章节安排进行阐释。
相关
内容
素材
课程幻灯片
教师备课专用
第1页
教
学
过
程
(教师授课思路、设问及讲解要点)
授课思路:
自我介绍→说明课程内容和地位→说明相关课程和基础知识→说明课程特点和规律→提出教学要求和成绩评定标准
设问:
在说明相关课程和基础知识以及课程特点和规律时,可让学生自己先回顾一下所学过的课程及学习时的经历,以此引出学习本课程时应注意的问题。
讲解要点:
一、本课程的地位:
数据结构是计算机及相关专业中一门重要的专业基础课程。
二、学业基础:
本课程的先修课程为离散数学和高级语言程序设计。
三、本课程的任务:
在基础方面,要求学生掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
四、本课程的任务:
在基础方面,要求学生掌握常用数据结构的基本概念及其不同的实现方法;在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。
五、参考资料:
配套的习题集(与本教材相配发的);清华大学出版社的数据结构(第二、三版),严尉敏、吴伟民主编;其他院校也有类似教材和习题;JAVA和C++语言版的教材(根据个人能力和知识水平选择)。
教师备课专用
第2页
教
学
后
记
基本实现了预期的教学目的,使学生对本课程有了初步的认识和了解,引起了大多数同学对本课程的重视和兴趣,也使学生对教学方面的要求有了明确的认识,有利于今后教学工作的进行,同时也使学生有了前进的方向和目标。
教师备课专用
第3页
章节
第一章绪论(1.1、1.2节)
课时
1
教
学
目
的
一、领会数据、数据元素和数据项的概念及其相互间的关系;
二、清楚数据结构的逻辑结构、存储结构的联系与区别,以及在数据结构上施加的运算及其实现;
三、理解抽象数据类型的概念。
教学
重点
及
突出
方法
一、数据、数据元素、数据项;
二、逻辑结构和数据结构在概念上的联系与区别;
三、存储结构及其三个组成部分;
四、抽象数据类型和数据抽象。
结合计算机文化的基础知识和程序实例来分析说明。
教学
难点
及
突破
方法
一、逻辑结构、存储结构的联系与区别;
二、抽象数据类型与数据抽象。
列举C/C++语言中的程序实例进行理解和对比。
相关
内容
素材
面向对象的程序设计
计算机中的文件管理
第4页
教师备课专用
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
1.1数据结构的概念
1.1.1为什么要学习数据结构
人们使用计算机的目的(提问方式)→具体问题→抽象出数学模型→设计或选择一个解此数学模型的算法→编出程序进行解答
(在此以数学建模大赛为例)
1.1.2有关概念和术语
数据(Data)数据元素(DataElement)数据项(DataItem)
数据对象(DataObject)或数据元素类(DataElementClass)
数据结构(DataStructure)数据的逻辑结构和数据的物理结构
(以文件管理和程序语言中的实例来讲解)
1.1.3数据结构课程的内容
数据结构课程的发展历程→课程的内容→新的趋势
1.2抽象数据类型
1.2.1数据类型
数据类型(DataType)原子类型结构类型
1.2.2抽象数据类型
抽象数据类型(AbstructDataType,简称ADT)
1.2.3抽象数据类型分类
原子类型、固定聚合类型、可变聚合类型
1.2.4定义格式
(可用实际程序举例说明)
教师备课专用
第5页
教
学
后
记
通过学生比较熟知的相关基础知识和实际社会生活的常识的举例,激发了学生学习数据结构的兴趣,对本课程的基本概念和相关术语有了基本了解,课程内容重点突出,安排合理,取得了预期效果。
教师备课专用
第6页
章节
第一章绪论(1.3节)
课时
1
教
学
目
的
一、算法的概念及特点;
二、掌握进行简单算法分析的方法。
教学
重点
及
突出
方法
一、算法与程序;
二、评价算法优劣的标准及方法。
以实际程序为例来分析讲解。
教学
难点
及
突破
方法
一、区别算法与程序;
二、算法的时间复杂度分析;
三、算法的空间复杂度分析。
以实际程序为例来分析讲解,介绍一些ACM比赛的网站,并实际使用在线测试功能来加深学生的理解。
相关
内容
素材
算法设计思想与实现
教师备课专用
第7页
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
1.3算法和算法分析
1.3.1算法特性
算法(Algorithm)
算法特性
算法要求
(注意和程序进行对比来理解)
1.3.2算法描述
自然语言
程序流程图
N-S图
程序设计语言
伪码语言
(举例讲解)
1.3.3算法性能分析与度量
程序性能
时间复杂度定义及方法
(用ACM大赛的相关网站来说明测试问题)
空间复杂度定义及影响因素
(举例讲解,并进行随堂练习)
教师备课专用
第8页
教
学
后
记
通过实际举例加深了学生对计算机的时间和空间概念的认识,对算法使用的伪码语言还是理解不够,主要是这方面的例子还不够完善,需今后改进之。
引起了部分学生对ACM的兴趣,有利于今后学生自主的进行算法程序试验,从而提高学习效率和教学效果。
课后习题:
第5、7、8题
教师备课专用
第9页
章节
第二章线性表(2.1、2.2节)
课时
2
教
学
目
的
一、理解线性表的定义及其运算;
二、理解顺序表的定义、组织形式、结构特征和类型说明;
三、掌握在顺序表上实现的插入、删除和按值查找的算法。
教学
重点
及
突出
方法
一、线性表的定义及逻辑上的特点;
二、顺序表上插入、删除和定位运算的实现。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
教学
难点
及
突破
方法
一、线性表与线性结构的联系与区别;
二、顺序表上插入、删除和定位运算的实现。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
相关
内容
素材
动态演示程序(VB所做的演示课件)
第10页
教师备课专用
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
2.1线性表的逻辑结构
2.1.1线性表的定义
2.1.2线性表的基本操作
线性表初始化、求线性表的长度、取表元、按值查找、插入操作、删除操作
(从逻辑结构的特点和定义出发来分析讲解)
2.2线性表的顺序存储及运算实现
2.2.1线性表的顺序存储
2.2.2顺序表上基本运算的实现
线性表初始化/求线性表的长度/取表元/按值查找/插入操作/删除操作
(从物理结构的特点出发来分析讲解,结合演示程序来直观和真切的认识问题解决的方法和过程)
2.2.3顺序表应用举例
(提出解决问题的基本方法和步骤,利用图形的直观性和现实性来提高解决问题的速度和效率)
教师备课专用
第11页
教
学
后
记
由于使用了动态演示程序,使学生更简便直观的了解了线性表的顺序存储实现的特点和实现过程,加快了教学进度,加深了知识的理解,取得了很好的教学效果,今后应多使用和设计辅助教学程序。
课后习题:
第1、2、3、4、5题
教师备课专用
第12页
章节
第二章线性表(2.3,2.4节)
课时
2
教
学
目
的
一、理解链表的定义、组织形式、结构特征和类型说明;
二、掌握在链表上实现的插入、删除和按值查找的算法;
三、了解循环链表、双(循环)链表的结构特点和在其上施加的插入、删除等操作。
教学
重点
及
突出
方法
一、单链表的结构特点及类型说明;
二、头指针和头结点的作用及区别;
三、定位、删除、插入运算在单链表上的实现;
四、循环链表、双链表的结构特点,循环链表、双链表上删除与插入运算的实现。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
教学
难点
及
突破
方法
一、头结点在链表中的作用及指针操作;
二、删除、插入运算中的指针操作顺序;
三、双链表上指针的操作顺序。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
相关
内容
素材
动态演示程序(VB所做的演示课件)
第13页
教师备课专用
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
2.3线性表的链式存储和运算实现
2.3.1单链表
2.3.2单链表上基本运算的实现
建立单链表求表长查找操作插入操作删除操作
(从物理结构的特点出发来分析讲解,结合演示程序来直观和真切的认识问题解决的方法和过程)
2.3.3循环链表
插入操作删除操作
2.3.4双向链表
插入操作删除操作
2.3.5静态链表
插入操作删除操作
(结合演示程序来直观和真切的认识问题解决的方法和过程)
2.3.6单链表应用举例
(提出解决问题的基本方法和步骤,利用图形的直观性和现实性来提高解决问题的速度和效率)
2.4顺序表和链表的比较
(结合前两节的基本算法实现和应用举例来说明各自特点)
教师备课专用
第14页
教
学
后
记
由于使用了动态演示程序,使学生更简便直观的了解了线性表的链式存储实现的特点和实现过程,加快了教学进度,加深了知识的理解,取得了很好的教学效果。
在解决应用题时,利用图示进行分析,比较好的说明了算发设计的过程和分析方法,有助于学生自学能力的提高。
课后习题:
第6、7、8、9、10题
补充习题:
1、设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C。
其中B的结点是A中值小于0的结点,C的结点是A中值大于0的结点(A表中的元素类型为整型,要求B、C利用A的结点空间)。
2、以ha,hb为头指针的单链表分别表示有序表A和B,本算法判别A是否包含在B内,若是返回1,否则反0。
Intinclusion(linklistha,hb)
{pa=ha->next;pb=hb->next;
if(pa=null)_________;
while(________)
if(pa->data==pb->data)_________;
else_________;
return0;
}
教师备课专用
第15页
章节
第三章栈和队列(3.1节)
课时
2
教
学
目
的
一、理解栈的定义、特征及在其上所定义的基本运算;
二、掌握在两种存储结构上对栈所施加的基本运算的实现。
教学
重点
及
突出
方法
一、栈的定义及逻辑特点,栈的基本运算;
二、栈的顺序存储结构及运算实现;
三、栈的链式存储结构及运算实现。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
教学
难点
及
突破
方法
一、顺序栈的溢出判断条件;
二、双向栈的基本操作控制。
结合图示,从栈的基本形态出发理解和运用。
相关
内容
素材
动态演示程序(VB所做的演示课件)
教师备课专用
第16页
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
第三章栈和队列
3.1栈
3.1.1栈的定义及基本运算
(从逻辑结构的特点和定义出发来分析讲解)
3.1.2栈的存储实现和运算实现
⒈顺序栈
栈初始化、空栈、入栈、
出栈、
取栈顶元素
⒉链栈
置空栈、判栈空、入栈、出栈
3.双向栈
置空栈、判栈空、入栈、出栈
(从物理结构的特点出发来分析讲解,结合演示程序来直观和真切的认识问题解决的方法和过程)
教师备课专用
第17页
教
学
后
记
本章节偏重于基本知识的讲解,着重在理解,因此从栈的逻辑结构出发到具体的存储实现——顺序和链式结构,最后介绍一改进方案——双向栈,充分体现算法设计的过程,再结合动态演示程序,效果良好。
课后习题:
第2、3、4、8、9、10题
教师备课专用
第18页
章节
第三章栈和队列(3.2节)
课时
2
教
学
目
的
通过数制转换问题、迷宫的求解、中缀表达式求值、汉诺塔问题等实际应用理解栈的特点和实际运用方法。
教学
重点
及
突出
方法
一、数制转换问题;
二、迷宫的求解;
三、中缀表达式求值;
四、汉诺塔问题。
从实际问题样例出发,分析出解决问题的相关数据结构。
教学
难点
及
突破
方法
一、迷宫结构的设计、栈的结构设计;
二、中缀表达式分析栈的设计;
三、汉诺塔中占的设计和使用(递归)。
从实际问题的特点分析,结合动态演示程序进行讲解。
相关
内容
素材
动态演示程序(VB所做的演示课件)
教师备课专用
第19页
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
例3.1简单应用:
数制转换问题
例3.2利用栈实现迷宫的求解。
例3.3中缀表达式求值
中缀表达式转换成后缀表达式
后缀表达式求值
(结合演示程序来直观和真切的认识问题解决的方法和过程)
教师备课专用
第20页
教
学
后
记
由于栈的“后进先出”特点,在很多实际问题中都利用栈做一个辅助的数据结构来进行求解,本章节用实际应用问题进一步说明了栈结构的这一特点,使学生加深了印象,取得了较好的效果。
补充习题:
1、写出和下列递归过程等价的非递归过程:
voidtest(intsum)
{inta;
read(a);
if(a=0)sum=1;
else{
test(sum);
sum=sum*a;
}
write(sum);
}
2、已知ackerman函数定义如下:
ackm(m,n)=n+1ifm=0
ackm(m-1,1)ifm!
=0&&n=0
ackm(m-1,ackm(m,n-1))ifm!
=0&&n!
=0
写出非递归算法。
教师备课专用
第21页
章节
第三章栈和队列(3.3、3.4节)
课时
2
教
学
目
的
一、理解队列的定义、特征及在其上所定义的基本运算;
二、掌握在两种存储结构上对队列所施加的基本运算的实现。
教学
重点
及
突出
方法
一、队列的定义及逻辑特点,队列的基本运算;
二、队列的顺序存储结构及其上的运算实现;
三、队列的链式存储结构及运算实现。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
教学
难点
及
突破
方法
一、循环队列的队空、队满判断条件;
二、循环队列上的插入、删除操作。
结合幻灯片中的图示进行分析,然后提出解决方法,最后提出实现的算法,并分析算法性能。
相关
内容
素材
动态演示程序(VB所做的演示课件)
教师备课专用
第22页
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
3.3队列
3.3.1队列的定义及基本运算
(从逻辑结构的特点和定义出发来分析讲解)
3.3.2
队列的存储实现及运算实现
⒈顺序队
置空队
入队
出队
判队空
⒉链队
创建一个带头结点的空队
入队
判队空
出队
3.双向队
(从物理结构的特点出发来分析讲解,结合演示程序来直观和真切的认识问题解决的方法和过程)
3.4队列应用举例
设计一个算法找一条从迷宫入口到出口的最短路径。
教师备课专用
第23页
教
学
后
记
总结:
本章节偏重于基本知识的讲解,着重在理解,因此从队列的逻辑结构出发到具体的存储实现——顺序和链式结构,最后介绍改进方案——双向队,充分体现算法设计的过程,再结合动态演示程序,效果良好。
课后习题:
第6、7题
教师备课专用
第24页
章节
第四章串(4.1、4.2节)
课时
2
教
学
目
的
一、了解串的定义;
二、理解和领会串的存储方式;
三、掌握常用的串运算;
四、初步了解串的模式匹配。
教学
重点
及
突出
方法
一、串的基本概念、基本运算;
二、串的两种存储方式;
三、串的模式匹配算法——BF算法。
从逻辑结构入手,由概念到实际的物理结构设计,最后设计实现算法,并辅助以动态演示程序说明算法过程,分析算法性能。
教学
难点
及
突破
方法
一、串的基本运算的综合应用;
二、串的模式匹配算法(BF)。
举实例来说明基本运算的结合使用,通过动态演示程序说明BF算法的原理和过程,并以此来分析该算法性能。
相关
内容
素材
动态演示程序(VB所做的演示课件)
第25页
教师备课专用
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
第四章串
4.1串及其基本运算
4.1.1串的基本概念
串、子串与主串、子串的位置、串相等
(从逻辑结构的特点和定义出发来分析讲解)
4.1.2串的基本运算
求串长StrLength(s)串赋值StrAssign(s1,s2)
连接操作StrConcat(s1,s2,s)或StrConcat(s1,s2)
求子串SubStr(s,i,len)串比较StrCmp(s1,s2)
子串定位StrIndex(s,t)串插入StrInsert(s,i,t)
串删除StrDelete(s,i,len)串替换StrRep(s,t,r)
4.2串的定长顺序存储及基本运算
4.2.1串的定长顺序存储
类似顺序表
特殊字符作为串的终结符
定长串存储空间
4.2.2定长顺序串的基本运算
(从物理结构的特点出发来分析讲解)
4.2.3模式匹配
1、简单的模式匹配(BF)
(用具体实例,再结合演示程序来直观和真切的认识问题解决的方法和过程)
教师备课专用
第26页
教
学
后
记
总结:
本章节偏重于基本知识的讲解,着重在理解,因此从串的逻辑结构出发到具体的存储实现——顺序和链式结构,最后介绍一模式匹配方法——BF算法,充分体现算法设计的过程,再结合动态演示程序,效果良好,大多数学生理解并掌握了串的基本运算。
课后习题:
第3、4题
教师备课专用
第27页
章节
第四章串(4.2、4.3节)
课时
2
教
学
目
的
一、深入了解并掌握串的模式匹配的方法;
二、了解串的堆存储结构。
教学
重点
及
突出
方法
一、串的模式匹配算法——KMP及其改进算法;
二、串的堆存储结构及其基本运算。
使用动态演示程序辅助讲解模式匹配算法,结合C语言的串操作库函数说明堆的结构。
教学
难点
及
突破
方法
一、串的模式匹配算法——KMP算法;
二、串的模式匹配算法——KMP改进算法。
结合前面BF算法的缺点来对比的提出新的更高效的解决方法,同时使用动态演示举例来辅助说明问题。
相关
内容
素材
动态演示程序(VB所做的演示课件)
第28页
教师备课专用
教
学
过
程
(教师授课思路、设问及讲解要点)
教学主要内容及过程:
4.2.3模式匹配
2、KMP算法
(根据前面的BF算法分析结果提出改进,由此引出KMP算法,从论证原理出发总结算法过程,并最终生成算法,注意使用演示程序辅助教学)
3、改进的KMP算法
(根据前面的KMP算法分析结果提出改进,由此引出改进的KMP算法,最终生成算法,注意使用演示程序辅助教学)
4.3串的堆存储结构
4.3.1串名的存储映象
带串长度的索引表
末尾指针的索引表
带特征位的索引表
(结合幻灯的图示,并举例讲解)
4.3.2堆存储结构
4.3.3基于堆结构的基本运算
(绘图示范算法过程)
教师备课专用
第29页
教
学
后
记
总结:
本章节着重于算法介绍和应用,理解难度较大,通过结合模式匹配可能遇到的实际情况进行分析,使学生理解难度降低,知识掌握程度较好,但理论证明部分还需改进和加强,以提高学生自学能力。
补充习题:
1、模式串t=”abcaabbcabcaabdab”
求next和nextval。
2、主串s=”abcaabbcaaabababaabca”,模式为t=”baba”,求:
next和nextval:
用KMP算法对目标s进行匹配。
教师备课专用
第30页
章节
第五章数组和广义表(5.1、5.2、5.3节)
课时
2
教
学
目
的
一、理解多维数组的结构特点和在内存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 授课 教案 理论