一、教材分析
本课选自教育科学出版社出版的高中《算法与程序设计》(选修)第三章《算法的实现》。教材以学生已有知识经验为基础,从提高学生分析与解决问题的能力出发,让学生体验并掌握二分法查找算法的思想,并将这一算法体现到具体的应用中。该内容是对上一节课顺序查找方法的延伸,也是后续学习的基础,因此本课在整个单元教学中起着承上启下的作用。
二、教学目标
知识与技能:理解二分法查找的概念,掌握二分法查找的算法思想,能用二分法查找编写程序。
过程与方法:通过自主分析二分法查找的原理,合作编程,完成对二分法查找数据的学习及应用,提高学生分析、解决问题的能力,发展思维的创造性。
情感、态度与价值观:培养学生的自主学习、互相协作、分析问题的能力。
三、教学难点
二分法查找算法的理解,如何使用二分法解决实际的问题。
四、创新之处
本节课教学地点安排在计算机网络教室。教学方法的有机结合与多媒体教学手段的整合,促使学生自主高效学习。将抽象枯燥的理论通过一个学生感兴趣的电视节目引出,调动学生求知的欲望。
五、教学过程
(一)创设情境、激发兴趣、导入课题
上课之前,播放“购物街”节目中猜价格的片段。其内容是让选手猜商品的价格,规则是给出商品的价格范围,主持人根据实际价格和选手报价给出提示:“高了”、“低了”、“正确”。有一个选手,仅仅尝试猜了3次,就猜出了实际价格。当时给出的价格数值范围是100~300,实际价格是225。他猜的3个数是200(主持人:低了)、250(主持人:高了)、225(主持人:正确)。
师:我们仔细分析这个选手的猜数过程,可以发现每次猜的数都是相应范围中间的数,这实际上采用了“二分法查找”算法思想。这是一种非常重要的编程算法思想。
设计思想:通过视频的强大渲染力,激发学生学习兴趣,形成良好的课堂氛围,调动学生的求知欲望。通过这样的方式导入课题:一方面可以激发学生学习的兴趣和热情;另一方面也是让学生初步感受编程算法思想——二分法。为下面教学活动的开展做好铺垫。
(二)学生自主探究,教师讲解分析
师:那么什么是二分法呢?二分法查找中对被查数据有没有要求呢?请同学们自主思考。
生:从被猜商品的价格数值范围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(实