冒泡排序教学设计

  • 格式:doc
  • 大小:96.50 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高一冒泡排序教学设计

一、设计思想

算法与程序设计具有高度的抽象性和严密的逻辑性,教师难教、学生难学成为一个突出的现象。如何消除学生畏惧心理,充分调动学生的积极性,正是我设计该课的主要目标。程序设计的基本方法是自顶向下地逐步求精和模块化。自顶向下地逐步求精是指首先要对所设计的系统有一个全面的理解,其次从顶层开始连续地逐层向下分解,直到系统的所有模块都被分解为一条条的详细指令时为止。模块化是指把一个大的程序按照一定的原则划分为若干个相对独立但又相关的小程序(模块)的方法。依据这个基本方法,在教师的引导下,从简单到复杂,从粗到精,各个难点分解,最后师生共同完成总流程图的设计。在整个过程中,教师要积极引发学生的思考,让他们真正参与进来。

二、教材分析

本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。

《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。”冒泡排序的算法及程序实现就很好地较全面地体现了这点。

排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。

三、学情分析

我是先上第一、三、四章,再上第二和第五章。通过前面三章的学习,同学们已经了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的口味。

四、教学目标

知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码;

能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用;

情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯;

五、重点难点

重点:理解冒泡排序原理及它的流程图

难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)

六、教学策略与手段

采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。

七、课前准备

1.教师的教学准备:冒泡排序的课件

2.教学环境的设计与布置:多媒体网络教室、投影机、多媒体教学平台、flash软件

八、教学过程

一、导入:创新情景

我们经常会碰到要排队的情况,比如排座位,做操、排大合唱队伍等。今天我想请四位同学上来表演一下排队。我报了四位学生的名字,让他们上来,并让他们按报到的次序排起来。问:他们现在是按什么排的?――学号(我有意按学号报的)。好,现在请你们按身高从矮到高排起来。不一会四位学生就排好了。

【设计意图】一开始让四位学生上来,其他学生觉得挺有意思的,所以注意力一下都集中过来。

我指着其中一位换到前面去的学生,问大家他是怎么知道自己矮的。这时下面有学生在喊,他本来就是矮的,还有学生说一看就知道了。我又请这位学生谈谈他当时的想法。一般学生会提到与别人比一下,矮的话就换上去了(如果说不出来,教师可以适当引导一下)。师:对,肯定要比一下才知道,而且需要交换。有些学生说一看就知道,其实也是看了以后经过大脑思维飞快比较得出的结论。

排队其实是一种排序:通过调整位置,把杂乱无章的数据变为有序的数据。如Excel

中的排序功能,通过本节课的学习我们自己也可以设计出类似的小软件。

二、新课

排序的方法很多,这节课我们来学习其中一种比较典型的排序方法――冒泡排序。

1.冒泡排序的基本思想

教师可以先让学生根据字面意思想像一下“冒泡”是一个怎么样的情景――气泡一个一个从下往上不断地冒上来。然后一边讲解一边以文字形式给出冒泡排序的基本思想(书P31略)。特别要强调怎样算一遍处理,而且每遍总是从“最下面起”,“自下而上”,比较“相邻”两数。

我请刚才那四位学生仍先按学号排回来,然后演示利用冒泡排序法进行从矮到高排序的过程。学生在进行表演时,教师可以充当解说员,关键的地方进行提示,如每遍的开始和结束,同时引导学生认识到第几遍处理完找到的应该是第几矮的同学(或第几小的数)。【设计意图】学生的表演比单独拿出几个数来比较往往更能吸引学生的注意力,学生们在轻松活跃的气氛中明确了冒泡排序的基本方法。

演示完毕,教师提出一个问题:4位学生共进行了几遍查找?为什么?

然后再用一个flash动画演示规模为4的数组变量d的数据按非减次序进行冒泡排序的逐个过程,再次强化学生对冒泡排序过程的理解。也为下面每一遍中两两交换情况的分析做了铺垫。

2.画流程图(按非减次序排序)

这块内容是本节课的重点,采用自顶向下逐步求精的方式,由特殊到一般归纳总结,利用模块化,各个难点一一突破。

以具体的情况4个数为例,由最简单的流程图一左侧的图开始,让学生将冒泡排序过程用形象的语言表示出来:不断冒起一个泡(最小数),于是转化成右侧流程图。

流程图一(4个数)

思考:以4个数为例,这里的“不断”有没有限定,到底是几遍呢?为什么? 流程图二(4个数)

给出流程图二左边的图之后,教师可以让学生思考一下,这种结构实际上属于什么结构――循环结构。但是左图是不规范的,我们需要用一个变量来控制循环次数,从而引出用变量i 来记录正在执行的排序的遍数,它的值应该是从1到3,每次做完后加1。让学生回顾一下循环结构的流程图模式,两两学生讨论,合作将上面流程图二左侧的图转换成右侧规范的流程图。

思考:如果参与排序的是n 个数呢?

比较遍数与个数关系:遍数=个数-1

【设计意图】遍数与个数关系算是其中一个难点,但无论是通过学生上台表演以及4个数的flash 动画演示,还是学生已有的认知规律,他们还是可以比较容易得出这个结论的。所以将上面流程图中的“i<=3”改成“i<=n-1”即可得到下面左侧这个流程图。

为了分解后面一个难点,教师让学生用简单的语言描述每次“冒起一个最小数”是怎么冒出来的:不断两两比较交换,这也是冒泡排序也叫“比较交换”法的原因。于是下面左侧流程图又可转化成右侧的形式。 流程图二(n 个数)

i:记录正在执行的排

序的遍数