冒泡排序算法 [“排序算法设计”教学设计]
一、教材依据 本节课是奥教版《算法与程序设计》(选修1)第四章《算法与程序实现》的第4节第1课时。 二、设计思想 【教学指导思想】:基于问题主导的教学模式。
【设计理念】:本节课采用基于问题主导的创新教学模式,指导学生在问题解决视野下去亲历算法分析与程序设计实践、理解算法思想、发现新问题,从而全面提升学生的能力。
【教材分析】:排序算法是程序设计的基本算法,主要要求学生理解选择排序算法,选择排序算法的特点,进一步分析排序算法时间和空间效率。
【学情分析】:高二年级的学生在高一阶段的必修教材中已经学习了编制程序解决问题,他们已经具有较强的逻辑思维能力和分析问题的能力,只要讲清楚算法,本节课的内容对学生来说应该容易掌握。
三、教学目标
【知识目标】:理解选择排序算法思想,学会使用选择排序算法思想解决问题。
【能力目标】:通过学习选择排序算法,提高学生分析与解决问题的能力。
【情感态度与价值观】:通过上机完成“大型国际运动会上的国家排序问题"VB程序设计,体验编程快乐、感受成功的喜悦与程序的魅力。
四、教学重点
选择排序算法的基本思想及相关的程序实现。
五、教学难点
如何使用选择排序算法解决实际的问题。
六、教学准备
1.用PowerPoint 2003制作的课件。
2.从网上下载选择排序的动画演示文件。
七、教学过程
1.引入新课:(以一些现实生活的实际问题开始,启发同学们去思考)
教师:同学们每次的考试成绩我们会以Excel表格的形式公布给大家,同学们想想计算机是如何在瞬间进行分数排序的呢?
学生想。
2.启发思考,分析选择排序算法及程序实现。
教师:好,今天我们就来学习选择排序算法。
开始新课学习:
教师:现在我们一起看看人工是如何进行数据的排序的,老师给出8位同学的分数,同学们把它们由小到大地排成顺序。数据分别是:86.5,77.5,87,68.9,89.6,77.2,79.7,71.1。同学们想想笫一个位置应该放哪个数?
学生:放最小的。
教师:好,那么,我们是不是只需要将最小的数68.9与在第一个位置的数86.5进行交换呢?
学生:是。
教师:同学们再想一下第二个位置是不是应该放置的是除了第一个以外的数中最小的呢?
学生:是。
教师:那么第N-1个位置应该放什么呢?
学生:应该放置的是除了前N-2个以外的数中最小的。
教师:老师是不是可以总结我们刚才的算法,所谓选择排序,就是给数组的N-1个位置选择合适的数据,而每次是选择第i个位置的数据到最后一个位置(第Ⅳ个位置)的数据的最小值,然后将找到的最小数据与第i个位置上的数据交换?
学生:是的。
教师:下面我用一个动画演示刚才的算法,请同学们看大屏幕。
现在我们只需要将刚才的算法用VB语言表达出来,就是选择排序的程序,那么我们需要解决三个问题:
(1)给数组的N-1个位置选择合适的数据? 这个问题显然我们可以用一个循环结构来完成: For i=l【o
N-1Next i
(2)如何寻找第i个位置的数据到最后一个位置(第Ⅳ个位置)的数据的最小值?
这个问题也就是在数组中的极值(最大值或最小值)的问题。其实我们只关心最小值数据的位置,用变量M记录其位置。
于是我们很容易写出选择排序的程序。
3.调试程序:
教师:同学们想不想看一下运行结果呢?
学生:想(很强烈)。
教师:运行程序后,输入测试数据,可得排序后的输出结果在窗体上。
4.课堂实践练习与知识拓宽:
(1)完成课本127页的国家名排序问题。
【设计意图】:使学生看到选择排序不仅可以对数字排序,也可以对字符串排序,同时也能达到对选择排序的应用练习。
(2)明明的随机数(题目描述发送到学生机的桌面)
【设计意图】:这个问题是很现实的例子,学生对这个问题很感兴趣,激发他们探索的欲望,要求学习优秀的学生必须完成,我想通过这个问题,一方面提升学生学习的积极性;另一方面再通过这个实际问题的解决,实现本节课的知识目标。
【学习评价】:教师随机让个别学生讲解练习题的算法、演示其所编程序,师生共同进行点评。
【课堂小结】:
(1)什么是选择排序算法?
(2)选择排序算法的实质及时间和空间效率。
(3)选择排序算法的优点、缺点。
八、教学反思
通过本节课的教学设计,我认识到信息技术教学的关键是要调动学生的积极性,算法与程序设计这部分知识如果课堂教学设计不当,就会让学生觉得很枯燥,所以我将抽象的问题通俗化,复杂的问题分解成几个小问题来解决,这样学生就很容易接受,再加上所举的例子都是学生身边的实际事例,使学生很想知道问题的答案,从而极大地调动了学生的积极性。
(作者单位陕西省成阳市礼泉县第一中学)
