版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中信息技术选择性必修1《数据查找》教学设计一、教学基本信息本课选自浙教版高中信息技术选择性必修1《数据与数据结构》第五章第四节"数据查找",授课对象为高二年级学生。本册教材以抽象数据类型与算法效率为主线,学生此前已完成数组、链表、栈、队列、字符串等非数值数据结构的学习,掌握了Python基本的编程实现方法,并对时间复杂度的概念有了初步认识。本节内容的核心是查找算法,主要包括顺序查找与二分查找,二者既是数据处理中最基础的操作,也是后续学习排序优化、索引结构、数据库查询的思想源头。本课计划安排两课时连排,共90分钟。第一课时以问题情境引出查找的概念与顺序查找,第二课时重点突破二分查找的思想、实现与效率分析,并以综合任务收束全课。二、学情分析高二学生在必修模块《数据与计算》中已经接触过利用Python遍历列表判断元素是否存在的操作,写过形如"forxina"的朴素查找代码,但他们往往只停留在"能查出来"的层面,缺少对查找效率的量化意识。从思维方式看,学生习惯于从小规模数据出发思考问题,面对百万级、千万级数据量时缺乏直观感受,难以自发产生"算法需要优化"的内在需求。从认知难点看,二分查找的思想本身并不深奥,学生在生活中"猜数字"游戏中已经无意识地使用过类似策略,但将这一生活经验抽象为严谨的算法描述时,容易在三个地方出错:一是边界条件的处理,区间端点取整与更新时机不当会导致死循环或漏查;二是对"有序"这一前提条件缺乏敏感,容易误以为二分查找可应用于任意数据;三是对对数级效率的理解停留在"快"的模糊感受上,缺少定量推演的能力。基于此,本课设计以真实规模的数据体验为突破口,用可感知的时间差异制造认知冲突,再以游戏化活动打通生活经验与算法形式化之间的通道,最后通过实验测量将效率差异从感性认识提升到数据证据层面。三、教学目标信息意识方面,学生能够认识查找是信息系统的基本操作,理解数据规模与查找方法选择之间的关系,形成在处理大规模数据时优先考虑算法效率的意识,并能从生活中的搜索行为中识别算法的影子。计算思维方面,学生能够抽象出查找问题的形式化描述,即在给定数据集合中确定特定键值元素的位置;能够用自然语言、流程图和Python代码三个层次分别描述顺序查找与二分查找;能够通过分析比较次数随数据规模的变化规律,理解线性增长与对数增长的本质差异;能够辨析二分查找的适用前提并说明理由。数字化学习与创新方面,学生能够借助编程环境完成两种查找算法的实现与对比实验,会使用时间测量工具采集不同数据规模下的运行数据,并依据数据归纳结论;能尝试对二分查找进行变式改造,如查找区间反复折半求近似解的拓展迁移。信息社会责任方面,学生通过了解搜索引擎、学籍系统、图书管理系统等场景中查找技术的关键作用,理解基础算法对公共信息服务质量的影响,体会"快一点"背后所承载的社会价值。四、教学重点与难点教学重点是顺序查找与二分查找算法的思想、实现过程及效率比较。教学难点是二分查找中区间更新的边界处理,以及对数时间复杂度的直观理解与定量分析。五、教学策略本课采用问题驱动与实验探究相结合的策略。以"千万条记录中查找一个人"的情境贯穿始终,通过"体验差异—剖析原理—动手实现—实验验证—迁移应用"五个环节组织学习。其中,二分查找采用"先玩游戏、再写算法"的降维策略,先让学生在猜数字活动中自发使用折半策略,再引导其将策略形式化,降低直接给出代码带来的灌输感。效率分析不采用纯理论推导,而是让学生设计实验、采集数据、绘制表格,用证据说话。六、教学准备教师准备:Python3.x环境,预先构造的含有一千万条有序记录的测试数据文件,顺序查找与二分查找的半成品代码框架,用于演示查找过程的动画课件,任务单与学习评价表。学生准备:复习Python列表操作、while循环与函数定义;课前完成一个预习小任务,即写下自己平时在网络或手机中进行"搜索"的三个例子,并猜测系统是如何找到结果的。七、教学过程(一)情境导入:一千万条记录中的那个人教师在大屏幕上展示一个模拟的政务数据查询场景:某市学籍管理系统中存储着超过一千万条学生记录,每条记录包含学号、姓名、学校等字段。现在需要根据学号查询某一位学生的完整信息。教师现场运行一段朴素的查找程序,对一千万条记录逐一比对,屏幕上进度条缓慢推进,大约十数秒后返回结果。教师提问:"如果这是一个急诊挂号系统,等待十几秒可以接受吗?如果是搜索引擎,全国每秒有成千上万次查询,每一次都这么查,会发生什么?"学生直观地感受到慢,并自然产生疑问:能不能更快?快多少才够用?教师顺势给出本课的核心问题:查找这件事,不同的做法之间到底差多少?为什么会差这么多?由此引出课题"数据查找",并明确本课要回答的三个问题:什么是查找,怎样查找,怎样查找得更快。设计意图是用真实的性能落差制造认知冲突。学生此前写的程序处理的数据量都很小,慢与快的差别无从感知,通过放大数据规模,让算法问题从"考试要考"变成"确实是个问题",学习动机由此建立。(二)概念建构:什么是查找教师给出查找的形式化描述:在一个由若干数据元素构成的集合中,根据给定的关键值,确定是否存在与之匹配的元素,若存在则返回其位置,否则返回特定的失败标记。教师强调三个要素:查找的对象是数据集合,查找的依据是关键值,查找的结果是位置或失败标识。结合学生课前预习任务,教师请几名同学分享自己的搜索例子,如通讯录中找联系人、词典App中查单词、电商网站中搜商品。师生共同归纳:这些场景表面上千差万别,抽象之后都是同一个问题——在集合中按关键字定位。教师指出,查找看似简单,却是整个信息世界运转的底层支柱,数据库的索引、搜索引擎的倒排表,本质上都是为了让查找更快。随后教师引出衡量查找方法优劣的标尺:平均比较次数。对于含n个元素的集合,查找某个元素需要进行多少次比较,这个次数随n如何变化,决定了该方法的效率等级。(三)顺序查找:从朴素想法出发教师提出问题:给定一个存放n个整数的列表和一个目标值,如何找到目标值的位置?学生基于已有经验很快给出思路:从第一个元素开始,逐个与目标值比较,相等则返回下标,全部比较完仍未找到则返回1。教师板书算法步骤,并请一名学生到讲台前完成流程图的绘制,其余同学在任务单上同步填写。流程图包含初始化下标为零、循环判断下标是否越界、比较当前元素、相等则返回、否则下标加一等基本环节。随后进入编码环节。学生打开教师提供的半成品文件,补全顺序查找函数。教师巡视,重点关注两类典型问题:一是循环结束后忘记返回失败标记,二是提前在循环内部误写返回语句导致只比较一次。教师收集典型错误,投屏点评,强调"遍历完毕未找到"与"每次都比较后返回"在逻辑上的区别。代码运行正确后,教师引导效率分析:最好的情况一次比较就命中,最坏的情况需要比较n次,假设目标值出现在每个位置的可能性相同,平均比较次数约为n的一半。教师特别强调,无论最好情况如何,这个方法的比较次数随数据量线性增长,数据翻十倍,耗时也大约翻十倍。请学生记住这个结论,稍后要用实验来检验它。设计意图是先立后破。顺序查找是学生能独立得出的方法,先把它做扎实,其效率瓶颈才自然暴露,为二分查找的出场铺好台阶。(四)体验冲突:慢,到底有多慢教师现场演示对比实验。将一千万条已按学号排序的记录读入程序,分别记录顺序查找一次所需的时间。学生观察到明显的等待。教师追问:如果学校机房每台电脑都要执行成千上万次这样的查询,总耗时是多少?学生粗略估算后意识到线性方法在大数据场景下的窘迫。教师不做解释,而是话锋一转:"我们先来玩一个游戏。"由此自然过渡到下一环节。(五)游戏探究:猜数字中的折半智慧教师宣布游戏规则:心中想好一个1到100之间的整数,学生提问,教师只回答"大了"或"小了",看最少几次能猜中。第一轮,教师请学生自由猜。多数学生最初的提问是"是50吗",得到"大了"后转而问"是25吗"。教师不点破,让游戏继续。经过若干轮后,教师统计:采用折半提问的学生基本在7次以内猜中。教师组织讨论:为什么从中间问起?每一次"大了"或"小了"的回答,实际上为我们排除了多少可能性?学生逐渐明确:每问一次,候选范围缩小一半。100变50,50变25,25变13左右,范围以几何速度收缩。教师板书推演:n个候选,折半k次后剩余约n除以2的k次方个,当其小于等于1时就能唯一确定。由此得出最多需要约log₂n次提问。教师请学生口算:一百万个候选大约需要多少次?学生借助"2的20次方约等于一百万"得出20次左右。一百万与二十的强烈反差写在黑板上,学生发出感叹。教师紧接着追问一个关键问题:这个游戏能玩起来的前提是什么?学生讨论后说出:数据必须是有序排列的,否则"大了""小了"的回答无法排除任何元素。教师肯定这一发现,并强调:有序,是二分查找不可逾越的前提。(六)算法抽象:从游戏到二分查找教师引导学生把刚才的游戏经验翻译成严谨的算法。师生共同梳理出二分查找的四个要点:第一,查找对象是有序序列,不妨设按升序排列。第二,维护一个查找区间,用两个下标low和high标记区间的左右端点,初始范围是整个数组。第三,每次取区间中间位置mid,比较中间元素与目标值:若相等,查找成功;若目标值小于中间元素,说明目标只可能出现在左半区间,令high更新到mid左侧;反之令low更新到mid右侧。第四,当low超过high时,区间为空,说明目标不存在,返回失败标记。教师请一名学生上台,面对全班扮演"求解器",教师随机指定有序列表中的值,该生按上述步骤在黑板上演示区间收缩过程,每步报出low、mid、high的值。全班校对区间的更新是否正确。这一具身化的演示,把抽象的区间变化可视化了。之后学生自主完成程序实现。教师提供的代码框架中故意留空三处:mid的计算、low的更新、high的更新。教师巡视时重点观察学生是否出现"high等于mid"或"low等于mid"这类会导致死循环或漏查的写法。针对边界问题,教师设计一个专门的小实验:构造一个恰好让目标值位于数组端点的测试用例,请写出了两种不同更新方式的学生分别运行。采用"high等于mid"写法的程序在本该结束的区间中反复循环,终端没有输出。教师在投屏上逐步打印low、mid、high的变化,全班清楚地看到区间卡死的全过程。由此归纳出边界处理的口诀:比较之后,排除中点本身,区间必须严格缩小。教师同时指出,边界更新方式与中点取整方式、区间开闭约定是配套的,只要逻辑自洽即可,但绝不能含混。(七)实验验证:用数据说话理论分析之后进入定量验证环节。教师布置实验任务:分别生成1千、1万、10万、100万、1000万五个规模的有序数据集,对每种规模运行两种查找算法若干次取平均,记录每次查找的比较次数与耗时,填入任务单表格。学生分组实验,教师巡视指导,提醒注意随机选取目标值以避免偶然性。约十分钟后,各组汇报数据。教师将典型结果汇总到投影表格中:顺序查找的比较次数随规模线性放大,百万级数据下平均需要几十万次比较;二分查找的比较次数增长极其缓慢,一千万规模下仅约二十几次。耗时差距同样悬殊。教师引导归纳:顺序查找的比较次数与n成正比,属于线性增长;二分查找每次排除一半,比较次数与log₂n相关,属于对数增长。对数增长的特点是"越到后面越慢",数据量翻一百倍,比较次数只增加约六到七次。教师请学生用自己的话向同桌复述这一差异,互相检验表述是否准确。教师补充一个现实注脚:正因为对数级查找的存在,搜索引擎才有可能在海量网页中瞬间定位。当然,真实系统使用的索引结构远比二分查找复杂,但其折半、剪枝的思想一脉相承。(八)辩证探讨:二分查找一定是答案吗教师抛出思辨性问题:二分查找这么快,是否意味着顺序查找可以淘汰?学生分组讨论后形成若干观点,教师汇总提升:其一,二分查找要求数据有序,而排序本身有代价。如果数据只查一次,排序加上二分可能不如直接顺序查一遍。其二,若数据存储在链式结构中,无法按下标直接访问中间元素,折半无从谈起。其三,数据频繁插入删除时,维持有序结构需要持续开销,需要权衡。教师总结:算法没有绝对的好坏,只有与场景是否匹配。选择查找方法时,要同时考察数据规模、数据组织方式、查询频率、更新频率四个维度。这一认识比记住某个算法更重要。(九)综合任务:为班级图书角设计查询方案教师布置综合实践任务:班级图书角拟建一个小型书目管理系统,班级约藏书三百册,按索书号排序存放在列表中,需要支持按索书号查询图书位置的功能。请学生完成三件事:第一,说明选择哪种查找方法并给出理由;第二,编写完整的查询函数并通过测试用例验证,测试用例必须包含"目标存在""目标不存在""目标是首元素""目标是末元素"四类情形;第三,若今后藏书量扩大到十万册,方案是否需要调整,说明理由。学生独立完成或两人协作完成,教师回收作品,选取两份有代表性的作业在下一课时开头点评。该任务将算法选择、边界处理、测试意识、规模适应四个维度的考查融为一体。(十)课堂小结与延伸教师带领学生回顾本课的知识主线:查找的定义与衡量标尺,顺序查找的线性效率,二分查找的对数效率及其有序前提,边界处理的重要性,以及"没有万能算法,只有匹配场景"的权衡意识。教师布置课后拓展任务,供学有余力的学生选做:其一,用递归方式改写二分查找,体会递归与循环两种表达的等价性;其二,研究一下Python中字典的查询为什么比列表快,它的内部使用了什么思想,下节课课前请一位同学用三分钟介绍。八、板书设计主板书区依次呈现:查找的定义(集合、关键值、位置);顺序查找流程要点与"n次比较"结论;二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年体育高中教资真题及答案
- 2025年上半年网络工程师真题答案解析(综合+案例)
- 2025年软考中级网络工程师真题解析卷(含答案)
- 2026年湖南省公务员考试(行政职业能力测验)冲刺模拟试题及答案
- 餐饮部长测试题及答案内容
- 年处理35万吨马铃薯深加工制薯条工程可行性研究报告
- 年产13万方装饰砌块项目可行性研究报告
- 高氯酸铵可行性研究报告
- 气流棉花回收机项目可行性研究报告
- 2026年电工校招面试题及答案
- 2026年淮北安徽相润投资控股集团有限公司公开社会招聘15名补充考试参考题库及答案详解
- 2026秋小学科学教科版六年级上册(新教材)教学计划附进度表
- 安徽合肥长丰县2026年村(社区)后备干部招聘考试【结构化面试题库+高分答题模板】(含考官评分要点)
- 中国空间技术研究院招聘笔试题库2026
- 确认参会人信息的确认函(7篇范文)
- 2026及未来5年中国工业脱水机行业发展研究报告
- 建筑施工消防应急演练方案
- 2026年成都市中考物理试卷(含答案)
- 2026上半年湖北省武汉市东湖高新区工程系列专业技术职务水平能力测试(环境保护)自测试题及答案解析
- 2026年慢阻肺基层健康管理培训考核试题及答案
- 2026年ICA对外汉语教师资格证考试笔试试题及答案
评论
0/150
提交评论