高中信息技术_冒泡排序算法教学设计学情分析教材分析课后反思
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高一冒泡排序教学设计
基本路线:数组-排序-冒泡排序【冒泡排序原理--流程图-算法优化】-小结
一、教材分析:本节内容选自浙江教育出版社《算法与程序设计》第五章第三节。本节课主要讲解冒泡排序思想。排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。
教学目标
知识目标:掌握冒泡排序的原理;掌握冒泡排序的流程图;
能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;
进一步学习流程框图的使用。
情感目标:增强分析问题、发现规律的能力,激发学习热情;
学情分析
通过前面的学习,学生已经了解vb算法设计的基本知识,学会
利用自然语言和流程图描述解决问题的算法,对排序中循环语句以有了一定的基础。但数组变量的使用方法尚未接触,程序设计思想比较弱,在实际生活中往往忽视运用排序算法来处理实际问题,这就要求学生通过本节课的学习,学会运用冒泡排序算法来处理实际问题,并为以后学习其它排序算法打下基础。
二、重点难点
重点:理解冒泡排序原理及它的流程图
难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)以及用流程图描述冒泡排序的过程
三、教学策略与手段
采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点、突破难点。
四、课前准备
1.教师的教学准备:冒泡排序的课件、学案、素材
2.教学环境的设计与布置:多媒体网络教室、电子白板、多媒体教学平台等
五、教学过程
课前学习【设计意图】学生能自己学会的不讲。排序数组知识点相对简单,由学生自学完成,之前的知识点学生可能会有所遗忘,通过这个方式让学生回顾。冒泡排序算法原理比较容易也由学生自学完成。
已给出的素材,完成学案关于数组、冒泡排序和循环结构的基本模式的相关部分的内容,。
请同学们学习学习网站上的课前学习,并完成学案的相关部分的内容。
上课!
对答案。
1、之前在巡视过程中拍到的学案内容传到电子白板。师:同学们,我们刚才完成了学案上的一部内容。来看一下同学们的成果。
我们给他掌声鼓励
2、排序的定义,请学生复述。师:如果从已排序的2万个人中,查找一个人,用二分法查找,可以在15步以内完成;如果把地球上
的人排序后,查找一个人,用二分法查找我们可以在35步以内完成。看起来排序是很重要的算法啊。
我们今天来研究排序算法中很经典、最简单的一种——冒泡排序。这节课,我们以非递减的排序为例。
2分钟
4、师:现在我们齐声复述冒泡排序算法的思想
一、导入:观看视频
请大家看一段视频:
视频:《我是歌手》第三季第12期中名次揭晓片段。
教师:洪导所提到的算法确实如李健所说,是冒泡排序吗?
哪位同学站起来分析一下。
掌声。
李健,毕业于清华大学电子工程系,他所分析的这个不够准确,让人有点遗憾。可是,他在毕业二十年后,听到排序后仍能脱口而出“冒泡法”,让我们也不由得感慨清华的教育。正如爱因斯坦所说:当你把学校给你的东西都忘记以后剩下的就是教育,而我们恰恰是运
用剩下的东西去思考,去战胜困难,去创造我们的幸福。知识忘记了,能力沉淀下来。
二、新课:
冒泡排序的思想:冒泡排序算法是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面、较大的数据放在下的。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。
1、现在请同学们来演绎一下的冒泡排序。
请同学们完成学案上的男星年龄的非递减排序。
可以参考冒泡排序上的视频或者文字材料。
学生:在纸上完成相关的表格。
师拍摄相关学生的表格,并传至电子白板展示正确结果及学生的完成情况。
4、小结:当一遍加工完成时,最小的数据已经上升到第一个元
素的位置。
由于每一遍加工都是将本遍最小的元素像气泡一样上浮至本遍的顶端位置,故称为冒泡排序。
课程进行到这里,同学们可能会有疑惑,这个冒泡排序笨且繁琐,明明一眼可以看出结果来,那如果我们要给几万个学生的考试成绩排序呢?张艺谋导演策划大型演出的现场要进行排序呢,图片PPT,或
者同学们也会考虑用EXCEL点一下排序就可以完成,那个排序按钮正是由这样的一类法编成计算机程序来实现的。这就像父母给我们的爱,我们的司空见惯,背后都是父母的良苦用心;哪有什么岁月静好,不过是有人替我们负重前行。
导学案上给出思考题:如果给10个数据排序
需要遍冒泡非递减排序,假定,我
们把这10个数存储在数组a(1)-a(10)中,第一遍
是对哪几个数组元素进行排序?第二遍呢?第三
遍?……最后一遍呢?
第一遍是a(1)-a(10),第二遍是 a(2)-a(10),
第三遍是a (3)-a(10)……第九遍是a(9)-a(10)。
也就是说,我们要对10个数据进行冒泡非递减排序,可以用规模为10的数组来存储数据,需进行9遍的冒泡排序。9遍是同样的工作,我可以用哪种算法结构来实现?循环结构。
可以用一个几遍的循环结构?9遍。我们设循环变
量为i,那么从循环变量的初值开始,i=1,循环变量的
终值是i<=9,下面必然有一个i的自变语句i=i+1,返回
线,当循环次数超过9遍后退出循环,这就是一个9次
循环的框架。
I每取到一个值就是进行一遍从底部开始的冒泡非
递减排序,在每一遍的冒泡排序中,最核心的部分是相邻两个元素的比较,从底部起任意两相邻的元素都要比较,我们可以设一个通用表达式a(j-1)、a(j)之间的比较,所以放在流程图中应该是比较他们的大小。如果,a(j-1)>a(j)就需要交换,否则,不需要交换,那么就应该是一个分支结构,a(j-1)>a(j)?如果大于就互相交换,否则不做任何处理。
这里实现一次的两两比较。
在每一遍的冒泡排序中这样的比较要进行很多次,比如a(9)、a(10)之间……等等很多次,所以这样的分支结构要加循环结构来实现,多次的两两比较我们用红色来标识,把这个分支结构套在另外一个循环结构中,让她能够实现多次两两比较,(画出)同样,她也有初值、终值和步长的自变。