版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中二年级信息技术选修1二分查找算法的思想教学设计一、教学定位与教材处理本课选自浙教版高中信息技术选择性必修《数据与数据结构》中“查找”主题的关键节点,前置基础是顺序查找、枚举思想与初步的算法复杂度感受,后续衔接分治策略、递归程序实现以及更一般的问题规模折半思想。教材把二分查找安排在数组有序之后,并非让学生多背一个查找模板,而是期待学生理解“算法效率来自数据结构提供的前提”,进而形成用条件换取速度的计算思维。高二学生已经能写出for循环遍历列表,也能用自然语言比较两种方法谁快谁慢,但他们的常见瓶颈在于把“中间比较”看成固定套路,忽视左右边界更新时的不变量,导致程序在边界值、重复元素、空区间上失效。本课的核心价值不在代码行数,而在三个观念的生长:第一,有序性是二分查找成立的本体条件,离开有序谈折半只是机械模仿;第二,每一次比较都不是随便排除一半,而是依据严格不等关系抛弃一个必然不含目标的子区间;第三,循环能否终止、答案是否完备,取决于区间收缩始终保持“目标若在,必在其中”的不变量。教学组织上采用“游戏入境—规则抽象—反例诊治—复杂度刻画—迁移变式”的线索,让学生从会猜数字走向会给严谨证明。二、学情研判与目标设定授课对象为高中二年级选考信息技术的学生,多数已完成Python列表、分支、循环和简单函数封装的学习,接触过顺序查找并能说出“最坏要比较n次”。差异主要体现在三点:一部分学生竞赛启蒙较早,会把mid=(low+high)//2当作结论背诵;一部分学生数学归纳意识薄弱,对“为什么每次规模减半最多log级”只能停留于形象感受;还有部分学生调试习惯停留在改到能跑,缺乏构造用例逼近缺陷的意识。因此目标必须既有公共底线,又留出上升空间。知识与理解目标定为:能准确说出二分查找对存储结构和元素顺序的要求;能描述low、high、mid的含义及其更新规则;能解释查找成功与失败两类终止条件;能用对数语言比较n规模下顺序查找与二分查找的比较次数。过程与方法目标定为:经历从猜数游戏到区间不变量的抽象过程,会用小样本手工模拟暴露offbyone错误,会依据“目标必在候选区间”检验每一步排除是否合法。情感与价值目标定为:在“快”的诱惑前保持对正确性的敬畏,认识到高效算法通常以更强前提和更细证明为代价,形成写程序先问适用条件的工程自觉。三、重难点、关键问题与评价证据重点落在二分查找的思想机制:有序数组中以中点为参照,把问题规模确定性地压缩为原来的一半。难点不在mid的计算,而在边界赋值与终止条件的相容,主要包括low=mid+1与high=mid1能否统一,写成low<=high还是low<high,目标不存在时如何判断插入位置,重复元素应返回任意一个还是最左位置。破解这些难点不能靠反复强调“细心”,而应让学生面对可控错误:把high=mid与high=mid1并置运行,再把区间长度为奇偶两类数据分别测试,观察死循环与漏查如何产生。本课设置三个关键问题贯穿始终。其一,凭什么可以扔掉一半:因为a[mid]与target的大小关系,加上单调非降,使被丢侧所有元素不可能等于目标。其二,怎样保证不丢答案:维护闭区间[low,high]内若存在目标则一定还在的性质,每次只排除已被证明不可能的部分。其三,何时停止才算干净:找到则返回下标;否则当low>high,候选区间为空,目标不存在,此时low恰好指向第一个大于目标的位置。评价证据采用三层:课堂即时应答看概念边界,学习单手工追踪看不变量掌握,课后代码与反例报告看迁移质量。四、教学资源与课堂组织环境准备包括可运行Python的机房或一体机演示、统一班级账号提交简短实验记录、纸质“区间追踪表”和一组磁贴卡片。卡片正面写2、5、8、12、17、23、31、40、56、71、88、99,背面留白用于现场改动成含重复值或非有序样例。教学平台只承担收集与计时,不替代黑板推理;教师演示代码故意保留可切换的边界宏,便于把错误开关作为讨论对象。学生四人一组,设记录员、质疑员、运行员、汇报员,职责每十分钟轮换,避免能者包场。课堂容量按两课时连排设计,共九十钟,第一课时完成思想建构与正确性论证,第二课时完成复杂度刻画、变式与工程化收尾。若受场地限制只能单课时呈现,可压缩扩展任务,保留“猜数—抽象—反例—证明”的主干,因为丢掉证明环节,二分查找就会退化为新的记忆负担。五、教学过程环节一为真实任务入境,用时约八分钟。教师不打开教材,先在屏幕上给出约定:我心里想好一个1到100的整数,你每次问一个数,我只回答偏大、偏小或猜中,目标是最少次数。学生通常第一轮会随口报数,课堂气氛热而策略散;第二轮要求同组统一询问序列,较快的小组自然从中部切入。此时教师追问:如果从1顺次问到100,最坏要问多少次;如果每次问当前可能范围正中间,最坏又是多少次。学生能感到“排除一半”的力度,但还说不出依据。教师板书三个词:范围、中点、排除,明确要求把游戏语言改写成可执行规则。入境后立即做第一次去魅:请学生判断,若我心里想的不是数,而是班里某位同学,且不按任何可比较规则排列,还能否折半。多数学生能否定。教师顺势指出,折半不是聪明地乱猜,而是利用了排列给出的秩序;没有秩序,中点比较就失去排除资格。此处理由必须说透:对升序序列,若中间值小于目标,则中点及其左侧全部无望;若中间值大于目标,则中点及其右侧全部无望。这个判断不是经验,而是由“所有左侧都不大于中间值,所有右侧都不小于中间值”推出。环节二为抽象建模,用时约十二分钟。教师把磁贴按升序贴在黑板,标出下标0到11,选择target=23。带领学生用追踪表记录low、high、mid、a[mid]、结论与新区间。第一次low=0、high=11、mid=5,a[5]=23,直接命中,学生易误以为二分总是很快结束。教师更换target=40继续手工执行:mid=5得23偏小,丢左半含中点,low变6;新区间6到11,mid=8,a[8]=56偏大,high变7;区间6到7,mid=6,a[6]=31偏小,low变7;mid=7命中。每一步都在表格“被证明不可能区域”一栏涂灰,直观看到候选集从十二到六到三到二到一。抽象环节强调符号化而非马上写码。设候选闭区间为[low,high],中点mid取下整(low+high)//2。比较结果只有三路:a[mid]==target,返回答案;a[mid]<target,目标不可能落在low到mid,故low=mid+1;a[mid]>target,目标不可能落在mid到high,故high=mid1。教师要求学生用一句完整话复述更新理由,例如“因为序列升序且中点值偏小,所以中点左边至多更小,绝不可能等于更大的目标”。说不出理由就暂停进入下一组,宁慢勿滑。环节三为反例诊治,用时约十八分钟,是本课最能区分浅会与真会的部分。教师展示三段外观相似的伪码:A版采用low<=high、low=mid+1、high=mid1;B版把high更新为high=mid;C版循环条件写成low<high且成功后仍外层返回。学生先预测哪些版本会死循环、哪些会漏解,再分组在下列数据上手工或上机验证:长度为1的列表;目标小于所有元素;目标大于所有元素;相邻两元素夹住目标;含大量重复值。记录表必须写出最后一次有效区间如何收缩为空。B版最容易暴露问题。设low=7、high=8,mid=7,若a[mid]>target,按high=mid得high=7,区间没有缩小,下一轮mid仍为7,形成不死不活的徘徊。学生第一次看到“算法也会原地踏步”,比教师口头警告印象深刻。接着讨论C版:当剩余两个元素且目标恰在右侧时,low<high还能进入;当只剩一个元素时若目标就是它,循环不进入导致漏报。由此归纳出保守且清晰的课堂基线:采用闭区间不变量,循环继续的语义是“候选区间非空”,即low<=high;排除中点时务必把mid本身也排除,因为比较已经回答过它。反例之后要有救治规则。教师给出三问自修法:一问区间是否包含所有可能性,二问比较后排除的一侧是否绝对不可能,三问low与high是否至少有一个严格越过mid。三问any不通过,先不改代码,回到表格手工推演。这里自然融入工程习惯:正确性不靠运行次数凑巧,靠对每条赋值之后不变量仍然成立的确认。学生把三问写在程序注释头,作为后续作业强制项。环节四为从表格到程序,用时约十五分钟。教师现场生成基础Python实现,不追求炫技,变量命名坚持low、high、mid、target,函数返回找到下标或1。演示时故意先运行大规模随机有序样本,界面只显示通过,随后立即换成构造的边界样本暴露if顺序问题,让学生体会“通过一百万个随机点不等于正确”。代码核心如下:whilelow<=high:mid=(low+high)//2;若a[mid]==target则returnmid;若a[mid]<target则low=mid+1;否则high=mid1;循环结束后return1。此处补入数学表达且保持可视化:mid=⌊(low+high)/2⌋。教师说明取整方向与端点更新必须配套,采用下取整时把中点排除到另一侧是安全的;若改用不同取整或开区间写法,整套规则要重证,不可拼接。对Python整数溢出问题不必展开到C层面,但提一句(low+high)在某些语言中可能溢出,可写low+(highlow)//2,目的是让学生知道同一数学思想落在不同运行环境要重新审查细节,而非在本课转移主题。学生随后完成最小改动任务:把返回1改为返回应插入位置,使序列仍有序。不少学生会在循环外补一堆分支,教师引导观察失败时low的性质。由于循环结束条件是low>high,且整个过程中所有小于等于target的可疑位置被推到low左侧,所有大于target的位置留在high右侧,最终low正是第一个大于target的下标。这个结论由不变量直接给出,代码只需returnlow。学生看到“失败信息也有结构”,对二分思想的理解从查找扩展到定位。第二课时开始用五分钟回收上节三问,进入环节五复杂度刻画。教师不先抛log,而在黑板列规模变化:n、⌈n/2⌉、⌈n/4⌉、……直到1。问最坏比较多少次,等价于问n连续除以2多少次落到1。写成2^k≥n,解得k≥log₂n,因而比较次数上界为⌈log₂n⌉量级;顺序查找最坏n次。把n=1024、约一百万、约十亿并排算给学生看,二分分别约十一次、二十次、三十次量级,顺序则是同量级巨大数。强调这是对数级增长,输入翻倍,代价只加一,前提是已经有序且可按下标随机访问。同时安排必要的祛魅:若数据维护在单链表,知道mid下标却不能一步到达,折半失去意义;若序列频繁无序插入,为了用二分而反复排序,总账未必划算;若比较本身代价极高或缓存行为特殊,理论次数还要放回实际测量。这样避免把二分神化成到处更快的标签,回扣学科育人中“约束条件决定方案”的判断力。环节六为变式迁移,用时约二十分钟,分层推进。基础变式处理重复元素:在[1,2,2,2,3]中找最左的2。学生发现命中即停会返回任意2,必须改成命中后记录答案并继续向左收缩,即high=mid1,循环结束读记录或边界。此任务再次使用不变量:当a[mid]>=target,左边界答案不可能在mid右侧,留high=mid1;当a[mid]<target,low=mid+1。进阶变式寻找旋转有序数组中的目标,如[7,9,12,15,1,3,5]。教师不给出完整解法,只要求判断哪一半仍然有序,再决定目标是否落在该半,否则去另一半。能力较强学生能沿用“先证可排除,再写赋值”的路径完成,教师点评时不扩散到竞赛技巧,而强调所有花样仍是同一原理:每次必须证明一半可弃。现实迁移选择“字典查词”“版本回退定位首个坏提交”“实验阈值标定”三例。以版本回退为例,历史提交按时间有序,若某版本之后测试失败,则“首个坏版本”具有单调性:坏之后皆坏,好之前皆好。学生把测试through一个谓词is_bad(v),查找最小bad,结构同最左元素。此处自然连接跨学科:数学中的单调函数零点逼近、物理实验中二分标定临界值,都不是新算法,而是把连续或离散对象安排成可判定方向后做折半。教师控制拓展边界,明确连续二分涉及误差ε与迭代停止,不在本课证明,只埋下精度与离散下标的差异。环节七为总结与作业设计,用时约十分钟。总结不用口号,而请三名学生各补全一句话:二分查找依赖什么前提;每一步凭什么删;循环结束说明什么。教师把答案压成黑板上最后留存的三行:有序且可随机访问;按单调关系排除无望半区;区间为空则不存在,边界给出位置。随后布置分层作业。必做题给出十个下标场景手工填表,并提交基础查找、插入位置、最左重复三段函数,各自附三条反例说明。选做题要求用随机有序数组统计顺序与二分平均比较次数,画图时都取对数横轴,解释为什么曲线不是题目想象中的直线。挑战题阅读lower_bound语义,用课堂三问论证其循环不变量,禁止抄录现成结论。评价量规与作业同步公开。概念准确性看是否把有序、随机访问、下标闭区间说全;推理严密性看是否每个边界更新都连到排除理由;实证质量看反例是否击中长度一、空结果、重复值、端点四处;表达规范看变量命名与注释能否让同伴三分钟复现。对只贴运行截图不论证的学生,分数不得进入优秀档;对论证完备但代码inefficiency一般的学生,仍可给予高等第,以此宣示本课奖励的是可靠思想而非熟练手感。六、板书与生成性资源设计板书分三区固定使用。左区为情境到模型,从猜数抽象出[low,high]、mid、三路分支;中区保留一张未完成的区间追踪表,课堂上用粉笔涂掉被证明不可能的元素;右区为“告诫栏”,只写四条短句:无序不二分,链表难折半,边界要过中点,通过≠正确。生成性资源来自学生错误,教师当堂拍摄两类典型过程:一类是low=mid造成的缓慢爬
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 眼镜验光师基础操作模拟考核试卷含答案
- 催化裂化工岗前基础实操考核试卷含答案
- 精对(间)苯二甲酸装置操作工基础能力测试考核试卷含答案
- 酒体设计师岗前生产安全培训考核试卷含答案
- 建设铅冶炼生产线综合技术改造项目可行性研究报告模板-立项备案
- 三明分公司加能站三次油气回收设备操作培训考卷
- 全国计算机等级考试二级真题测试(答案)
- 2026年最-新通信工程师初级通信专业综合能力试题与答案
- d双排落地式(悬挑)脚手架搭拆施工方案
- 2025年最-新全国计算机等级考试(四级数据库工程师)试题与答案
- 2026口腔三基试题及答案
- 2026秋小学湘艺版音乐六年级上册(新教材)教学计划含教学进度表
- 体育心理学(第四版)课件 第9-16章 动作技能学习心理-运动损伤心理
- 2026年北京市石景山区社区工作者招聘考试核心押题卷(第1套)(附独家高分解析)
- 2025网格员招聘笔试考试试题及答案
- 新学年新跨越-2026年秋季中学开学第一课
- 2026秋小学新版人教版数学五年级上册教学计划、教学设计(附目录)适用于新课标
- 2026年完整版国家自然科学基金申请书空白模版
- (2026年)高龄急性心肌梗死并发电风暴患者的抢救与护理
- AI在生物学科教学中的应用
- 新版2026年高考政治(黑吉辽蒙卷)真题详细解读及评析
评论
0/150
提交评论