版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中信息技术必修一“5.4.2查找算法的应用”教学设计——顺序查找与二分查找的项目实践一、课标定位与教材分析本节内容选自普通高中信息技术必修课程数据与计算模块,对应课标中“理解常见算法的程序实现,能根据解决问题的需要选择恰当的算法”这一内容要求。5.4.2节处于“算法与程序实现”单元的后端,学生此前已经完成顺序结构、分支结构、循环结构的程序设计训练,掌握了列表、索引、切片等Python基础知识,具备了把自然语言问题转化为程序流程的基本能力。查找算法的应用是本单元的综合实践课,承担着把“会写代码”升华为“会用算法解决问题”的关键任务。教材以顺序查找和二分查找为主线,从生活中的翻书寻页、字典查字等经验出发,引导学生抽象出查找问题的模型,进而比较两种算法在数据规模扩大时的效率差异。教材的编排意图十分清晰:算法不是背出来的,而是在“效率焦虑”中被“逼”出来的。当学生面对一万条、十万条数据时,顺序查找的迟钝感会直接转化为对二分查找的渴求,这种认知冲突是本课设计的第一驱动力。本节课并非单纯讲授两种算法的代码实现,而是借助“校园图书管理系统中的书目检索”这一真实情境,让学生经历需求分析、算法选择、程序实现、效率测试、方案优化的完整工程过程。由此,学生不仅掌握查找算法本身,还初步建立计算思维中的“规模意识”和“代价意识”,为后续排序算法、算法效率评价等内容埋下伏笔。二、学情研判授课对象为高一年级学生。从知识储备看,学生能够熟练使用for循环和while循环遍历列表,能用if语句进行条件判断,能调用len、input等常用函数,但多数学生对列表索引的边界处理不熟练,循环变量与索引变量的混用易出错。从思维水平看,高一学生正处于从具体运算向形式运算成熟的过渡期,能够接受“用数学方式证明二分查找最多需要多少次比较”这样的抽象推理,但需要教师搭建脚手架——例如先用26个同学的队伍猜数字的游戏做铺垫,再引入对数的概念。从学习习性看,该年龄段学生动手欲望强,竞赛机制能有效激发参与度,但普遍存在“重编码、轻设计”的倾向,拿到题目先敲代码、出了问题再回头改的现象普遍。本课在流程设计上刻意压缩了初始编码时间,强制学生先完成流程图与伪代码,以纠正这一习惯。此外,部分数学基础较弱的学生对“每次砍半,最多找几次”的推算存在畏难情绪,需要用直观的折纸、翻卡片活动予以支撑。三、教学目标第一,知识与技能。学生能够用自己的语言描述顺序查找与二分查找的执行过程;能写出两种算法的Python实现代码,代码无逻辑错误,能正确处理“未找到”的情形;能说明二分查找以数据有序为前提,并解释原因。第二,过程与方法。经历从真实检索需求出发抽象出查找问题、选择算法、设计流程、编码调试、测试评估的完整过程;通过对比实验记录不同数据规模下两种算法的比较次数,归纳出两者效率与数据量的关系,初步体会用数据说话的评价方式。第三,情感态度与价值观。在“效率竞赛”中体会算法优化的力量,建立“解决问题的方案有优劣之分”的工程意识;在小组协作与互评中养成尊重证据、规范表达的学术品质。四、教学重点与难点教学重点:顺序查找与二分查找的算法思想及程序实现;根据问题条件正确选择查找算法。教学难点:二分查找中查找区间边界的维护,即low、high、mid三个变量的更新逻辑,以及循环终止条件的把握;对二分查找时间效率的直观理解与推算。五、教学方法与资源准备教学方法采用项目式学习与任务驱动相结合,辅以对比实验法和小组竞赛。课堂上不使用讲授法作为主线,教师的角色限定为情境创设者、实验设计者与争议仲裁者。资源准备包括:装有Python3.x环境的学生机,预装的程序框架文件search_frame.py;教师制作的“翻字典猜单词”动画课件;一万条与十万条模拟图书数据文件books.txt;任务单与实验记录表;一张纸质卡片道具若干,正面写数字,供二分查找模拟使用。六、教学过程(一)情境导入:从“大海捞针”说起,八分钟上课伊始,投影呈现一张截图:学校图书馆管理系统后台,藏书总量九万三千四百一十七册。教师抛出问题:“如果靠人工一本一本翻,找到《流浪地球》需要多久?计算机帮我们找,又是怎么找的?”学生七嘴八舌,有人说“从第一个开始比对”,有人的直觉已经指向“按书号跳着找”。教师不予评判,顺势发出第一个任务:“假设图书馆只有七本书,书号是从小到大排好的,你想个办法最快找到指定书号,把你的办法讲给同桌听。”两分钟的同桌交流后,请两组学生展示。一组演示从头往后翻,一组演示从中间切开。教师只做一件事:把每种做法的“翻书次数”记在黑板左侧,并追问:“七本可能只差一两次,那九万本呢?”此处的设计意图有三。其一,用真实数据建立规模感,让学生意识到“怎么找”绝非一个小问题。其二,让学生自己说出两种策略,算法思想的第一次登场是学生原创而非教师灌输。其三,黑板上留下的两组数字成为后面效率实验的悬念锚点。导入环节严格控制时间,教师不讲解任何代码,只激活认知冲突。(二)任务一:顺序查找的程序实现,十二分钟任务单一给出明确需求:给定一个包含n个元素的列表和一个目标值target,返回target在列表中的位置,若不存在则返回负一。学生先独立在任务单上补全流程图。流程图提供半成品——判断框“当前元素是否等于target”已给出,循环的进入条件、索引变量的移动、以及“遍历结束仍未找到”的出口留空。此举意在把学生的注意力聚焦到算法骨架,而非语法细节。随后学生打开search_frame.py完成编码。参考实现如下,以板书或投屏方式在巡视结束后呈现:defshunxu_chazhao(items,target):index=0whileindex<len(items):ifitems[index]==target:returnindexindex=index+1return1教师巡视时重点观察三类典型错误:一是把index+1写成items+1,混淆值与位置;二是循环条件误写为index<=len(items),导致索引越界报错;三是在循环内else分支直接return1,导致只比较了第一个元素就草草收场。发现第三类错误不立即点破,而是请该学生运行测试数据——把目标值放在列表末尾,让程序当场“露馅”,由错误自己说话。编码完成后,学生用任务单提供的三组测试数据验证程序:目标在头部、目标在末尾、目标不存在。教师强调“测试用例要覆盖边界情况”,这是程序设计的基本职业素养。本环节结束前,请一名学生口头复述顺序查找的思想:“从第一个开始,挨个比对,直到找到或者全部找完。”教师板书关键词:逐个、无序可用、最坏找n次。(三)任务二:二分查找的探究与实现,二十分钟此环节是本课核心,采用“游戏—建模—编码—排错”四步推进。第一步,游戏建模。请一名学生上台,教师在卡片上写下一个1到100之间的整数并展示,学生猜数,教师只回答“大了”或“小了”。台下学生记录猜测次数。多数学生经过两三轮尝试后会不自觉地采用对半猜的策略。教师抓住时机追问:“为什么猜50比猜1更聪明?”学生回答:“因为无论答案大还是小,猜50都能排除一半的可能。”教师板书:每猜一次,范围减半。第二步,形式化。教师给出定义:在n个已经按从小到大排好的元素中查找,每次取区间中点的元素mid与目标比较,若相等则成功,若目标更小则在左半区间继续,否则在右半区间继续,直到区间为空。随后师生共同推算:100以内最多猜7次,1000以内最多猜10次,100万以内最多猜20次。推算过程用问题链展开:“每猜一次范围减半,n个元素要减到1个,需要折半多少次?”引导学生用“2的几次方”表述,得出次数约为log₂n的结论。不要求学过对数的学生书写符号,只用“一百万也只要二十次”建立震撼感。第三步,编码。给出流程图框架,学生独立完成程序。参考实现:deferfen_chazhao(items,target):low=0high=len(items)1whilelow<=high:mid=(low+high)//2ifitems[mid]==target:returnmidelifitems[mid]>target:high=mid1else:low=mid+1return1第四步,排错与辨析。教师预先统计历届学生在此处的三大高频错误,逐一以“病例”形式投屏,请全班会诊。病例一:循环条件写成low<high。当目标恰为最后区间的唯一元素时,循环提前退出,造成漏检。教师演示:列表只有一个元素且恰为目标,程序返回不正确结果。结论:区间收窄到只剩一个元素时还必须查一次,故条件应为low<=high。病例二:边界更新写成high=mid或low=mid。用三个元素的列表手工跟踪,发现mid已经比较过却仍留在新区间,极端情况下区间永不缩小,程序死循环。结论:排除mid本身,必须加一或减一。病例三:忘记二分查找的前提。给出无序列表,程序返回错误位置。请学生思考:“无序数据能不能用二分查找?为什么不行?那该怎么办?”引导学生得出两种出路——先排序再二分,或退而求其次用顺序查找。此处教师点拨一个工程常识:排序本身有代价,只查一次的场合不值得先排序;反复检索的场合,一次排序终身受益,这正是“学校图书数据库为什么一定按书号有序存放”的原因。本环节的教学逻辑是让学生先被错误绊倒,再亲手厘清边界逻辑。三个变量的更新规则不是被告知,而是在死循环和漏检的“事故现场”中被学生自己推导出来。(四)任务三:效率对比实验,十分钟学生分四人小组,组长分配角色:操作员、记录员、计时员、汇报员。实验要求:分别用一万条和十万条有序数据,调用两种查找函数,查找一个位于数据集最末端的元素,统计每种算法的比较次数。程序框架中已内置计数器,学生只需补全统计语句并运行。各组将结果填入黑板汇总表。典型数据为:一万条数据,顺序查找比较一万次,二分查找比较十四次左右;十万条数据,顺序查找比较十万次,二分查找约十七次。教师引导分析:“数据扩大十倍,顺序查找的次数也扩大十倍,二分查找只增加了三四次。如果扩大到一亿条呢?”学生推算后得出:顺序查找最坏一亿次,二分查找约二十七次。黑板上两组差异悬殊的数字,胜过任何关于“算法效率重要性”的说教。随后抛出开放性问题:“二分查找全面碾压顺序查找,那顺序查找还有生存价值吗?”小组讨论后由各组汇报。预期结论包括:无序数据只能用顺序查找;数据量很小时两者差别可忽略;顺序查找逻辑简单不易写错;链表等不支持随机跳跃访问的存储结构只能用顺序查找。教师把学生的发言提炼为一句话写在黑板中央:“没有最好的算法,只有最合适的算法。”这正是本课要传递的核心计算观念。(五)总结与作业布置,五分钟课堂小结由学生完成。教师给出三个问题:“今天我学会了哪两种查找方法?它们各自的前提条件是什么?我的程序第一遍运行时出过什么错,是怎么改掉的?”学生在任务单背面用一段话回应,算作本课的出口票,下课后上交,作为形成性评价的依据。分层作业设计如下。基础层:完善本课程序,补充注释,将查找结果格式化为“在第几位找到,比较了几次”的完整提示语。提高层:编写程序实现“在通讯录中按姓名查找手机号”,注意姓名可能重复,要求返回所有匹配的位置。拓展层:探究题目——把一百万条数据存入列表,比较自己写的二分查找函数与Python内置的in运算符的速度,思考内置运算为什么快,下节课用两分钟分享发现。七、板书设计主板书区:课题“查找:从大海捞针到精准定位”。左侧为顺序查找,关键词“逐个比对、无需有序、最坏n次”,附三行核心代码。右侧为二分查找,关键词“区间减半、必须有序、约log₂n次”,附low、high、mid的关系示意:一条横线上标出low与high两个端点,箭头指向中点mid,下方注明“排除中点再缩边”。下方实验区为各班效率数据的汇总表格。最下方一行红字:“没有最好的算法,只有最合适的算法。”副板书区保留给课堂生成的内容:学生典型错误代码的截图描述、学生提出的精彩问题,以及各小组竞赛的积分记录。八、教学评价设计评价采用过程与结果并重的方式。过程性评价占总评六成:任务单中流程图与伪代码的完成质量占两成,编码与调试的课堂表现为两成,效率实验记录与分析报告为两成。结果性评价占四成:出口票的小结质量与分层作业的完成情况各半。评价主体多元——流程图采用同桌互评,教师提供评分参照:逻辑完整、符号规范、能独立跑通者为优;实验报告由小组互评,重点核查数据记录是否真实、结论是否有证据支撑。评价量表的条目从学生的语言出发,避免空泛的“态度端正”之类表述。例如“我能说出为什么二分查找要求数据有序”,“我能用测试数据找出别人程序里的边界错误”,“我能在两种算法之间做出选择并说明理由”。每一条都是可观察、可举证的行为,教师据此快速诊断每位学生的学习落点。九、教学预设与生成应对预设问题一:二分查找的循环终止。个别学生坚持认为high=mid更“保险”而不理解死循环的成因。应对策略是改用实物模拟——三张卡片排一行,令学生用手扮演low、high两根手指沿程序逐行移动,手指停止而区间未空的那一刻,错误不言自明。预设问题二:数学层面的畏难。若学生对“2的多少次方等于一百万”感到陌生,改为逆向操作——对折一张纸,每折一次厚度翻倍,问折多少次超过珠穆朗玛峰高度(约四十二次)。从熟悉的翻倍模型反推折半模型,认知负荷显著下降。预设问题三:进度失衡。若任务二耗时超出预期,则把效
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年武邑县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年舒城县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年修水县医疗事业单位人员招聘笔试备考试题及答案解析
- 安全操作规程培训试题及答案解析
- 2026年新晃侗族自治县医疗事业单位人员招聘笔试参考题库及答案解析
- 2026年靖边县医疗事业单位人员招聘笔试参考题库及答案解析
- 2026年新和县带编教师招聘笔试备考题库及答案解析
- 2026年金乡县医疗事业单位人员招聘笔试参考题库及答案解析
- 2026年龙川县医疗事业单位人员招聘考试备考试题及答案解析
- 2026年天柱县医疗事业单位人员招聘考试模拟试题及答案解析
- 2026秋教科版小学科学一年级上册教学计划附进度表
- 2026年秋季开学高中网络安全学习方法指导课件
- 2025年中级会计师考试《中级会计实务》考试真题及答案解析
- 2026中国小额贷款行业市场深度调研及发展趋势与投资前景预测研究报告
- 2026年安管人员继续教育试题及答案
- 售电公司内部风控手册
- 2026秋小学新版苏教版数学五年级上册教学设计(附目录)适用于新课标
- 2026年西藏自治区日喀则市法检系统书记员招聘考试模拟试题及答案详解
- 2026人教版六年级数学上册第一单元第2课《用方向和距离确定位置》课件
- 2026工业富联ai面试题库大全及答案
- 河北省高等职业院校单独招生考试数学总复习
评论
0/150
提交评论