787
备注:
|
← 于2008-02-23 15:34:08修订的的版本11 ⇥
3800
converted to 1.6 markup
|
删除的内容标记成这样。 | 加入的内容标记成这样。 |
行号 1: | 行号 1: |
[[TableOfContents]] | <<TableOfContents>> |
行号 4: | 行号 4: |
(简要说明本说课的内容来自哪一学科、哪一册书、哪一章节) == 本说课内容在学科知识体系中所处地位和作用 == |
本节课是《数据结构C语言描述》第三章第一节“栈”的内容。主要包括栈的定义、栈的实现和栈的应用等内容。本节课的内容“栈”是一种非常重要的数据结构,是在前一章线性表的基础上,对其操作进行限定所产生。栈在计算机各种软硬件中应用广泛,在编译原理、操作系统、计算机体系结构里面有很多应用,许多重要的算法使用栈来实现,为学习后续内容作好铺垫。 |
行号 7: | 行号 7: |
依据《数据结构》教学大纲,设定以下教学目标: * 理解栈的定义和特点 * 掌握栈的两种实现方式 * 了解栈的简单应用 |
|
行号 8: | 行号 13: |
* 重点为栈逻辑结构的特点(限制一端插入删除,先进后出)以及链式栈实现时栈顶位置(栈顶在链表头部)的选择 * 难点为栈在表达式分析中的应用 |
|
行号 10: | 行号 18: |
因为栈与线性表非常相似,所以让学生通过与原有知识内容的比较,引申出新的知识。 通过课堂讨论,不单知道它是怎么实现的,还要理解它为什么是这样实现的。 根据学生普遍程序设计能力弱的特点,在讲解程序中使用黑板来带领学生一步一步写出程序。 |
|
行号 11: | 行号 25: |
== 教学媒体的运用 == | 使用幻灯片展示基本概念、重要结论以及最终的程序实现,使用黑板来引导学生写出程序,使用计算机运行实例程序。 |
行号 14: | 行号 29: |
根据已有的知识和新教授的概念,推出其实现的方法。 根据原理,与老师一起动手,一步一步得到程序实现。 |
|
行号 15: | 行号 34: |
(根据教学内容和采取的教学方法及手段,教给学生一些学习方法,做到授之于渔) | 培养学生计算机程序设计的基本思维,使用栈这种基本数据结构来解决实际问题的能力。 |
行号 17: | 行号 37: |
行号 18: | 行号 39: |
因为栈与前一章线性表有相同的逻辑结构,所以通过与线性表的比较导入栈的概念:“线性表是一种可以在任意位置进行插入和删除的线性结构,但是实际接触的线性结构中不都是这样的,比如一叠碗碟,铁路调度站,子弹夹等。”通过生活中这些的实例来对栈有一个初步的感性认识。 |
|
行号 19: | 行号 42: |
概念部分:通过实例给出栈的定义,并用图形来形象地表示栈的逻辑结构,在图上讲解栈顶、栈底的概念,出栈、入栈的基本操作。讲解操作中突出先进后出的顺序关系。最后给出栈的抽象数据类型(ADT)来完整的认识栈的逻辑结构及其相关的操作。 实现部分:因为学生已经掌握的线性表的实现方法,而栈与线性表非常类似,所以通过栈与与线性表的比较,让学生自己得出栈的两种实现方式:顺序的和链式的。顺序栈的实现方法与顺序表雷同。链式栈使用单链表来实现,就栈顶在单链表的头部还是尾部的问题展开课堂讨论,并得出结论:栈顶是在练表的头部而不是尾部。从而让学生理解链式栈为什么是这样子的。在讲解程序时,使用黑板与学生一起将程序一步一步从无到有的完成。 应用部分:就栈的应用进行举例,包括:数制转换,括号匹配,表达式求值等。 |
|
行号 20: | 行号 49: |
为更进一步理解栈的逻辑结构,理解入栈和出栈顺序的关系,让学生练习列举一组元素入栈后各种不同的出栈顺序。为了掌握栈的应用,练习使用栈来实现回文判断。 |
|
行号 21: | 行号 53: |
让学生思考和讨论栈在实际中还可以用在哪些地方,来结束这次课的内容。最后布置作业和实验习题。 |
|
行号 22: | 行号 57: |
== 程序性 == == 概括性 == == 指导性 == == 艺术性 == (板书设计时要体现出程序性、概括性、指导性、艺术性) |
(参见幻灯片) |
说教材
1. 教材简析
本节课是《数据结构C语言描述》第三章第一节“栈”的内容。主要包括栈的定义、栈的实现和栈的应用等内容。本节课的内容“栈”是一种非常重要的数据结构,是在前一章线性表的基础上,对其操作进行限定所产生。栈在计算机各种软硬件中应用广泛,在编译原理、操作系统、计算机体系结构里面有很多应用,许多重要的算法使用栈来实现,为学习后续内容作好铺垫。
2. 教学目标
依据《数据结构》教学大纲,设定以下教学目标:
- 理解栈的定义和特点
- 掌握栈的两种实现方式
- 了解栈的简单应用
3. 教学重点和难点
- 重点为栈逻辑结构的特点(限制一端插入删除,先进后出)以及链式栈实现时栈顶位置(栈顶在链表头部)的选择
- 难点为栈在表达式分析中的应用
说教法
1. 教学方法
因为栈与线性表非常相似,所以让学生通过与原有知识内容的比较,引申出新的知识。
通过课堂讨论,不单知道它是怎么实现的,还要理解它为什么是这样实现的。
根据学生普遍程序设计能力弱的特点,在讲解程序中使用黑板来带领学生一步一步写出程序。
2. 教学手段
使用幻灯片展示基本概念、重要结论以及最终的程序实现,使用黑板来引导学生写出程序,使用计算机运行实例程序。
说学法
1. 学习方法
根据已有的知识和新教授的概念,推出其实现的方法。
根据原理,与老师一起动手,一步一步得到程序实现。
2. 能力培养
培养学生计算机程序设计的基本思维,使用栈这种基本数据结构来解决实际问题的能力。
说教学程序
1. 新课导入
因为栈与前一章线性表有相同的逻辑结构,所以通过与线性表的比较导入栈的概念:“线性表是一种可以在任意位置进行插入和删除的线性结构,但是实际接触的线性结构中不都是这样的,比如一叠碗碟,铁路调度站,子弹夹等。”通过生活中这些的实例来对栈有一个初步的感性认识。
2. 新知识的学习
概念部分:通过实例给出栈的定义,并用图形来形象地表示栈的逻辑结构,在图上讲解栈顶、栈底的概念,出栈、入栈的基本操作。讲解操作中突出先进后出的顺序关系。最后给出栈的抽象数据类型(ADT)来完整的认识栈的逻辑结构及其相关的操作。
实现部分:因为学生已经掌握的线性表的实现方法,而栈与线性表非常类似,所以通过栈与与线性表的比较,让学生自己得出栈的两种实现方式:顺序的和链式的。顺序栈的实现方法与顺序表雷同。链式栈使用单链表来实现,就栈顶在单链表的头部还是尾部的问题展开课堂讨论,并得出结论:栈顶是在练表的头部而不是尾部。从而让学生理解链式栈为什么是这样子的。在讲解程序时,使用黑板与学生一起将程序一步一步从无到有的完成。
应用部分:就栈的应用进行举例,包括:数制转换,括号匹配,表达式求值等。
3. 检测训练
为更进一步理解栈的逻辑结构,理解入栈和出栈顺序的关系,让学生练习列举一组元素入栈后各种不同的出栈顺序。为了掌握栈的应用,练习使用栈来实现回文判断。
4. 总结巩固
让学生思考和讨论栈在实际中还可以用在哪些地方,来结束这次课的内容。最后布置作业和实验习题。
说板书设计
(参见幻灯片)