




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
折半查找算法的教学设计及反思.江苏省白蒲高级中学 刘兴圣 226511授课题目:折半查找算法 适应范围:高一年级 所属科目:教科版高中信息技术选修模块算法与程序设计模块授课章节:第三章第3节在数组中查找数据教学设计(一)教学目标知识与技能:让学生理解折半查找法的基本思想,并能够编写程序代码。过程与方法:带领学生一同分析问题、体会理解算法设计思想,先掌握编写关键性语句,再到完整程序的书写,并最终通过分析代码进一步加深理解折半查找算法的设计思想。让学生从中逐渐学会解决问题的基本方法。情感态度与价值观:在分析折半查找算法的过程中,引导学生积极思考和分析问题,培养学生严谨的思维习惯。通过各组讨论、实践活动,养成良好的与人协作交流能力。(二)教材分析教学重点:以图示法方式,演示折半查找算法的基本思想。教学难点:由折半查找算法的思想到程序代码编写的转换,尤其是其中关键性语句的编写是教学中的难点。(三)学情分析学习对象是高一学生,本节知识内容是在学习了数组的相关知识和顺序查找算法之后进行的,由于折半查找算法逻辑性比较强,同时学生对算法的相关概念还比较陌生,基础相对欠缺,以及学生的差异比较大,所以在教学过程中尽量要放慢讲解的速度,循序渐进的展开知识点要素,让学生能够对相关的问题进行充分思索、分析,再到问题解决。(四)教学策略创设趣味问题情境,引导学生了解什么是折半查找算法,以图示法方式来演示折半查找算法的基本思想,并以伪代码形式描述算法中的关键性语句,最终到完整程序代码的书写。对课题中的关键环节采用日常生活问题引入,让学生通过比较,由浅入深地引导学生思考、讨论。通过讲授、演示观察、讨论相结合,充分调动学生的主观能动性,以达到主动式学习、探究性学习。(五)教学方法:图示法,讲授法。(六)教学准备:多媒体教室。(七)课时安排:一课时教学过程一、导入(23分钟)上一节课我们一起学习了顺序查询法,知道它一般应用在这种情况之下:待查数据表没有顺序,且数据表的长度比较短。反之;待查数据表是有序的,且数据表很长,那还能用顺序查询算法来查询数据吗?答案是肯定的,但其查询效率不高,尤其是待查数据表特别大的时候。为了解决这个问题,我们将学习一个查询效率更高的查询方法折半查找算法,即书上所讲的二分查询法。二、新课讲授1、折半查找算法的基本思想(23分钟)首先我们一起来看一看折半查询算法中的“折半”的含义。师:何为折半呢?生:减半;打一半的折扣。例如,我手里拿着一根绳子,现在我们来进行折半试验,首先拿住绳子的两个端点, 然后从中点的位置进行对折,这样绳子就缩短为原来长度一半,然后将一半的绳子继续执行与刚才相同的操作,使得绳子的长度逐渐的缩短,直到绳子长度短得不能再进行折半了。师:那什么时候就不能再折半了呢?生:即绳子的两个端点合二为一为止。折半查找算法的思想与绳子折半的过程基本相同。下面我们先通过图示来看看折半查找算法究竟是什么?2、图示分析算法思想,并编写关键性语句(1220分钟)假设一个从小到大排列的数据存放在一个数组中Data(10),而查找数据存放在变量x中。如图1所示,橙色方框的代表的是查询数据x,每个浅兰色方框代表的是数组中的每个元素,框内显示的数据是每个数组元素对应的下标(序号),整排的浅兰色方框就可以看成整个数组,即待查数据表(数组元素表)。x012345678910LowHigh(图1)第一步:就像抓住绳子的两端一样,首先设立两个标记Low、High分别来标识查询区间的低端和高端,即数组元素的下标,如图1所示。师:对于初始查询区间,它们是多少呢?生:Low=0 , High=10第二步:取区间的中点标记Mid,如图2所示。师:查询区间的中点为多少?(这个地方,有的学生可能直接说出下标值,所以要提醒学生让中点和两个端点相联系,即用端点表示中点)生:Mid=(Low+High)/2师:中点位置上的数据为什么?(提醒学生数据是放在数组Data中的) 生:Data( Mid) 012345678910MidLowHigh(图2)第三步:判断中点位置上的数据Data( Mid)与要查找数x是否相等,如何相等,则找到,并结束查找;如果不相等,就执行第四步。师:这个判断语句如何写呢?生:if Data( Mid)=x then print “x找到” 结束查找end if第四步:如果不相等,那么对查询区间进行折半操作。师:那如何折半是从中点处向左侧折半还是向右侧折半?(这是整个折半查询进行下去的关键所在,所以一定要让学生自己学会判断)由于待找数据表是从小到大排列的,而且区间中点位置上的数据Date(Mid)也知道,所以,通过Data(Mid)与x的比较,看一看,x比Data(Mid)大还是小,就可以判断出x落在中间数Data(Mid)的左侧还是右侧,从而判断出向左还是向右折半。师:那么,判断语句如何写呢?生:if Data(Mid)High,停止折半查询。3、折半查找算法基本思想总结(2分钟)对一有序数据表,首先从初始查找区间开始,取出区间中点位置上的数据与要查询数据进行比较,若相等,则查找成功,并结束查询;否则,将当前查找区间缩小一半。在新的查询区间内,同样取出区间中点位置上的数据与要查询数据进行比较,若相等,则查询成功,并结束查询,否则将新的查询区间再次缩小一半。然后继续采用相同的方法,直到查找数据成功或者查询区间不能再折半(即查询失败)为止。(这段文字比较多,用投影仪来显示)4、代码编写(10分钟)先让学生讨论并尝试编写代码。观察学生编写情况,可以有选择的找学生来编写代码,并进行点评,然后老师带领同学,一同编写程序或改写同学代码。Low=0High=10Do Until Low HighMid=(Low+High)/2If Data(Mid)=x ThenPrint “x找到,且在数组的第”&Mid &”个元素中”Exit DoEnd IfIf Data(Mid)x ThenLow=Mid+1ElseHigh=Mid-1End IfLoop5、读程(5分钟)带领学生一同阅读代码,看看能否实现折半查询的目的。这个环节非常重要,因为前面的设计都是分步进行的,还不太连贯,通过读程可以帮助那些听得不太明白的同学理顺思路,而听懂同学起到巩固的效果。在这个环节结束后,如果还有同学不太明白的话,可以上一个程序调试课,就能够达到教学设计要求。6、编写完整程序代码师:上述的程序能够直接用来调试吗?生:不能,必须补充必要的代码,才能使用。加以提示,让学生独立或者相互讨论完成代码的补写。三、课堂小结(3分钟)带领同学一起回顾总结折半查询的基本思想五个步骤。课后作业 1、调试折半查找算法程序。并尝试用不同格式的循环语句来实现。2、还有其它查询效率更高的算法吗?感兴趣的同学可以查阅资料自学。教学反思从选题难度这个角度看,算法与程序设计这本教材所涉及到的算法很多,折半查找算法是比较难的算法之一。选择有难度的课来讲有好的一面也有不好的一面,不好的一面主要是不好把握,学生不能理解,一节下来,老师可能费了九牛二虎之力,而学生却毫无反映;好的一面,就是上好了,课会非常的出彩,学生会对算法产生浓厚的兴趣。单就这个教学设计而言,无论从教学的哪个环节来看,考虑得比较细致,能够看出设计者的研究功夫。从教学的重难点来看,重难点定位比较准确,在设计重难点时候,预先分析了学生的学情,在了解学生的知识结构的基础上,并结合本节的知识点的难易度,而制定了重难点。重点:以图示法方式,演示折半查找算法的基本思想;难点:由折半查找算法的思想到程序代码编写的转换,尤其是其中关键性语句的编写是教学中的难点。 从授课的组织形式来看,这节课采用来在多媒体教室进行,而不是在微机房,考虑到的是这节课的理论性、逻辑性很高,需要学生的精神集中度高,需要学生严密思考,思维活跃而不分散,这在微机房是不能实现。并采用图示法,讲授法也是基于这个原因。从教学的整个进程安排来看,每个教学环节安排得还是比较合理、有序,能够围绕教学重难点,突出教学主题。在描述讲解算法思想以及分析算法关键语句的实现时候,能够细致入微的从小的环节入手,联想生活常识,来讲解分析。在不知觉中,将分析问题的基本方法传授给每位同学。从教学的过程中引用的实例来看,“绳子对折”的引用通俗易懂,贴近学生的日常生活,学生非常容易理解,并在分析算法的关键环节上,能够回到绳子的问题上,从而,能够达到化繁为简的功效。从教学难点的突破来看,这节课做的还是很到位,这节课要求学生对前面的数组知识以及循环语句要有一定掌握程度,即切入点比较高,否则的话,学生对关键语句代码的编写就很难理解,这也是这节课的突破口,学生能走出这个关口的话,那么,以后的整个程序代码的编写,就变得非常的简单。所以本人在讲解这节课之前,花了一个课时,对前面学习的知识进行有针对性的复习回顾,为让好这节课做好铺垫,切忌不可,在学生还没有搞懂数组的概念和基本用法之前,硬性上这节课。从教学总体效果看,学生能够在围绕老师设立的问题情景中,循序渐进的、步步为营的思考问题,思维活动非常活跃,学生在不知不觉中掌握了折半查询算法的基本思想,并且能够掌握折半的关键性语句代码的编写,并且能够通过同学之间的讨论,完成完整程序的补写任务,总体来将这节课是比较成功的。这节课有两点值得关注的:第一点,由于这节课的理论性、逻辑性很强,要求时刻的关注学生的思维动态,要不断与学生交流的,防止学生脱离思维轨迹,所有要求老师的掌控能力比较高,这也带来一个问题,就是老师讲解的多了些,从形式上看,不太符合目前新课程的教学理念。第二点,由于采用的是图示法来分析算法的设计思想,随着算法的推进,需要在黑板上画的图示比较多,对老师来讲是比较繁琐的,而且比较费时。如果在教学媒体的选择上,将这一点改进一下将更好,那就是采用多媒体投影演示的方法,将图示的变化过程做成幻灯动画的形式将为这节课添上一个更大的亮点。第三点,一节课45分钟,让学生从算法设计、思想到代码、关键代码直到整个完整程序的编写,时间必
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论