论文部分内容阅读
《二分法查找数据》是教科版高中信息技术选修教材《算法与程序设计》第三章第三节第二课时的教学内容。本节课是在学生掌握了数组的基本操作以及使用顺序法在数组中查找数据的基础上,学习利用二分法查找数据,为后续“数据排序”的学习打下基础。
通过上一节课的学习,学生学会了VB中数组的基本操作及顺序查找的算法思想。为增强学习的趣味性,笔者设计了“人与电脑竞猜商品价格”的游戏,引导学生从游戏中掌握二分法查找的思想,完成本课的学习。
一、教学目标
知识与技能:理解二分法查找的算法思想,学会使用二分法查找解决问题。
过程与方法:通过学习并应用二分法查找数据的过程,提高分析与解决问题的能力。
情感、态度与价值观:通过上机完成“人与电脑竞猜商品价格”等VB程序设计,体验编程的快乐、感受成功的喜悦。
二、教学重点、难点
重点:二分法的基本算法思想及相关程序的实现。
难点:如何使用二分法在数据组中查找数据,并用其解决一些实际问题。
三、课前准备
多媒体教室、动画演示课件、VB程序、3~5件小商品实物。
四、教学过程
1.创设情景导入新课
师:同学们经常看电视上一些“商品猜价”的节目吧?下面,老师请两位同学到前台配合我玩一个关于价格竞猜的小游戏。
游戏规则:教师给大家展示一件商品,告诉第一位学生具体的价格,并告诉第二位学生该商品大概的价格范围(100元~300元),让第二位学生猜价,第一位学生对第二位学生的报价给出“高了”、“低了”或“正确”的提示。
学生和教师进行互动游戏。
教师让第二位学生讲述自己判断商品价格的过程,从而引入二分法。
设计思想:通过游戏激发学生的学习兴趣,并让学生通过价格竞猜的小游戏,初步感受编程设计方法——二分法,为后续教学活动的开展做好铺垫。
2.自主探究 初识“二分法”
师:二分法查找中对被查找的数据有没有要求呢?从被猜商品的价格范围100~300可以看出,这是一个有序的数列,也就是说,被查的数据必须是有序的,否则二分法查找无法进行。第二位学生猜数的具体过程到底是怎么进行的呢?
生:第一步:将100设为下界,300设为上界,取上下界的中间元素200与实际值225进行比较,200比225小。第二步:将200右边相邻的数201设为下界,上界还是300,取上下界的中间元素250与225进行比较,250比225大。第三步:将249作为上界,下界还是201,取上下界的中间元素225与225比较,正确,即猜中。
如果学生回答得不完整,教师可以补充。
师(强调):这是二分法查找的具体情况,那么推广到一般情况是什么样的呢?
教师用三种方式讲解。
(1)用自然语言描述:设置4个变量,low(下界)、high(上界)、mid(中间元素)、real(实际值),设置下界low=100,上界high=300,取中间元素mid=(low high)/2,mid=200,比real(225)小,左侧舍弃,取mid右侧数据作为low,即low=mid 1,再取mid=(low high)/2,比225大,右侧舍弃,取mid左侧数据作为high,即high=mid-1,以此类推,如找到,则结束。
(2)动画演示:教师用Flash动画形象模拟这一过程,帮助学生进一步理解二分法查找的算法思想。
(3)用流程图描述:教师可以用投影展示事先准备好的流程图。
反馈练习:教师在100~300之间任意找一个数,让学生回答具体的查找过程,以检查学生是否理解了二分法查找的算法思想。
设计思想:组织学生展开“头脑风暴”,讨论二分法的具体查找过程。由于高中学生已具备了一定的自学能力,也具备一定的思考问题、解决问题的能力,设置具有一定难度的问题,可以促进他们思维的进一步发展。教师通过三种方式的讲解,使得教学重点分步突破,教学难点也得以分解。
3.协作学习 比较效率
教师布置任务,要求学生根据流程图,分小组合作探究用VB编程实现在200~300之间用二分法查找数据的算法思想。教师要及时对学生进行引导、观察、控制、协调和答疑。
各小组完成探究任务后,均推选一名代表将该组完成程序的编程思路讲出来,组内成员可以补充。若仍有不完善的地方,其他组学生可以补充。
设计思想:教师给出流程图,可以照顾到部分学习能力差的学生,使他们能够在模仿的基础上完成任务,体验成功的喜悦。以合作学习的形式突破本课的教学难点,既尊重了学生知识水平的差异,又让每位学生都能真正参与到课堂中来,成为课堂的主人。
师:刚才大家已经编程实现了二分法查找算法,现在我们将该程序另存为一个新文件,将其修改为顺序查找算法。在这两个可以实现查找算法的程序中各增加一个计数器,再用它们查找同一个数据。请大家观察、比较两个程序中计数器的大小,看看哪一种查找算法的效率高。
生:二分法查找的效率要比顺序查找的效率高很多。
设计思想:将二分法查找算法改为顺序查找算法,可以让学生复习回顾顺序查找算法的编写。通过比较两种算法效率的高低,增强学生优化算法思想的意识。
4.实践操作知识迁移
教师引导学生从课程学习网站下载并运行“人与电脑竞猜商品价格”程序(程序中没有“低了”按钮的程序代码),理解程序代码的含义,并尝试写出其“低了”按钮的程序代码。
在学生的操作过程中,教师对基础较差的学生进行个别辅导,及时发现与解决学生上机过程中存在的问题,并鼓励基础好的学生参与帮助辅导,争取所有的学生都完成任务。
设计思想:通过让学生写出“低了”按钮的程序代码,帮助学生巩固所学内容,并通过解决问题的过程,让学生自然而然地对新知识进行迁移,体验问题解决后的成就感,提高学生的创造力。
5.知识梳理练习拓展
教师与学生共同梳理、归纳本课学习的内容和知识,如什么是二分法、二分法查找的基本算法思想、顺序查找与二分法查找的区别是什么,并整理相关学习笔记。
教师设置一定的实践练习,让学生在课后进一步体验二分法查找的思想。
设计思想:帮助学生梳理本课所学的知识,让学生对二分法查找形成一个总体的认识。
(作者单位:江苏大丰高级中学)
通过上一节课的学习,学生学会了VB中数组的基本操作及顺序查找的算法思想。为增强学习的趣味性,笔者设计了“人与电脑竞猜商品价格”的游戏,引导学生从游戏中掌握二分法查找的思想,完成本课的学习。
一、教学目标
知识与技能:理解二分法查找的算法思想,学会使用二分法查找解决问题。
过程与方法:通过学习并应用二分法查找数据的过程,提高分析与解决问题的能力。
情感、态度与价值观:通过上机完成“人与电脑竞猜商品价格”等VB程序设计,体验编程的快乐、感受成功的喜悦。
二、教学重点、难点
重点:二分法的基本算法思想及相关程序的实现。
难点:如何使用二分法在数据组中查找数据,并用其解决一些实际问题。
三、课前准备
多媒体教室、动画演示课件、VB程序、3~5件小商品实物。
四、教学过程
1.创设情景导入新课
师:同学们经常看电视上一些“商品猜价”的节目吧?下面,老师请两位同学到前台配合我玩一个关于价格竞猜的小游戏。
游戏规则:教师给大家展示一件商品,告诉第一位学生具体的价格,并告诉第二位学生该商品大概的价格范围(100元~300元),让第二位学生猜价,第一位学生对第二位学生的报价给出“高了”、“低了”或“正确”的提示。
学生和教师进行互动游戏。
教师让第二位学生讲述自己判断商品价格的过程,从而引入二分法。
设计思想:通过游戏激发学生的学习兴趣,并让学生通过价格竞猜的小游戏,初步感受编程设计方法——二分法,为后续教学活动的开展做好铺垫。
2.自主探究 初识“二分法”
师:二分法查找中对被查找的数据有没有要求呢?从被猜商品的价格范围100~300可以看出,这是一个有序的数列,也就是说,被查的数据必须是有序的,否则二分法查找无法进行。第二位学生猜数的具体过程到底是怎么进行的呢?
生:第一步:将100设为下界,300设为上界,取上下界的中间元素200与实际值225进行比较,200比225小。第二步:将200右边相邻的数201设为下界,上界还是300,取上下界的中间元素250与225进行比较,250比225大。第三步:将249作为上界,下界还是201,取上下界的中间元素225与225比较,正确,即猜中。
如果学生回答得不完整,教师可以补充。
师(强调):这是二分法查找的具体情况,那么推广到一般情况是什么样的呢?
教师用三种方式讲解。
(1)用自然语言描述:设置4个变量,low(下界)、high(上界)、mid(中间元素)、real(实际值),设置下界low=100,上界high=300,取中间元素mid=(low high)/2,mid=200,比real(225)小,左侧舍弃,取mid右侧数据作为low,即low=mid 1,再取mid=(low high)/2,比225大,右侧舍弃,取mid左侧数据作为high,即high=mid-1,以此类推,如找到,则结束。
(2)动画演示:教师用Flash动画形象模拟这一过程,帮助学生进一步理解二分法查找的算法思想。
(3)用流程图描述:教师可以用投影展示事先准备好的流程图。
反馈练习:教师在100~300之间任意找一个数,让学生回答具体的查找过程,以检查学生是否理解了二分法查找的算法思想。
设计思想:组织学生展开“头脑风暴”,讨论二分法的具体查找过程。由于高中学生已具备了一定的自学能力,也具备一定的思考问题、解决问题的能力,设置具有一定难度的问题,可以促进他们思维的进一步发展。教师通过三种方式的讲解,使得教学重点分步突破,教学难点也得以分解。
3.协作学习 比较效率
教师布置任务,要求学生根据流程图,分小组合作探究用VB编程实现在200~300之间用二分法查找数据的算法思想。教师要及时对学生进行引导、观察、控制、协调和答疑。
各小组完成探究任务后,均推选一名代表将该组完成程序的编程思路讲出来,组内成员可以补充。若仍有不完善的地方,其他组学生可以补充。
设计思想:教师给出流程图,可以照顾到部分学习能力差的学生,使他们能够在模仿的基础上完成任务,体验成功的喜悦。以合作学习的形式突破本课的教学难点,既尊重了学生知识水平的差异,又让每位学生都能真正参与到课堂中来,成为课堂的主人。
师:刚才大家已经编程实现了二分法查找算法,现在我们将该程序另存为一个新文件,将其修改为顺序查找算法。在这两个可以实现查找算法的程序中各增加一个计数器,再用它们查找同一个数据。请大家观察、比较两个程序中计数器的大小,看看哪一种查找算法的效率高。
生:二分法查找的效率要比顺序查找的效率高很多。
设计思想:将二分法查找算法改为顺序查找算法,可以让学生复习回顾顺序查找算法的编写。通过比较两种算法效率的高低,增强学生优化算法思想的意识。
4.实践操作知识迁移
教师引导学生从课程学习网站下载并运行“人与电脑竞猜商品价格”程序(程序中没有“低了”按钮的程序代码),理解程序代码的含义,并尝试写出其“低了”按钮的程序代码。
在学生的操作过程中,教师对基础较差的学生进行个别辅导,及时发现与解决学生上机过程中存在的问题,并鼓励基础好的学生参与帮助辅导,争取所有的学生都完成任务。
设计思想:通过让学生写出“低了”按钮的程序代码,帮助学生巩固所学内容,并通过解决问题的过程,让学生自然而然地对新知识进行迁移,体验问题解决后的成就感,提高学生的创造力。
5.知识梳理练习拓展
教师与学生共同梳理、归纳本课学习的内容和知识,如什么是二分法、二分法查找的基本算法思想、顺序查找与二分法查找的区别是什么,并整理相关学习笔记。
教师设置一定的实践练习,让学生在课后进一步体验二分法查找的思想。
设计思想:帮助学生梳理本课所学的知识,让学生对二分法查找形成一个总体的认识。
(作者单位:江苏大丰高级中学)