高中信息技术_冒泡法排序算法教学设计学情分析教材分析课后反思

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

《冒泡法排序算法》教学设计

作 者:

课 时:共2课时,本节为第1课时,理论课

【适用年级】高二年级

【所用教材】教科版《算法与程序设计》

【教学目标】

1、知识与技能 :

让学生了解排序及冒泡法排序的概念;掌握冒泡排序算法思想并学会用冒泡法对数据排序;初步掌握冒泡法排序的程序实现。

2、过程与方法:

通过对冒泡排序过程和程序实现过程的分析,初步掌握用冒泡排序法来解决简单的排序问题。

3、情感目标 :

通过对冒泡排序算法过程的分析,培养学生设计程序解决实际问题的能力,激发学生对程序设计的兴趣,形成积极主动学习信息技术的态度。

【教学重点】

1、冒泡法排序原理;2、运用冒泡法排序解决实际问题。

【教学难点】

1、理解冒泡法排序中的轮与次等概念;2、如何用程序实现冒泡法排序算法

【教学过程】

一、创设情境,导入新课

体验纸牌排序:先让一位同学上台将给定顺序的几张纸牌从小到大排列,完成后让其说一说进行排列的思路。象这种解决问题的方法和步骤就是今天我们要学习的内容:冒泡法排序算法,从而引入课题。

设计意图:从生活实际入手,让学生通过体验排序,谈思路,知道冒泡法排序算法离我们并不远,也并不神秘,从而接进与学生的距离。

二、展示学习目标

设计意图:让学生做到学习时心中有数。

三、新课开始

(一)、剖析课题,初识冒泡法排序算法

1、何谓算法?(回顾)

设计意图:对前面所学知识回顾, 进行情感教育,引导学生学习时只有温故知新,才能不断长进。

2、何谓排序?(自学)

设计意图:本知识比较简单,学生一看就懂,让学生共同回答,目的是给学生学习的信心,并让学生知道,排序在计算机编程中使用非常频繁,并且排序算法有多种,为后面学习做准备。

3、何谓冒泡法排序?(自学)

设计意图:讲之前先说明冒泡法排序在排序算法中的地位,是一种非常经典的排序算法,本知识也不难,学生一看就懂,也让学生共同回答,接着提出问题“如何将相邻元素进行比较和交换呢?”,让学生思考,从而转入下一个问题的学习。

(二)、冒泡法排序的思想(大声朗读) 1、冒泡法排序的思想: 从最下面(或最后面)一个元素(数据)开始,依次比较相邻的两个元素,较小的元素像气泡一样上浮,较大的元素下沉,第一轮找出最小值,第二轮找出次小值,依次类推……

直接展示给学生,并让学生大声朗读。

设计意图:直截了当给出,让学生知道这种思想的重要性,下面知识的展开也是在这种思想的指导下进行的;大声朗读的目的是为了加深印象,读后能基本掌握此概念。

体验冒泡法排序的过程:

例1:对数组a(1)到a(5)中的5个元素“7、10、6、5、9”进行冒泡排序。(师生共同分析完成)

第一轮冒泡情况:

第二轮冒泡情况:

第三轮冒泡情况:

第四轮冒泡情况:

设计意图:对冒泡法排序的思想进一步剖析,弄清排序过程中每一个细节,分清轮与次的区别。有了冒泡法排序的思想的指导,和对例题的分析,学生已经耐不住了,很想动手试一试。

试一试:分次数与轮数体验。

1、次数

第一轮第一次情况:

第一轮第二次情况:

第一轮第三次情况:

第一轮第四次情况:

2、轮数

第一轮排序后的结果:

第二轮排序后的结果:

第三轮排序后的结果:

第四轮排序后的结果:

设计意图:同学体验并结合教师动画展示,让学生进一步体会冒泡法排序的思想,强调次与轮的不同。

小结:教师引导学生总结结果,教师再次进行补充完善冒泡法排序算法的思想。

设计意图:有了上面的体验,询问学生对6个、7个元素排序又将怎样?n个元素排序又将怎样?再次进行情感教育,引导学生学习时要善于寻找规律,发现规律,得出规律,从而更快解决同类的问题。

思考:对于上面的方法和步骤,怎么编程实现呢?

设计意图:带着问题,进行下一个问题的学习。

(三)、冒泡法排序的程序实现(利用VB)

1、识读P58图3-13流程图,小组讨论后回答以下问题,代表发言。

(1)将图中n换成数字5,按流程执行每一步,直到结束,讲述全过程。

(2)在流程图中,实现数字大小的比较和交换时用到什么结构?在VB中用什么语句?

(3)在流程图中,哪里用到循环结构?在VB中用什么语句实现?两个循环之间什么关系,哪个有外面?

设计意图:本流程图比较复杂,不易读懂,安排小组合作学习,完成3个问题,问题完成了,程序的基本框架就有了。

2、程序实现(对数组a(4)中5个元素冒泡排序) 先让学生说出程序的基本框架,再结合流程图,确定内、外循环的变量,对代入的5个元素来说,确定变量的初值和终值,这样,冒泡法排序的程序段就有了。

设计意图:回顾算法描述中流程图描述、程序的基本结构中选择结构与循环结构,算法指导编程,顺理成章,前面知识得到了复习,后面的知识也眉目清晰了。

思考:

1、若数组a(4)变为a(1to5) ,那么外循环 for i= to ;

内循环for j= to

2、若数组包括n个元素,分别是 a(1)、 a(2) ……a(n) ,

那么外循环 for i= to ;内循环for j= to

3、若程序中“<”改为“>”,程序运行结果会有什么变化?

设计意图:进一步剖析冒泡法排序,让学生对程序段能透彻理解。

小结:引导学生总结规律,达到举一反三,触类旁通。

(四)、课堂小结

冒泡法排序:

1从 数据开始

2依次比较 数据

3把 的数据逐次向上推移

如果对有n个元素数组进行排序,则:

1要进行 轮冒泡

2第一轮冒泡要经过 次比较

3第二轮冒泡要经过 次比较

……

4第n-1轮冒泡要经过 次比较

设计意图:巩固知识

(五)课堂练习(略)

设计意图:检查知识掌握情况。

学情分析

第三章第四节《冒泡法排序算法》这节课理论性比较强,相对于前面章节的内容来说,虽然有些难度,但对于排序学生并不陌生,只是还没上升到理论层次,且学生前面又学习了算法及对算法的描述、程序设计的三种结构、数组的概念和应用、理解了解析法和穷举法两个典型算法,这些都为学习冒泡法排序算法奠定了基础,所以“冒泡法排序”流程图读起来虽然有些难度,但学生还是能读懂的,能读懂流程图,实现程序也就不成问题。

评测效果:

针对合格考而言,《算法与程序设计》考查方式是选择与填空。本节课题目是这样设置的:5个题目分别从不同的角度考查了冒泡法排序的思想及程序实现,第1个是选择题,主要考查学生对每一轮排序后结果的掌握情况;第2个是选择题,主要考查学生对排序过程中次的掌握情况;第3个是选择题,主要考查某轮排序的比较与交换情况;第4个是选择题,主要考查程序与思想相结合,某轮排序后的结果的情况;第5个是填空题,主要考查学生对程序掌握的情况,5个题目一个比一个拔高,虽然选择题比较基础,但在课本找不到原话,是对课本知识做了变通,若不仔细推敲,难以做出正确的选择,同时提醒同学要把知识学活,能灵活运用,而不是去死记硬背。总体感觉效果不错,知识得到落实。

课下实践是对有能力的同学来设置的,对他们更是一个提高。

教材分析

本节课选自教科版高中《算法与程序设计》(选修)课本,第三章第四节第一部分“冒泡法排序算法” 内容。

一组不长的数据(如6个),从小到大排序,对学生说是一件非常容易的事情,但他们并不知道计算机是怎么实现排序的,同时他们也没见过计算机对大量数据(如10000个)的排序,学习排序有助于学生对计算机工作原理的认识。冒泡法排序对学生来说初次接触,但前面学习的程序的选择结构与双重循环结构、数组、解析法、枚举法等部分内容,对学习这节课都有一定的帮助,同时冒泡法排序的学习以可以巩固前面的知识。

关于冒泡法排序算法我安排了2个课时,本案例是教室内完成的第1课时,对排序算法的要求是“通过实例,使用排序算法设计程序解决问题的方法”,冒泡法排序算法是程序设计中的重要算法,又不容易理解,因此本节课通过多种方式加深学生对冒泡法排序算法的理解,结合课本的流程图,到程序实现框架,有了眉目。第2课时安排学生上机实践:对一批数据进行冒泡排序,是下一节课的内容。

课堂检测:

1、对“648251”中的6个数码进行两轮冒泡排序后的结果是( )

A.684521 B.462518 C.126485 D.864521

2、有一组原始数据:21、26、18、63、84、77、66、12、33、17。利用冒泡排序算法进行从小到大排序,需要进行( )次比较,才可以完成第一轮数据的排序。

A.5 B.6 C.8 D.9

3、下表中的原始数据是一组学生的军训打靶成绩,若采用冒泡排序算法对其进行排序,则第3遍的排序结果是 。

原始数据 第一遍 第二遍 第三遍 第四遍

98 85 85 85

95 98 88 88 85 95 98 93

93 88 95 95

88 93 93 98

4、实现某排序算法的部分VB程序如下:

For i=1 To 4

For j=5 To i+1 Step -1

If a(j)

t=a(j):a(j)=a(j-1): a(j-1)=t

Next j

Next I

在经过某一遍排序“加工”后,数组元素a(1)到a(5)的数据依次为“26、78、52、60、33”。则下一遍排序“加工”后数组元素a(1)到a(5)的数据应该是( )

A.26、33、78、52、60 B.26、33、52、60、78

C.26、33、60、52、78 D.26、33、52、78、60

5、有n个元素的数组,从小到大排序,将程序填写完整。

For i= 1 to n-1

For j= ( ) to ( ) step ( )

if a(j) ( ) a(j-1) then

t=a(j)

a(j)=a(j-1)

a(j-1)=t

end if

Next j

Next i

课下实践:

收集有关冒泡法排序的VB程序,通过上机体验,进一步体会冒泡法排序的思想及实现过程;也可将上面5个元素排序程序段完善完整,通过上机体验,进一步体会冒泡法排序的思想及实现过程。