版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高二信息技术选择性必修1《查找》教学设计【教材分析】本课选自浙教版高中信息技术选择性必修1《数据与数据结构》第二章第四节《查找》。查找是数据处理中最基础、最高频的操作之一,学生在前面的学习中已经掌握了数组、字符串、链表等基本数据结构,本课正是在这些已有知识之上,引导学生从"会用"走向"会想",理解不同查找策略背后的算法思想。教材以顺序查找为起点,引出对分查找,通过对比两种方式在有序与无序数据上的表现,让学生体会"数据组织方式决定查找效率"这一核心观念。本课既是对前面线性表知识的综合运用,又为后续学习排序、散列等内容埋下伏笔,在整册教材中起到承上启下的枢纽作用。【学情分析】授课对象为高二选课学生。经过必修模块和选择性必修1前四章的学习,学生已经能够使用Python编写基本程序,掌握列表的索引访问、循环与分支结构,具备初步的算法意识。但学生的思维仍停留在"遍历一切"的朴素层面:面对查找问题,绝大多数学生第一反应是从头到尾逐个比较。他们没有意识到数据的有序性是一种可以被利用的"资源",更缺乏用二分思想分治问题的经验。教学中需要通过真实的规模反差制造认知冲突,让学生切身感受到1100万次比较与20次比较之间的鸿沟,从而产生探究对分查找的内在动机。此外,对分查找中的边界控制(区间收缩条件、中取整方式、查找不存在的判断)是学生最易出错的环节,需要在课堂上用具体数据反复推演,做到"手算一遍、眼看一遍、手写一遍"。【教学目标】一、信息意识通过对比不同规模数据集上的查找过程,感知数据组织方式对查找效率的决定性影响,形成"先有序、再查找"的问题处理直觉。二、计算思维理解顺序查找与对分查找的算法逻辑,能用自然语言、流程图和Python代码三种方式描述对分查找;能正确确定查找区间、计算中间位置、缩小区间范围;能针对查找成功与查找失败两种情况设计完整的分支判断。三、数字化学习与创新通过修改数据规模、构造边界用例、统计比较次数等实验活动,自主验证理论知识,养成用实验数据说话的实证习惯。四、信息社会责任在讨论大规模数据检索、字典查询等应用场景时,认识高效算法对节约计算资源的意义,初步树立绿色计算、节约能耗的意识。【教学重点与难点】教学重点:对分查找的算法思想及其Python实现;顺序查找与对分查找的适用条件对比。教学难点:对分查找过程中区间的正确划分与终止条件的准确判断;查找失败情形的逻辑处理。【教学策略】本课采用"情境导入—冲突激发—合作探究—抽象建模—编程实现—对比升华"的教学主线。以"猜数字游戏"和"千万级手机号检索"两个活动为载体,让学生在体验中建构对分查找的直观认识;通过三人为一小组的"纸卡模拟查找"活动,把抽象的指针移动过程可视化;最后在编程环节采用"半成品填空—完整实现—压力测试"三级台阶,确保不同基础的学生都能到达各自的高度。【教学准备】教师准备:多媒体课件、打乱的与排序后的两套数字卡片(每组一套,每张卡片一个两位数)、含100万个随机整数的测试数据文件、半成品程序框架。学生准备:Python编程环境(IDLE或Thonny均可),复习列表索引与while循环。【教学过程】一、情境导入:两次猜数字,两种命运(约6分钟)教师在大屏幕上展示两组情境。情境一:老师心里想一个1到100之间的整数,但把这个数写在纸条上扣在讲台中央,学生只能随机猜,猜一个老师翻一次纸条核对,不对就继续猜。教师现场请两名学生猜,统计次数。一般会猜三十次以上,运气差时几乎要"翻遍"所有的数。情境二:同样是1到100之间的整数,这次翻开一本按顺序排好的百数表,学生每猜一个数,老师不仅告知对错,还告知"大了"或"小了"。教师现场演示:猜50,老师说小了,范围立刻缩到51至100;猜75,大了,缩到51至74;猜62……不出七次,必然命中。教师提问:同样的问题、同样的数据,为什么第二个游戏快得多?学生七嘴八舌,最终会归纳出两个关键词:数据有序、每次排除一半。教师板书课题"2.4查找",并写下学生的两个发现,这就是全课的思维锚点。设计意图:用低成本的游戏制造高强度的认知对比,让学生在身体体验中完成对分思想的初建。两次游戏的数字尽量相同,保证变量唯一——只有"有序"这一个条件发生了变化。二、新知探究一:顺序查找——朴素但可靠(约8分钟)教师提出问题:给定一个存储了n个元素的列表lis,查找目标值x是否存在,若存在返回其下标,不存在返回1。在数据没有任何顺序可言时,我们别无选择,只能从头走到尾。教师引导学生口述算法步骤并板书:从第一个元素开始,依次让lis[i]与x比较;若相等,返回i并结束;若走到末尾仍未找到,返回1。随后教师给出代码,与学生逐行共同阅读:```defseq_search(lis,x):foriinrange(len(lis)):iflis[i]==x:returnireturn1```教师强调三点:其一,顺序查找对数据没有任何要求,无序也能用,这是它最大的优点——通用;其二,最坏情况下要比较n次,平均要比较n÷2次;其三,它是一种"保底"算法,任何查找问题它都能给出正确答案,问题只在于效率。随即抛出数据:如果列表里有1000万个元素,运气最差时要比较多少次?学生答1000万次。教师接着说,一台普通家用电脑每秒大约能完成数千万到上亿次简单比较,看着还快,但如果这样的查找每秒钟要执行成千上万次呢?服务器的压力从何而来?学生感受到:顺序查找在规模面前是有极限的。设计意图:顺序查找不是为了"铺垫后被推翻",而是要让学生承认它的价值,建立"没有一无是处的算法,只有合不合适的场景"这一辩证认识。三、新知探究二:对分查找——利用有序性的智慧(约15分钟)(一)纸卡模拟,手脑并用每组发放一套按从小到大排好的数字卡片(共11张,如3、8、15、21、27、33、40、52、66、71、88),背面朝上但位置固定。任务:找出27这张卡,规定每次只能翻开一张,翻之前要说出为什么翻它。学生很快发现翻中间那张(第6张,40)最划算:看它与27比较,40比27大,那么40右边(更大方向)的所有卡片都可以排除,查找范围瞬间减半。教师顺势规范术语:把当前查找范围的起始位置记为low,结束位置记为high,中间位置mid通过下式确定:mid=(low+high)//2教师带领全班在黑板表格中手工推演查找27的全过程:第1次:low=0,high=10,mid=5,卡片为33,33比27大,目标在左半区,更新high=mid1=4。第2次:low=0,high=4,mid=2,卡片为15,15比27小,目标在右半区,更新low=mid+1=3。第3次:low=3,high=4,mid=3,卡片为21,21比27小,更新low=4。第4次:low=4,high=4,mid=4,卡片为27,命中。教师提问:11个数,顺序查找平均要翻几张?对分只要几张?学生算出平均约6张对4张,差距还不大。教师追问:如果是1023张呢?学生借助刚才的规律发现,每次砍掉一半,1023最多10次。此时教师在黑板上画出规模与次数的对照表:数据量n为10时,对分最多比较约4次;为1000时约10次;为100万时约20次;为10亿时约30次。教室里出现明显的惊叹声。教师点明:数据量翻十倍,比较次数只增加约3次多一点,这就是对分查找的威力。(二)查找失败的情形:多数学生栽跟头的地方教师把目标换成28,再带学生推演:第1次33大,high=4;第2次15小,low=3;第3次21小,low=4;第4次27小,low=5。此时low=5,high=4,出现了"下界越过上界"的怪现象。教师提问:这意味着什么?学生讨论后得出:连一个可能的候选位置都没有了,目标必然不存在,返回1。教师强调:循环的继续条件是low不大于high,即low≤high;一旦low>high,说明区间已经"空了",查找失败。这是本课最容易写错的地方,稍后编程时每个人都会在这里接受检验。(三)流程建模教师展示对分查找的流程图,请学生用自己的话复述每一个环节的判断依据,并明确三种走向:相等则返回,目标偏小则向左收缩,目标偏大则向右收缩。教师补充提醒:整个算法成立的大前提是数据已经按升序(或降序)排列,前提是地基,地基不牢,算法必塌。四、编程实践:三级任务,人人有得做(约14分钟)学生打开教师下发的半成品程序,按三级任务依次推进。任务一(基础):补全核心代码。程序已给出函数框架和注释,学生只需填写四处空缺:mid的计算式、a[mid]小于key时low的更新、a[mid]大于key时high的更新、循环条件。```defbin_search(a,key):low=0high=len(a)1while________:空缺1mid=________空缺2ifa[mid]==key:returnmidelifa[mid]<key:________空缺3else:________空缺4return1```教师巡视,重点观察"low=mid+1"是否被误写成"low=mid",发现即请该生用一组三个元素的数据手工走一遍,亲眼看到死循环的发生,这种自我发现比订正一百遍都有效。任务二(进阶):完整实现查找某个学号对应成绩的程序。数据集为按学号升序排列的二元组列表,要求根据学号返回成绩,查找失败输出"查无此人"。鼓励学生默写而非复制任务一的代码。任务三(挑战):对比实验。给程序嵌入计数器,统计两种查找在100万个随机整数中查找1000个指定目标的平均比较次数,并把结果打印出来。学生实测:顺序查找平均约50万次,对分约20次。屏幕上跳出来的真实数字,胜过教师千言万语的"它更高效"。教师特别提示一个工程细节:在Python中,整数除法用双斜线,取到的是向下取整的中间下标;并且变量名避免与内置函数list、id等同名。设计意图:三级任务对应"模仿—内化—迁移"三个层次,保底目标是人人完成任务一并理解每一行的含义;挑战任务则让学有余力的学生亲手验证理论,获得"我发现的"而非"被告知的"成就感。五、辨析提升:两种查找,如何选择(约5分钟)教师组织小组讨论并完成对照表,各组派代表发言,教师汇总板书:从前提条件看,顺序查找无任何要求,对分查找要求数据有序;从时间代价看,顺序查找的比较次数与数据量成正比,对分查找的比较次数随数据量增长极为缓慢;从附加成本看,若数据本身无序,使用对分查找必须先排序,排序本身有开销,因此"只查一两次"用顺序查找更划算,"长期反复查"则值得先排序再对分;从数据规模看,小规模数据两者差异微小,大规模数据对分优势巨大。教师总结提炼:查找效率的本质,是每一次比较能排除多少可能性。顺序查找一次排除一个,对分查找一次排除一半;而"每次排除一半"之所以可能,是因为有序性提供了方向信息。算法设计的智慧,往往在于把数据中隐藏的结构变成比较中的判断力。六、课堂小结与作业延伸(约2分钟)学生用一句话概括本课收获,教师随机点三名学生,最后自己归纳为两句:其一,顺序查找以不变应万变,通用但低效;其二,对分查找借力有序,折半推进,高效但有前提。课后作业分两层:必做题,手工模拟在降序数据[90,71,55,42,30,18,7]中对分查找55与查找66(不存在)的完整过程,逐步写出low、high、mid的值;选做题,查阅资料了解字典中"部首检字"与"音序检字"分别对应哪种查找思想,写一段150字左右的说明。【板书设计】主板书区:课题"2.4查找"居顶;左栏为顺序查找的算法要点与代码骨架;中栏为对分查找的推演表格(low、high、mid逐次变化)与核心公式mid=(low+high)//2;右栏为两算法对照表与结论"一次排除一个"对"一次排除一半"。【教学评价】课堂评价嵌入教学全过程:游戏环节观察学生能否主动说出"有序"这一变量;纸卡模拟环节检查各组推演表格的规范性;编程环节以三级任务的完成度作为分层评价依据;讨论环节关注学生能否说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级语文核心考点第六单元古诗词赏析填空题能力提升卷快速提分版
- 2026年湖南邵阳市中小学教师招聘考试试题题库(答案解析)
- 2026年广西壮族自治区防城港市重点学校高一入学数学分班考试试题及答案
- 辽宁省葫芦岛市重点学校初一入学语文分班考试试题及答案
- 2026年海南(专升本)语文真题及答案
- 2025长沙一中高一语文分班考试真题含答案
- 2026年广东省汕尾市重点学校高一入学数学分班考试试题及答案
- 园艺常见简单试题和答案
- 2025~2026学年重庆市秀山土家族苗族自治县多校联考七年级下学期期中历史试卷
- 儿童纲要知识问答试题与答案
- 2026秋季开明出版社五年级上册《魅力辽宁》教学工作计划
- AI搜索时代长文为什么没用:一份17.4万页面研究揭示的AEO真相
- 2026年辽宁省员额检察官遴选考试真题及答案
- 2026年淮北安徽相润投资控股集团有限公司公开社会招聘15名补充考试参考题库及答案详解
- 2026年秋大象版(新教材)小学科学四年级上册教学计划及进度表
- 2026秋小学科学教科版六年级上册(新教材)教学计划附进度表
- 专升本英语完形填空解题技巧
- 2026年秋季统计学专业开学第一课 专业素养与核心竞争力教学设计
- 中国ABS塑料行业深度调研及投资前景预测研究报告
- 中国钛合金废料行业市场发展趋势与前景展望战略研究报告
- 建筑施工消防应急演练方案
评论
0/150
提交评论