高中信息技术必修1“非数值计算-二分查找”教学设计_第1页
高中信息技术必修1“非数值计算-二分查找”教学设计_第2页
高中信息技术必修1“非数值计算-二分查找”教学设计_第3页
高中信息技术必修1“非数值计算-二分查找”教学设计_第4页
高中信息技术必修1“非数值计算-二分查找”教学设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中信息技术必修1“非数值计算——二分查找”教学设计一、教学依据与学情研判本课选自教科版高中信息技术必修1《数据与计算》第4单元“计算与问题解决”中的4.3节“非数值计算”。义务教育数学课程标准在数的开方、对数等近似计算内容中已经渗透了区间逼近的思想,而普通高中信息技术课程标准则要求学生能够“针对具体问题选择合适的算法,运用算法描述工具表达算法,并通过程序实现简单问题的解决”。二分查找正是连接数学逼近思想与算法效率观念的桥梁。授课对象为高一年级学生。他们在此前已经学习了顺序查找、循环结构与Python列表的基本操作,能够写出遍历式查找程序,但对“算法为什么要优化”缺乏切身体会。多数学生把查找理解为“从头找到尾”,这是他们最朴素也最难撼动的经验。本课的设计核心,是制造一场认知冲突:让顺序查找在海量数据面前“显形”,让学生自己意识到必须换一种思路。二、教学目标1.信息意识:通过真实数据规模的对比实验,感知数据量增大时算法效率的差异,形成“算法有代价”的基本认识。2.计算思维:理解二分查找的适用前提(有序序列)与核心策略(折半缩小查找范围),能用“每次排除一半”的句式清晰描述算法过程,并能将查找过程抽象为区间不断收缩的形式化表达。3.数字化学习与创新:能用Python实现二分查找,借助计数变量统计查找次数,通过改变数据规模观察查找次数的增长规律,验证二分查找与顺序查找的效率差距。4.信息社会责任:理解算法效率在搜索引擎、数据库查询、手机通讯录检索等日常应用中的价值,形成优化意识与严谨的验证习惯,认识二分查找失效的常见情境并养成检查前提条件的工程素养。三、教学重点与难点教学重点:二分查找的适用条件、查找过程与算法描述。教学难点:查找区间边界(low、high、mid)的准确更新,即“为什么low=mid+1而不是mid”;查找终止条件的判定。四、教法学法教法:情境驱动法、对比实验法、可视化模拟法。学法:游戏化体验、小组合作探究、程序验证与数据论证。五、教学过程(一)情境导入:一场有“赌注”的猜数游戏(约8分钟)上课伊始,教师宣布:我心中想了一个1到100之间的整数,谁能在7次以内猜中,本周信息技术作业免做一次。规则是每猜一次,我只回答“大了”“小了”或“对了”。学生踊跃尝试。多数学生从50开始猜,教师顺势追问:为什么从50开始?如果第一次猜73,最多可能浪费几次机会?教师请一位学生上台分享自己的猜数路径,并把路径写在黑板上:区间从[1,100]开始,猜50,回答小了,区间变为[51,100];猜75,大了,区间变为[51,74];猜62,小了,区间变为[63,74]……教师板书关键句:每一次猜测,无论对不对,都排除了一半的可能。随后教师抛出升级问题:如果范围是1到100万,你还能在20次以内猜中吗?多数学生表示怀疑。教师不急于揭晓答案,留作伏笔。设计意图是用真实可感的游戏激活“折半”直觉,让算法的萌芽来自学生自己的身体经验,而不是来自课本的灌输。(二)对比实验:让顺序查找“原形毕露”(约10分钟)教师投影两个程序:程序A在0到999999的一百万个有序整数中顺序查找目标值876543;程序B用猜数游戏的策略查找同一目标。两个程序都内置计数器,记录比较次数。课堂现场运行。程序A运行约半秒,输出比较次数876544;程序B瞬间完成,输出比较次数20。教师组织学生讨论三个问题:第一,两个程序得到的结果一样吗?第二,为什么差距是四万倍?第三,如果把数据量扩大十倍,两个程序的比较次数分别会怎样变化?学生通过估算得出结论:顺序查找的比较次数与数据量同比例增长;折半查找的数据量每扩大一倍,只多比较一次。教师在黑板上写出增长对比表:数据量1000时,顺序查找最多比较1000次,折半查找最多约10次;数据量1000000时,顺序查找最多比较1000000次,折半查找最多约20次;数据量1000000000时,顺序查找约10亿次,折半查找仅约30次。教师点题:最快的情况下,折半查找比较次数与数据量之间是“2的多少次方达到n”的关系,计算机科学中记作log₂n。这种“对数级”的慢增长,是大数据时代所有高效检索系统的共同底座。学生由此理解:优化算法不是锦上添花,而是数量级的跨越。(三)建构新知:二分查找的形式化描述(约8分钟)教师给出定义:二分查找(折半查找)是在有序序列中查找特定元素的算法。每次取查找区间的中间元素与目标比较,根据比较结果排除一半区间,直到找到目标或区间为空。教师以实例演示规范化记录方式。设有序列表为[3,8,15,21,38,47,55,63,72,89],查找21:初始区间:low=0,high=9,mid=(0+9)//2=4,a[4]=38,大于21,排除右半区,high=3;新区间low=0,high=3,mid=1,a[1]=8,小于21,low=2;新区间mid=(2+3)//2=2,a[2]=15,小于21,low=3;新区间mid=3,a[3]=21,找到,共比较4次。教师用“滑动的窗口”作比喻:low和high像两扇相向推近的窗扇,mid是每次落到窗内的指针,目标在窗外就翻窗,窗内只剩一个元素仍不对时,宣布查找失败。此处设计一个关键追问:如果目标不在列表中,比如查找20,会发生什么?学生推演后发现区间会持续收缩直到low超过high,引出终止条件:当low>high时,说明目标不存在。这个追问是防止学生只记住“找到”而忽略“未果”情形的必要一环。教师板书算法的自然语言描述与流程要点:1.确认序列有序;2.初始化low为0,high为n1;3.当low≤high时,反复执行:取mid=(low+high)//2,比较a[mid]与目标,相等则返回mid,目标大则low=mid+1,目标小则high=mid1;4.循环结束仍未命中,返回1。(四)难点攻坚:为什么边界要加一减一(约7分钟)教师故意演出一版“错误程序”:……(伪代码展示)若a[mid]<目标,令low=mid(而不是mid+1)。教师提示学生:请手工模拟这版程序查找列表[1,3]中不存在的2。学生模拟发现mid永远等于low,区间不再收缩,程序陷入死循环。这是一个精心设计的故障情境。教师组织学生分析问题根源:mid对应的元素既然已经比较过且排除了,新的区间就不应该再包含它。mid+1与mid1体现的是“排除已确认无效的元素”,缺了这个加一减一,区间收缩的保证就被破坏。教师总结边界更新的两条铁律:一,每次更新必须严格缩小区间;二,mid本身一旦比较过,就必须被排除在新区间之外。随后教师请学生对照检查自己稍后编写的程序是否满足这两条,把抽象原则转化为可操作的自查清单。(五)编程实现与分组验证(约10分钟)学生上机完成核心代码:defbinary_search(a,target):low,high=0,len(a)1count=0whilelow<=high:mid=(low+high)//2count+=1ifa[mid]==target:returnmid,countelifa[mid]<target:low=mid+1else:high=mid1return1,count教师布置三个递进的验证任务:任务一:在教师提供的二十元素有序表中分别查找存在元素与不存在元素,记录比较次数,并对照手工模拟结果检验程序正确性。任务二:将数据量依次设为1千、10万、100万、1000万,固定查找范围末尾的“最差情况”元素,绘制比较次数随数据量变化的简易表格,验证“数据量乘10,次数只加约3到4”的规律。任务三(挑战层):修改程序,使查找能返回目标的所有位置(处理重复元素),思考需要怎样调整找到目标后的处理逻辑。小组分工建议:一人负责编码,一人负责设计测试数据,一人负责记录与汇报。教师巡视时重点关注两类典型错误:循环条件写成low<high导致漏查单元素情形;区间更新忘记加一减一。对提前完成的小组,教师个别追问“若序列是降序排列,程序要如何改”,引导学生理解算法与数据结构状态的依赖关系。(六)拓展思辨:二分查找的适用边界(约4分钟)教师提出两个反例情境:第一,学校图书室的借书记录按时间杂乱存放,要查某位同学的借阅记录,能用二分查找吗?第二,一段监控视频要查找某个时间点出现的画面,数据量极大且基本有序,怎么做?学生讨论后归纳出二分查找的两个前提:数据必须有序;数据应支持按下标随机访问(如数组、列表)。教师补充:生活中通讯录按拼音排序、字典按部首排序、词典按字母排序,本质上都是在为“快速折半”创造条件——排序的成本是一次性的,查找的收益是每次的。这一笔账,是算法设计中最经典的权衡思想。(七)课堂小结与作业(约3分钟)教师引导学生用今天的“一句话算法观”总结本课:二分查找的本质,是利用有序性,让每一次比较都获得最大的信息量——无论比较结果如何,都排除一半。分层作业:必做题为完成教材配套练习并手工模拟二分查找查找失败的全过程;选做题为调研一个使用二分思想的真实应用(如gitbisect定位引入bug的提交、猜价格电视节目),写二百字说明其折半策略;思考题为本课开头留下的悬念——1到100万为何20次以内必中,用对数知识给出证明。六、板书设计主板书区:二分查找三要素——前提:有序;策略:取中比较、排除一半;终止:low>high。中央书写区间滑动示意:low……mid……high,配合箭头表示收缩方向。右侧副板书区:效率对比表(1000/10次,100万/20次,10亿/30次)与边界更新铁律两条。七、教学评价设计本课采用“三单”联动评价:课前预习单收集学生对“查找”的原始认知;课中任务单的三个验证任务实时呈现思维进程;课后学习单通过“找出他人程序中的边界错误”类题目检验迁移能力。评价主体包含学生自评(测试用例设计是否严密)、小组互评(代码可读性与效率)与教师点评(思维严谨性),重点不看程序能否跑通,而看学生能否解释“为什么这样写才不会错”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论