高中信息技术选择性必修1“5.4 数据查找”教学设计-基于顺序查找、二分查找与哈希查找的算法思维进阶_第1页
高中信息技术选择性必修1“5.4 数据查找”教学设计-基于顺序查找、二分查找与哈希查找的算法思维进阶_第2页
高中信息技术选择性必修1“5.4 数据查找”教学设计-基于顺序查找、二分查找与哈希查找的算法思维进阶_第3页
高中信息技术选择性必修1“5.4 数据查找”教学设计-基于顺序查找、二分查找与哈希查找的算法思维进阶_第4页
高中信息技术选择性必修1“5.4 数据查找”教学设计-基于顺序查找、二分查找与哈希查找的算法思维进阶_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

高中信息技术选择性必修1“5.4数据查找”教学设计——基于顺序查找、二分查找与哈希查找的算法思维进阶一、教材分析本节内容选自浙教版高中信息技术选择性必修1《数据与数据结构》第五章“数组与链表”的第四节。教材在前三节完成了数组的组织方式、基本操作及排序算法的学习,数据查找是在有序数据管理基础上的自然延伸,是数据结构课程体系中承上启下的关键环节。本节的核心内容包含三条查找路径:顺序查找、二分查找和基于哈希思想的查找。三条路径对应三种典型的问题情境:数据无序且规模较小时的线性扫描、数据有序时的对数时间折半逼近、追求即时响应时的空间换时间策略。教材给出的任务背景贴近学生生活,如成绩查询、图书检索、联系人快速定位等,这为真实情境教学提供了落脚点。从课标要求看,选择性必修1强调“能从简化问题入手,设计恰当的算法并编程实现”,同时要求“分析算法的时间复杂度,体验算法的优化过程”。本节课是时间复杂度概念的第一次落地场景,学生将直观看到O(n)与O(log₂n)在数据规模为百万级时的巨大差异,算法效率不再停留在纸面。本节教学的难点不在代码本身。二分查找的边界处理用三五行代码即可写完,真正的困难在于学生能否理解“whileleft<=right”与“mid更新”之间的逻辑闭环,能否理解哈希函数将键映射为地址这一抽象过程。教学设计的重心必须从“教会代码”转向“建构模型”。二、学情分析授课对象为高二年级选考信息技术的学生。经过必修课程及选择性必修1前四章的学习,学生已具备以下基础:熟练使用Python基本控制结构,掌握列表的常见操作,理解循环不变式的初步思想,有冒泡排序、选择排序的编程经验。从认知特点看,高二学生处于形式运算阶段的成熟期,能够进行假设性推理,但面对“对某个抽象区间不断取中点”这类需要同时维护多个变量的思维活动,仍易出现变量角色混淆。前期作业反馈显示,学生在循环边界问题上错误率高,典型错误包括死循环、越界访问、漏查目标恰好位于端点的情况。从学习动机看,本节内容有丰富的现实映射。学生每天都在用手机搜索联系人、在购物平台检索商品、用学号查询成绩,“查找”是他们熟悉的操作,却是陌生的原理。这种“熟悉而陌生”正是最好的认知冲突素材。授课班级整体基础中上,两极分化存在,需在任务设计中设置分层,使基础薄弱学生能完成顺序查找的完整复现,学有余力的学生能探究哈希冲突的解决思路。三、教学目标(一)学科核心素养目标信息意识:能从日常查询场景中识别查找问题,主动分析数据的规模特征与有序性特征,据此判断该选择哪类查找策略。计算思维:理解顺序查找、二分查找、哈希查找的算法模型,能用自然语言、流程图、Python程序三种方式表征同一算法;能通过边界分析与关键变量追踪调试程序;能比较不同算法的时间复杂度并解释差异来源。数字化学习与创新:能利用实验数据比较两种查找算法在不同数据规模下的实际运行时间,生成对比结论,体验“用数据说话”的算法研究方法。信息社会责任:在讨论哈希查找应用于用户密码存储、身份证号码索引等场景时,初步建立数据安全与隐私保护的意识。(二)三维目标知识与技能目标:学生能说出三种查找算法的基本思想;能独立编写顺序查找程序;能在教师引导下完成二分查找程序并通过全部测试用例;能解释哈希查找“键—函数—地址”的映射过程;能用O记号描述三种算法的时间复杂度。过程与方法目标:学生经历“提出问题—建立模型—编程实现—测试修正—性能比较”的完整探究流程,掌握用对分思想缩小问题规模的通用策略。情感态度与价值观目标:学生在“猜数字”与“百万级数据计时”活动中真切感受算法优化的价值,形成“先做正确,再求更快”的工程意识。四、教学重难点重点:顺序查找与二分查找的算法思想及程序实现;时间复杂度的直观比较。难点:二分查找的循环边界条件设计,包括left、right、mid三个变量的正确更新及循环终止条件的选取;哈希函数映射思想的抽象理解。难点突破策略:用“猜数字”游戏建立对分直觉,用数轴上的区间收缩动画可视化mid的移动过程,用编号储物柜类比哈希映射,把抽象思维转化为可操作、可观察的具体活动。五、教学方法与教学准备教学方法:情境教学法、问题链驱动、任务驱动、小组协作探究、对比实验法。教学准备:多媒体教室、每生一台安装Python环境的计算机、教学课件、学生活动任务单、预置的测试数据文件(含一百万个有序整数的文本文件与一千个无序整数的文本文件)、二分查找的半成品代码框架、计时实验模板程序。课时安排:2课时连排,共90分钟。六、教学过程第一环节:情境导入——被卡住的成绩查询系统(8分钟)教师在大屏幕展示一个真实感十足的场景:学校教务系统刚导入全校三个年级共十万余条成绩记录,一位家长打来电话,说网页上查询孩子成绩转了半分钟还没出结果。教师提问:“如果你是这个系统的程序员,你怀疑问题出在哪里?”学生自由发言。常见回答包括网速慢、服务器差、数据太多。教师追问:“数据多是事实,但数据多就一定慢吗?淘宝上的商品数以亿计,我们搜索一个关键词,结果依然秒出。差别在哪里?”课堂安静下来,学生开始意识到问题的核心不在硬件,而在“怎么找”。教师顺势给出本节课的核心问题:面对一批数据,如何又快又准地找到目标?并把学生最初的朴素方案写进黑板左上角——“从头到尾一个个看过去”。这个方案在后续教学中将被反复引用、验证、嫌弃、尊重,因为它是一切查找算法的起点,也是本节情感线索的起点:最简单的想法未必愚蠢,但它有明确的适用边界。设计意图:以真实冲突切入,把“查找”从教材术语还原为学生可感知的工程问题,同时埋下“算法选择依赖数据特征”的伏笔。第二环节:顺序查找——先把事情做对(15分钟)教师下发任务单一的第一项:给定一个含20个无序整数的列表和一个目标值,用Python判断目标值是否存在,若存在则输出其下标,不存在则输出1。这是学生能力范围内的任务,巡视中教师关注两类典型写法。一类是for循环配合break提前退出,一类是全列表扫描后统计。教师请两位学生上屏展示代码,并组织全班比较两种写法的差异:“找到目标后立即停止”为什么更好?学生能答出“省时”,教师把它精确化:最好情况比较1次,最坏情况比较n次,平均比较约n的一半。教师板书顺序查找的三要素:逐一访问、相等判断、位置返回。随后现场演示一名学生的常见错误——用“if目标in列表”直接调用内置方法。教师肯定其正确性,同时抛出问题:“in这个操作内部做了什么?它替你省掉的循环,是不是也省掉了那些比较?”学生意识到内置方法背后仍然是顺序扫描,魔法并不存在,只是被封装。这一辨析避免了学生对语言特性的依赖掩盖了算法本质。教师带领学生回到导入情境:如果教务系统对所有记录做顺序查找,十万条数据找到一条记录的期望比较次数是五万量级。让学生在自带的模板程序中实测:在千条无序数据中查找一个位于末尾的目标,记录循环比较次数。学生观察到计时结果,形成对O(n)的第一次量化体验。设计意图:顺序查找看似简单,承担着三个功能——复习循环结构、确立“查找算法”的评价指标(比较次数)、为二分查找制造性能反差的底色。第三环节:猜数字游戏——对分思想的直觉建立(10分钟)教师转换活动:请一名学生上台,心里想一个1到100之间的整数,教师猜,学生只回答“大了”或“小了”。教师采用每次取进行中值的策略,七轮之内猜中。全班数着次数:第一次猜50,第二次猜25或75……学生发现了一个朴素的结论:无论心里想的数是多少,老师最多猜7次。教师追问:“为什么最多7次?”引导学生从数学上说明:每猜一次,可能的范围缩小一半,100缩小到1需要的对分次数是log₂100,约6.6,向上取整为7。教师把“2的7次方等于128,超过100”这个不等式写在黑板上,让学生亲手验证。接着教师让两位学生互玩此游戏,要求其中一人故意采用随机瞎猜策略,另一人采用取中策略,各玩三轮并记录猜测次数。数据呈现在屏幕上:随机策略平均约50次,取中策略稳定在7次以内。四十倍的差距在没有写一行代码的情况下由学生亲身体验。教师点破关键前提:“取中策略能成立,依赖一个隐蔽的条件——对方必须诚实回答‘大了’还是‘小了’。这一问一答,等价于数据本身是有序排列的。如果把100张数字卡片洗乱放进抽屉,你还能用对分吗?”学生齐答不能。至此,二分查找的两个支柱——数据有序、每次排除一半——均由学生自己归纳得出。设计意图:以游戏把对数级效率具象化,把“有序性”这个前提从定义变成必要条件,为代码环节的边界讨论奠定直觉基础。第四环节:二分查找——从直觉到严谨(22分钟)本环节是整节课的思维高峰,分四步推进。第一步,学生口头描述算法流程。教师要求把游戏里“每次猜中点”翻译成对列表操作的描述:设两个指针left和right分别指向查找范围的首尾,取中点mid,比较目标与中点值,根据大小关系收缩范围。学生用流程图在学案上画出判断结构。第二步,教师展示半成品代码,挖去三处关键语句:循环条件、left的更新、right的更新。学生分组补全。教师巡视中重点收集三类典型错误:错误一,循环条件写成left小于right,当目标恰好是left等于right指向的那个元素时循环提前退出,漏查成功。错误二,mid命中失败后写成left等于mid,导致left与mid重合时范围不再缩小,陷入死循环。错误三,忘记在负数取整或语言特性上验证mid的计算方式。第三步,用消错代替直接讲解。教师不指出答案,而是给出针对性测试用例,让错误代码自己暴露问题。对错误一,给出单元素列表,目标恰好是该元素;对错误二,给出两元素列表,目标落在右半段。学生运行后看到死循环或漏查,小组自行回溯到三处挖空位置进行修正。教师在全班层面用数轴动画演示一个七元素列表的完整查找过程,把每一轮left、mid、right的取值制作成表格,要求学生在自己的调试中同样填表追踪。学生体会到:二分查找的每一行代码都服务于“范围严格缩小且不丢目标”这条不变式。第四步,性能验证。教师提供含一百万个有序整数的文件,学生用同一个二分查找程序查找文件末尾的目标值,记录比较次数。结果稳定地在20次左右出现——因为2的20次方约为一百万。教室内响起真实的惊叹声。教师把两组数据并排写在黑板上:一百万条数据,顺序查找平均约50万次比较,二分查找最多20次。随后自然引出时间复杂度的记号:前者O(n),后者O(log₂n),并用坐标系中两条曲线的走势说明差距随规模扩大而急剧拉大。教师补上一个反向警示:二分查找要求数据有序,而无序数据排序本身也有代价,若一次查找需要对全集排序,总成本未必划算。什么时候值得为查找先排序?当查找次数足够多,排序的一次性成本被多次查找摊薄。学生由此获得“算法选择是权衡”的工程视角,而不仅是“二分就比顺序好”的机械结论。设计意图:以挖空填码、制造错误、测试用例反证的方式处理难点,避免学生抄对代码却不懂原理;变量追踪表训练严谨的程序思维;百万级实测让时间复杂度从符号变成体验。第五环节:哈希查找——有时连比较都不需要(15分钟)教师提出新情境:学校有一千个储物柜,新生报到领取钥匙。管理员的办法是把柜子编号,学生报学号,管理员用学号对1000取余,余数即柜号,学生径直走向那个柜子。教师问:“这位管理员查找了几次?”学生愣住:一次都没有查找,是直接算出来的。教师给出概念框架:把键(学号)通过某种确定的函数映射为存储位置(柜号),这个函数叫哈希函数,存放数据的表叫哈希表。理想情况下,查找时间与数据总量无关,记作O(1)。接着组织微型探究:演示程序用简单的取余哈希把20个学生学号映射到大小为23的表中,出现两次余数相同的情况。教师提问:“两个学生被分到同一个柜子,怎么办?”学生分组讨论常见方案。教师归纳两条路线:一是这把钥匙往后顺延找空柜子,即线性探测;二是一个柜子做成挂链,同号的挂在一起,即链地址法。学生用画表格的方式手工模拟插入与查找的完整过程,体会“哈希把查找问题转化为映射问题,但代价是处理冲突和消耗更多空间”。教师做简短拓展:手机联系人的快速定位、字典的键值查询、用户登录时密码的比对,背后都有哈希的身影;同时指出哈希存储的敏感数据若管理不当存在泄露风险,引导学生建立初步的安全意识。设计意图:储物柜类比消解“函数映射”的抽象感,冲突模拟把教材一句话的概念变成可操作的探究,安全话题落实社会责任维度的素养目标。第六环节:综合对比与情境回扣(12分钟)教师组织“算法门诊”活动。屏幕上给出四个真实感任务,小组讨论并给出查找方案及理由:任务一,一个班级50人的随机座次表中找某位同学。任务二,新华字典中查一个汉字。任务三,小区门禁系统根据车牌号放行,要求毫秒级响应,车牌总量较大且不断增加。任务四,一份尚未整理的问卷数据中统计某人是否填写过,且只查这一次。预设结论:任务一数据小且无序,顺序查找即可;任务二字典有序,对分思想的应用实例;任务三高频查询加即时响应,宜哈希查找;任务四单次查询且数据无序,排序的成本无法摊薄,顺序查找反而合理。教师特别强调任务四:算法的高下取决于场景,没有放之四海皆优的算法。随后师生共同完成三种算法的对比表,维度包括:数据前提、核心思想、时间复杂度(最好/最坏/平均)、典型应用、主要局限。表格由学生口述,教师录入投屏,全班校对。课堂最后三分钟,教师回到课初的教务系统情境:“现在请你以程序员身份给学校写一句话的优化建议。”学生回答集中在两点:先按学号排序后采用二分查找,或直接建立学号到记录的哈希索引。教师收束全课:本节课我们做了三件事——把最简单的办法做到正确,用对分思想换来数量级的飞跃,用映射的思想实现“几乎不用找”。查找算法的历史演变告诉我们,每一次效率跃升,都来自对问题结构的更深理解,而不是来自更快的机器。设计意图:以任务门诊检验迁移能力,回扣导入形成教学闭环,收束语把具体知识提升到方法论高度。七、板书设计主板书分为三区。左区:问题与结论——“怎么找得快取决于数据长什么样”。中区自上而下:顺序查找(逐一比对,O(n))、二分查找(折半逼近,O(log₂n),前提是有序)、哈希查找(键经函数映射为地址,期望O(1),代价是空间与冲突处理)。右区为二分查找核心代码与l

温馨提示

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

评论

0/150

提交评论