VB算法-冒泡排序教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冒泡排序教学设计
班级:高一一班授课教师:袁海军
一、教案背景
模块:算法与程序设计班级:高一(1)班课时数:1课时
所用教材:华师大版《算法与程序设计》教师:袁海军
二、教学设计
1.教学目标
知识与技能:掌握冒泡排序的原理;理解冒泡排序的流程图;学会使用冒泡排序思想设计解决简单排序问题的算法;
过程与方法:进一步理解程序设计的基本方法,体会程序设计在现实中的作用;
情感态度与价值观:培养学生分析问题、发现规律的能力,激发学生学习热情。培养学生联系生活中的算法。
2.教学材料分析
本节是高一信息学科选学模块一《算法和程序设计》部分算法实例章节的排序部分。大纲对冒泡排序部分的要求是“理解/学会冒泡排序的原理和算法”。可见还是比较重要的章节。但是,教材关于排序的讲解不够生动详尽,学生理解起来有些困难。
教学重点:理解冒泡排序原理及它的流程图;
教学难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解);内层循环元素下标的范围;
3.学情分析:
本课程开设对象为本校高一年级学生,在平时的教学过程中我发现,他们对算法部分的相关知识掌握的程度相对较低,学习过程中很容易产生挫败感,因此,我在本次教学过程中注重由浅入深的逻辑,以便他们更好的掌握相关知识。
4.教学策略设计
采用讲解法、演示法、分析归纳法引导学生思考,并设计游戏活动让学生参与。对于重点和难点,化抽象为具体,由特殊到一般,使学生更好的掌握。
三、教学过程
(一)导入:创新情景(1分钟)
通过扑克牌的展示引入排序的概念。
排序:通过调整位置,把杂乱无章的数据变为有序的数据。
(二)新课
为了方便排序,我们将这些无序的数据作为一个数组存放,比如数组a,里面有5个元素。排序的方法很多,这节课我们来学习其中一种比较典型的排序方法――冒泡排序。(1分钟)1.冒泡排序的基本思想(4分钟)
一边讲解一边以文字形式给出冒泡排序的基本思想:把较小的数逐次向上推移的一种排序技术,强调从最后一个元素起,依次比较相邻的两个元素中的数,将较小的数调换到上面。“所
有相邻两个数据比较完一次,就算一遍冒泡。下面我们以5张扑克牌的排序为例,给大家演示冒泡排序的原理和过程。”
设计意图:通过扑克牌引入,有利于消除学生对于枯燥的算法的芥蒂。用动画演示冒泡排序的逐个过程,可以强化学生对冒泡排序过程的理解。
2. 学生游戏(用冒泡排序方法)(8分钟)
以竖排为单位,每一小组成员各得到一张扑克,按照冒泡排序的思想进行排序。教师给与简单的指导。完成后抽查某一小组的结果,让他们顺次念出自己扑克牌的点数。
设计意图:学生体验,每一位学生都有机会参与,可以加深对冒泡排序原理的理解。3.即时练习(2分钟)
下面请同学们对3、1、5、9、4五个数字进行冒泡排序,请问第二遍冒泡后的结果是?
设计意图:及时强化并获取学生掌握情况。
4.总结规律(3分钟)
表一 5个数据比较过程表
根据表格,推导出规律:n个数据进行冒泡排序,共需要n-1遍冒泡,第一遍冒泡需要比较n-1次,第二遍为n-2次……第n-1遍需要1次,一共需要(n-1)+(n-2)+…+2+1=(n-1)[(n -1)+1]/2=n(n-1)/2次。
5.画流程图(20分钟)
这块内容是本节课的重点,采用自顶向下逐步求精的方式,由特殊到一般归纳总结,利用模块化,各个难点一一突破。
小结排序过程:5张扑克牌总共进行了4轮排序。每轮排序冒起一个最小数,于是转化成流程图一。
给出流程图一之后,教师可以让学生思考一下,这种结构实际上属于什么结构――循环结构。但是不规范的,我们需要用一个变量来控制循环次数,从而引出用变量i来记录正在执行的排序的遍数,它的值是从1到4,每次做完后加1。让学生回顾一下循环结构的流程图模式,学生在草稿纸上画出如下流程图(可讨论)。
思考:如果参与排序的是n个数呢?
比较遍数与个数关系:遍数=个数-1
流程图二(推广到n个数)
“冒起一个最小数”的做法实际上就是使所有数按照顺序不断两两比较(如需要,则交换),那么可以将流程图修改为上图。
现在只剩下“不断两两比较交换”还需要进一步细化。如何进行不断两两比较交换?
再次回顾一下刚刚5个数的排序过程表一。(着重标注两两比较的开始的数据的下标)。
共5-1遍第一次比较最后一次比较共比较次数
第1遍d(5)和d(4) d(2)和d(1) 4
第2遍d(5)和d(4) d(3)和d(2) 3
第3遍d(5)和d(4) d(4)和d(3) 2
第4遍d(5)和d(4) d(5)和d(4)(也是第1次) 1
引导学生发现规律:每次都是从最后面一个数开始比较,最后一个参与比较的数的下标与
比较的遍数有关:遍数+1
思考:共n个数呢?
让学生讨论共n个数,各遍比较的情况,特别是第i遍,完成下表的填写:
共n-1遍第一次比较最后一次比较共比较次数
第1遍d(n)和d(n-1) d(2)和d(1) n-1
第2遍d(n)和d(n-1) d(3)和d(2) n-2
……………………
第i遍d(n)和d(n-1) d(i+1)和d(i) n-i ……………………
第n-1遍d(n)和d(n-1) d(n)和d(n-1)(也是第1次) 1
这里又需要用一个变量来标识正在参加比较的数组元素的下标,引进变量j:记录一遍处
理过程中,当前数组元素下标。
小结论:共n个数,第i遍处理时,j的值从n到i+1之间递减,每次d(j)与它的前一个数d
(j-1)进行比较。
流程图三(n个数) 不断两两比较交换
至此,所有问题、难点我们都全部细化,现在将流程图三“两两比较交换”纳入流程图二,
即得下面的总流程图: