项以江
● 模块
高中算法与程序设计。
● 课标要求
通过实例,掌握使用排序算法设计程序及解决问题的方法。
● 课时
2课时。
教学目标
1.知识与能力目标
(1)理解什么是排序算法。
(2)学会用简单的数组处理、表示数据。
(3)掌握选择法与冒泡排序的原理。
(4)掌握两种排序VB程序的实现和优化,以及两种算法的区别。
2.过程与方法目标
(1)初步学习分析解题的思路。
(2)通过实例,使学生能够使用选择和冒泡等排序算法设计程序,掌握其解决问题的方法。
3.情感态度与价值观目标
培养学生积极思考、精益求精的求学精神和科学态度。
● 教学重点
两种排序算法的原理。
● 教学难点
两种排序算法的实现过程与优化。
● 课堂组织流程
● 教学过程设计
1.复习导入新课
(1)教师活动:教师提问后,根据学生回答加以点评。肯定排序在生活中的地位与作用。
(2)学生活动:学生思考并回答的问题:①大批量的数据用什么存储和处理?如何用随机函数产生一个指定区间的随机整数?②我们学过几种查找方法,其中二分查找的算法前提是什么?③如何实现数据交换?④列举日常生活中要对数据进行排序处理的实例。
设计意图:为新课作铺垫,使学生意识到排序的重要性。
2.排序方法的探索
(1)教师活动:①教师给出10个随机排列的数据,要求学生讨论:我们手动实现从小到大排序的方法有哪些?②教师总结:选择法与冒泡法两种排序方法的理论基础(概念)。
(2)学生活动:①学生分组讨论,提炼排序的方法;②各组回答排序讨论的结果。
设计意图:让学生自主探索,寻找规律。发挥小组协作作用,讨论交流,得出结论。
3.探讨算法实现
(1)教师活动:给出10个随机排列的数据,提问“怎样实现最大数放置于最后一个位置的算法”?
(2)学生活动:学生用VB语句实现找极值的算法。
设计意图:让学生明确找“极值”的“打擂台”算法,为实现排序算法作铺垫。
4.算法的描述
(1)教师活动:用自然语言描述出两种排序的算法。
(2)学生活动:学生分组讨论并描绘出两种算法的流程图。
设计意图:让学生掌握如何把自然语言描述的算法用流程图表示。
5.进一步比较分析
(1)教师活动:①运用课件,总结归纳两种算法的根本点;②突出解析要进行几趟比较,每趟比较的次数,以及循环变量的取值。
(2)学生活动:听讲①两种算法的根本点;②比较两种算法的相同点、不同点;③注意循环体的内容和循环变量的取值以及比较的对象。
设计意图:培养学生分析、比较做出判断的能力,以及举一反三的能力。此处课件的作用是表述循环的规律,明确算法的关键步骤。
6.用VB实现算法
(1)教师活动:①观察学生完成情况;②即时指导;③搜集学生错误,集中讲评;④运用课件实现一种排序算法代码。
(2)学生活动:听讲①掌握一种排序算法代码。学生通过交流讨论,用VB实现另一种排序算法;②确定自己注重的一种算法,并加深理解。
设计意图:此处课件为节省时间,不用设计窗体,只用编写代码。通过讨论,快速掌握另一种算法。
7.知识拓展
(1)教师活动:①提供相关学习网站;②引导学生思考两种排序算法能否进一步优化。
(2)学生活动:①了解更多的排序算法;②运用排序算法解决更多实际问题;③根据自身情况做进一步提升。
设计意图:拓宽学生视野;提高学生兴趣;引出更多的问题。
8.总结
(1)教师活动:知识点归纳总结。
(2)学生活动:学生着重理解冒泡排序的思想、极值算法、两种排序原理及程序实现。
设计意图:突出教学重难点。
9.布置作业
(1)教师活动:①基础性任务:完成从大到小的排序算法程序;②提高性任务:“目前奥运会参赛国家的出场次序是按照东道主国家的文字排列次序安排的(除东道主国家是最后一个出场)。现要求输入一些国家的英文名称和东道主英文名称,请输出他们在奥运会上的出场次序”。
(2)学生活动:请学生上机及时做上机作业。
设计意图:整理、巩固已形成的知识和技能。
● 教学评价
过程评价:课代表和教师在课堂记录册上,记录课上表现出众的学生,如:发言正确者,小组代表等。
作业评价:教师通过学生作业的完成情况,给予评价。
● 教学反思
通过教师引导学生自主探究,使学生掌握了 “选择排序”和“冒泡排序”。学生探讨待解决的问题与算法之间的关系,归纳出该算法与算法实现的一般规律。但由于学生基础差异大,教学内容在难度选择方面不是很合理。针对一些问题,如能采用较简单的设计算法,或通过并不复杂的编制程序来求解问题,效果会更好。