文档库

最新最全的文档下载
当前位置:文档库 > 《对分查找及其算法实现》教学设计

《对分查找及其算法实现》教学设计

《对分查找及其算法实现》教学设计

湖北省巴东县第一高级中学刘少银

一、教材学情分析

本次课是浙江版高中信息技术选修教材《算法与程序设计》第二章算法实例第四节查找中的一部分内容。由于教材体系不适合校本实际,我们在教学过程中对教材体系作了如下调整。

讲授顺序:第一章算法和算法的表示、第三章面向对象的程序设计的基本知识、第四章 VB程序设计初步、第二章算法实例,第五章算法实例的程序实现穿插在相关内容教学中完成。

因此在前期教学中学生已经初步掌握了算法基础及算法表示,VB程序设计初步等。本次课是让学生掌握对分查找的思想及算法的实现。

二、教学目标

知识与技能:理解对分查找的基本含义、方法,理解并能画出对分查找的流程图;

过程与方法:通过案例分析、直观观察,增强分析问题和解决问题的能力;

情感、态度与价值观:感受信息技术与现实生活的关联,激发对信息技术学科的求知欲,培养主动学习和使用信息技术的意识;养成科学的学习态度,不迷信书本、不迷信权威。

三、教学重难点

教学重点:对分查找的基本方法及注意事项;

教学难点:对分查找算法的实现。

四、教学策略

·以“猜数”游戏导入,引入对分查找的概念;

·师生讨论、生生讨论、生生互助;分析、归纳、总结,理解并掌握对分查找的基本思想;

·采用分类研究、分享成果、课后练习等学习方法,理解对分查找方法及基本主要特征;

·采用自然评价、师生评价、生生评价等形式对学习进行过程性评价。

五、教学过程

1.游戏激趣,释疑对分查找

(三个程序图片)

(初始界面)(人工猜数界面)(程

序猜数界面)

准备:几张白纸,一支记号笔。启动猜数程序。

师:同学们好!大家看到前面的程序了吗?它是一个什么程序呢?

同学:猜数游戏程序。

师:对,这是我用VB针对李泳主持的“幸运52”中猜商品价格环节开发的一款程序,我先来说说针对主持人的部分:当李泳宣布商品的价格范围时,比如10000元内,猜商品价格的人就可以在猜数范围栏起始栏填上“0”,终至栏填“10000”,然后再将鼠标移到猜数栏中单击,程序即提示:“准备!倒计时30秒”,当单击提示处,猜价格倒计时开始,猜价格人即可在猜数栏上填上所猜价格的数值,然后根据主持人的提示,选择“不对”重新填写商品价格或选择“正确”让所猜价格在“猜得结果”栏内显示正确结果并停止计时,提示栏中即显示“您猜了M次,对了,恭喜您”。

师:大家觉得程序光有这样的功能神奇吗?

生:不神奇。

师:对,我也是这样认为的。这个程序神奇的地方在它能帮助猜商品价格人在规定的时间内,根据主持人的提示准确地猜出商品的价格,而且猜中率100%,所以现在“幸运52”停播了,大家知道为什么吗?

生:不知道。

师:就是因为我开发了这个程序呀!

生:(有的说信,有的抱着怀疑的态度不吭声,也有说不信的)

师:有同学愿意上来试试吗?

师:你在纸上写下你的数值范围和要猜的数,然后给大家看一下,别说出来,别让电脑听见了。

师:好,操作程序让程序帮忙把写的数找出来。

(程序找到正确的数)

师:神奇吧。

师:还有那位同学愿意试一下。

师:同样,你还是先写下要猜的数和范围100~200,这次我们不让大家看到他要猜的数,请大家帮忙记下程序每次出现的数字。

师:电脑程序也猜出了正确结果:132。

程序给出的数字是:

第一个数是:150

第二个数是:125

第三个数是:137

第四个数是:131

第五个数是:134

最后是:132

大家能看出什么规律了吗?

生:看不出

师:单纯从这几个数当中是看不出什么规律,现在我们依次把这些数放到数轴上,再看一下,大家看能找出什么规律呢?

同学发言……

师:大家认为他说的怎样?为什么不鼓掌呀!

师:对,正如刚才的同学说的那样,程序是在给定范围内依次找中点方法来找到我们要找的最终数值,这就是我们今天要讨论的一种新的查找方法:对分查找。

师:我们刚才的游戏中的数列是序的吗?

生:是有序的,升序排列的。

师:如果是降序能用对分查找方式查找吗?

生:能。

师:大家想一想,如果我们打乱数据的排序顺序,在没有排序的数列中能否用对分查找的方法,找到我们想找到的数据?

同学:不能。

师:对,这就是对分查找方法的一个特征,或称为条件。因为我们是根据数据的大小找到它在数列中的位置。

【设计意图】通过游戏和对程序给出数值在数轴上的分布分析,让学生初步理解和掌握对分查找的方法及前提条件,为后一阶段对分查找算法的实现作好铺垫。

2.分析实例,实现对分查找算法

师:下面我们一起来看一下程序是怎样一步一步的给出以上数据并最终找到“132”这个数的。

师:首先在100至200之间找中点,然后再用中点值150与所要找的数132比较,得出的结论是所要找的数在100至150之间的数,一下数值的范围就缩小了一半,终止变量j 的值就由200变成了150;第二次查找时,程序就给出100至150的中点值125;当程序进行第三次查找时,起始变量i的值就被修改为125,它们的中点值应该是:(125+150)/2=137.5。有小数了,怎么办?

生:……(有点茫然)

师:对于小数,程序可以继续查找,但有可能要增加查找次数。为了保证在整数范围内查找,我们就要对含小数的中间值进行处理:取整。大家还记得我们学过VB的取整函数吗?

生:int。

师:对。即int(137.5),结果是多少?

生:137。

师:所以我们查找i到j范围内的中点值的表达式应该为:m=int((i+j)/2)。

师:依次类推,程序会依次给出131、134、132即找到了要找的数。

师:请同学们根据算法逐步求精的原则在下面画出流程图。

(展示如下流程图,然后请同学完成完善对分查找的算法流程图)

流程图补充完善后的结果:

【设计意图】通过对程序给出中间数的分析,帮助学生理解对分查找算法实现的方法,为学生顺利完成对分查找算法流程图给予理论与实践上的支持。

3.推出特例,完善对分查找算法

师:同学们,刚才我们完成的对分查找的流程图;下面请同学们用刚才的查找方法分析一下在199至200范围内要找200这个数,能找到吗?为什么?如何解决这个问题?

(将教室内学生按座位分成若干组,进行讨论。每个组推选一名小组长,完成后作小组发言)

……

(每一小组完成发言后,老师或点评,或让学生点评)

师:根据刚才同学的讨论分析,那我们先前给出的流程图就有了一些缺陷,怎么修改?

(在同学们的发言声中,修改完善流程图)

修改后的流程图如下:

【设计意图】给出特例,让学生相互讨论、互助学习,归纳总结出上述流程图中出现问题的症结所在,并给出正确的流程图;由此可让学生体验到科学探究的方法,从而培养学生的科学态度与探索精神。

六、课后作业

师:1.在前面的取整中我们用了取整函数int,大家想一想能不能用四舍五入函数处理?如果用四舍五入函数(round)处理,流程图又将怎样修改?

2.请看教材P40-43,比较我们所给出的流程图与教材上的流程图有什么差异?两个流程图最后结果是否一致,那个流程图的结果有问题,问题是怎么造成的?请写出一篇500—800字的小论文。

(提示:认真阅读教材P40至P43内容,并分析教材中所给算法的逻辑错误)

作业提交方式:电子邮件(校内、校外均可)

邮件名称:登分号+姓名+论文题目

作业提交地址:bdxyz@http://www.wendangku.net/doc/1ee0c3bf71fe910ef12df8c3.html

【设计意图】作业(1)扩充课堂内容,丰富学生知识面,丰富学生分别学习内容;作业(2)通过两个流程图之间差异性比较,引导学生判别书本上所给出流程图的逻辑错误,从而培养学生:1.科学的学习态度和精神,不迷信教材、不迷信权威;2.运用论文等形式来表达自己观点;3.通过学生自己的分析、探索,找出教材中的错误。

七、教学反思

整节课充满了笑声和掌声,课堂气氛活跃,学生参与度高。老师的主导作用和学生的主体地位得到了充分的体现。学生在师生互动、生生讨论、生生互助中比较好地掌握了对分查找的思想和算法实现,教学效果好。但由于时间关系,没有将程序的源代码展示给学生,让学生有一种意犹未尽的感觉是本次课的一个缺憾。