高中信息技术选择性必修1教学设计:数据的查找第一课时-基于真实情境的顺序查找与二分查找_第1页
高中信息技术选择性必修1教学设计:数据的查找第一课时-基于真实情境的顺序查找与二分查找_第2页
高中信息技术选择性必修1教学设计:数据的查找第一课时-基于真实情境的顺序查找与二分查找_第3页
高中信息技术选择性必修1教学设计:数据的查找第一课时-基于真实情境的顺序查找与二分查找_第4页
高中信息技术选择性必修1教学设计:数据的查找第一课时-基于真实情境的顺序查找与二分查找_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

高中信息技术选择性必修1教学设计:数据的查找第一课时——基于真实情境的顺序查找与二分查找一、教材与课标定位与分析本课题选自教科版(2019)高中信息技术选择性必修1《数据与数据结构》第三章第三节"数据的查找"第一课时。查找运算是数据处理中频率最高的操作之一,是学生从"会存数据"走向"会取数据"的关键一跃,对理解后续排序、哈希、树与图的算法具有奠基性作用。课程标准对本模块的要求落在"理解常见数据结构与算法的基本思想,体会算法效率对问题解决的影响"这一层面,因此本课不能停留在代码抄写层面,而必须让学生经历"建构模型—设计算法—编写程序—验证优化"的完整计算思维链条。本课时的核心内容聚焦两点:一是顺序查找(线性查找)的思想、实现与适用范围;二是二分查找(折半查找)的前提条件、实现过程及其效率优势。二分查找背后的"减半思想"本质上是分治策略的初级形态,是本课的思维制高点,也是评价学生是否真正达成"算法思想理解"的试金石。二、学情诊断教学对象为高二年级学生。学生已在必修模块中学习了Python基础语法、列表结构、循环与分支语句,能够编写简单的遍历程序,这为查找算法的实现铺平了道路。但前期教学调研暴露出三个典型问题。第一,多数学生会把"查找"等同于Python内置的in运算或index方法,认为"一行代码搞定",缺乏对底层机制的追问,知其然而不知其所以然。第二,学生对"数据量"n的增长缺乏体感,十个人的名单和十万条学籍记录在他们脑中没有差别,因而难以理解算法效率为何重要。第三,二分查找的区间收缩涉及左边界、右边界和中间位置的精细计算,学生极易陷入边界错误死循环,这是历届教学的共性难点,必须通过可视化操作先行内化,再进入编码。基于上述诊断,本课的教学策略确定为:以真实语境制造认知冲突,以纸牌游戏建立减半直觉,以无代码的"查字典"活动完成算法过程的具身化,最后落回程序实现与效率对比。三、教学目标与核心素养落点知识与技能层面:学生能够用自己的语言描述顺序查找与二分查找的执行过程,能说明二分查找必须以有序数据为前提;能独立完成两种算法的Python程序编写与调试;能在大数据量背景下估算两种算法的大致比较次数。过程与方法层面:经历"有限次数猜数—归纳减半策略—抽象为算法—编写程序—对比验证"的探究路径,掌握"小规模手工模拟、大规模程序验证"这一科学探究的一般方法,形成对时间复杂度的初步感性地认识,为后续学习大O记号埋下伏笔。情感态度与价值层面:体会"思想比工具更深"的技术学习观,认识到算法的选择必须结合数据的条件与问题的规模,养成追问底层机制的信息学科学习品格。课标中强调的"用计算思维分析问题"一素养,在本课的具体落点就是:面对一个查找任务,先问数据是否有序、再问规模多大,然后选择恰当的算法,而不是条件反射式地写循环。教学重点:顺序查找与二分查找的算法思想及其程序实现。教学难点:二分查找的区间边界控制与循环终止条件;理解"有序"这一前提条件的必要性。四、课前准备与学习资源教师准备:一套13张的A到K纸牌作为教具;一个含一万条模拟学号与姓名的CSV数据文件,另备一份乱序版;机房计算机安装Python3.x及以上,预装time模块(标准库自带)用于计时;学习任务单与分层练习作业单提前发至班级学习平台。学生准备:预习教材对应章节,完成导学单上的两个小问题:回忆列表遍历的方法;想一想你在词典里如何快速找到某个字,画出步骤。五、教学过程设计说明:本课为40分钟课时,若学校实行40+40连堂课安排,可将第六环节延伸至第二课时的前段开展实现性练习。(一)情境导入:十万条记录中的一条(约6分钟)上课伊始,教师在屏幕上呈现一个真实改编的任务:某校教务系统要核实一条学籍信息,系统中存储了约三十万条记录,如何找到目标?教师先抛出一个看似无害的问题:"用你上学期学的循环写一个查找吧,速度慢吗?"遂后演示两段程序:对1万条数据的顺序查找几乎瞬间完成;对500万条数据的随机目标查找,肉眼可感地等待。教室出现短暂骚动,学生第一次直观感到"循环遍历也有干不动的时候"。教师顺势追问三个问题:查找成本和什么有关?如果数据量再乘以一百会怎样?有没有聪明的办法?学生沿着追问开始意识到:问题不在循环写得对不对,而在算法本身。这个认知冲突就是本课的学习引擎。此环节的设计意图在于以可感知的"慢"击穿"够用就行"的错觉,使"算法效率"从一个抽象名词变成学生亲历的体验,这也是课标所强调的"真实问题、真实工具、真实评价"的落地。(二)探究活动一:查字典的游戏——顺序查找的规范化(约7分钟)教师请学生回忆:一本没按任何顺序贴标签的卡片堆里找一张卡片,你唯一的选择是什么?学生自然说出"一张一张看"。教师给出顺序查找的规范表述:从数据的首元素开始,逐个与目标值比较,若相等则返回位置,若遍历完仍未找到,则报告查找失败。教师板书并带领学生完成算法的自然语言表达到流程要素的三层抽象:提取重复行为(比较);确定循环终点(找到或穷尽);确定返回值属性(位置或失败标志)。随后请一名学生在学习单上口算:表长为n时,最好情况下比较几次?最坏情况下比较几次?平均大约几次?学生通过举小例子归纳出:最好1次,最坏n次,平均约n/2次。教师小结时点出一个关键句:顺序查找是"无条件可靠"的算法——它不要求数据有序,适用一切线性存储的数据,但代价是要按规模线性付出比较成本。这为后续二分查找的优势建立参照系。(三)探究活动二:猜数游戏与纸牌魔术——二分查找的诞生(约14分钟)教师请一名学生上台,心里默想一个1到100之间的整数,教师现场猜。第一次教师故意从1开始逐个猜,猜了二十多次引出笑声;第二次改用对半策略:50?小了。75?大了。62?……七次以内必中。教师追问:为什么第二种方法快?两种猜法的差别在哪?学生脱口而出:第一种一个一个来,第二种"一半一半砍"。教师板书"减半"二字,追问:砍半的底气是什么?学生思考后答:因为数是按大小排的,说大了,比它大的全部出局。教师一句点题:"有序,是减半策略的入场券。"随后分组进行纸牌操作活动。每组一叠按A到K排好序的13张牌,教师报出目标牌"9",学生只用"翻中间一张、根据比较结果排除一半"的方式操作,小组记录每一步翻看的位置与剩余的区间,画出操作轨迹图。教师巡视时重点观察两件事:学生是否正确地用区间两端确定中点;排除时是否发生"把目标所在半区也扔掉"的错误。对出错小组不直接纠正,而是提示:"把你刚扔掉的半区数一遍,目标是不是在里面?"让学生自己发现有界区间的逻辑错误。操作结束后,教师引导学生把纸牌经验翻译为算法语言:设左边界left、右边界right,计算中间位置mid=(left+right)÷2取整;比较mid位置的值与目标值:相等则命中;目标更小则把right移到mid-1;目标更大则把left移到mid+1;当left超过right时,说明查遍所有可能的区间,查找失败。教师强调一个易错细节——更新边界时为什么用mid±1而不是mid,因为mid位置已经比较过且确认不是目标,把它留在区间里会造成死循环。配合一张区间收缩的动态图示,学生会心点头。随后教师带学生估算效率:13张牌,每次减半,最多几次能锁定?学生用2的幂推算:2的3次方是8,2的4次方是16,所以最多4次。教师推广:n个数,最多大约为log₂n向上取整次。教师给出对照数字:100万条数据,顺序查找平均50万次比较,二分查找约20次。教室里再次响起惊讶声。此刻学生对"算法效率是指数级的差距"已有刻骨感受。这一环节是本课思维密度最高的部分。设计遵循"具身操作—语言描述—符号抽象—规模推演"的进阶阶梯:先让学生用手翻转纸牌形成减半的肌肉记忆,再把手的动作翻译为边界变量的更新规则,最后用对数估算把经验上升为定量认识。课标所倡导的"算法思想的可视化与具身化学习",在这里落到了纸面上。(四)程序实现:从自然语言到可运行的代码(约10分钟)教师带领学生"结对式编程"。教师口述思路,学生在键盘中实现;教师故意保留两处"陷阱式留白"请学生填补:一是while循环的条件写成left<right还是left<=right;二是mid计算的取整方式。学生用小组内的纸牌区间数据手工追踪一次代码执行轨迹,自行发现:当left小于right时若直接跳出会漏检最后那个元素,因此循环条件必须是left<=right。参考实现的核心逻辑如下所示(教学板书中以可运行的极简版本呈现):定义函数,输入有序列表与目标值,初始化left为0、right为len减1;轮次循环中计算mid为(left+right)整除2,三分支处理比较结果,命中返回mid;循环结束返回1表示未找到。学生输入7个有序整数验证正确性,再故意"删去一个隔断"让程序查找一个不存在的值,观察函数是否体面地返回失败而不是死循环,借此检验程序的健壮性。接着进行效率实测:教师提供一万条有序数据文件,学生分别调用顺序查找与二分查找各查找1000个随机目标,用time模块计时,记录、对比、取整汇报。多数组测得二分查找快两个数量级以上。教师让学生把结果写进学习单的结论栏:"当数据量达到一定规模时,算法的差异可以碾压硬件的差异。"(五)思辨深化:二分查找是万能的吗(约3分钟)教师用一道辨析题收束认知:教务处拿到了一份按报到时间排序的名单,现在要按姓名查找某个学生,能否二分?学生辨析后得出:不可,因为数据对查找键无序;要么先排序(但排序本身有成本,要算总账),要么退回顺序查找。教师进一步抛出开放问题:如果这类按姓名查找的请求一天发生上万次该怎么办?有学生隐约说出"排一次序用很多次"的思路,教师评价这是典型的权衡思想,并预告后续课程将引入索引结构解决这类问题,为二叉树、哈希等知识埋下钩子。这一环节的核心价值是防止学生把新工具绝对化——技术教育要避免"锤子效应",即学到了二分查找就处处用二分。算法的适用边界与前提条件,恰恰是计算思维的精细之处。六、作业设计方案作业按"基础巩固—能力提升—实践拓展"三级架构设计,兼顾全体达标与学有余力学生的深度发展,全部作业通过班级学习平台提交,代码类提交源文件,思考类提交文字或图示。第一层为基础巩固题(全体必做,预计用时15分钟)。第1题:给出有序序列3、7、11、15、19、23、27、31,用图示画出二分查找目标值15的完整过程,标出每次的left、right、mid三个变量值。此题检验学生对区间收缩逻辑的内化程度。第2题:阅读一段含两处错误的二分查找代码(循环条件写为left<right,边界更新写成right=mid),找出错误并说明会造成的后果。此题对应课标"调试与排错"的能力要求,指向对边界控制的深度理解。第3题:填空量化题——对一份1000万条的有序数据,二分查找最多比较约几次?要求学生写出推导过程。第二层为能力提升题(全体选做,建议完成,预计20分钟)。第4题:编程实践——编写一个"词典查询"程序,要求先从文本文件读入按拼音排序的500个词语,实现二分查找,并统计每次查找的比较次数输出。学生需提交代码与两次运行截图。第5题:变式探究——生活中电话簿按姓名排序,若只知道某人的地址想找他的电话,还能否用减半策略?写出你的分析,不少于150字,鼓励画示意图。第三层为实践拓展题(面向学有余力者,开放题)。第6题:小课题——设计实验验证"二分查找效率随数据规模的增长规律"。给定分别含一千、一万、十万、一百万条数据的样本文件(教师平台提供),要求:编写程序用两种算法分别查找并计时;绘制规模与耗时的曲线图;用文字解释两条曲线形态的差异,尝试用自己的话描述"线性增长"与"对数增长"的区别。该课题允许两人合作,成果以简短报告形式呈现,优秀成果将在班级文化节"算法之美"专栏展示。作业评价采用"过程性+结果性"双轨制:过程性看轨迹图、推导过程与调试记录,不以是否最终跑通为唯一标准;结果性看代码正确性与报告质量。教师对全部作业在48小时内反馈,典型错误汇总成"错题急救卡"在下一课时用3分钟讲评。七、教学评价设计课堂评价嵌入教学全程:纸牌操作环节采用走动式观察与提问即时评价;编程环节以小组互评方式检查他组代码能否通过三组测试用例(含"目标不存在"用例);课堂结尾用一张"出门卡"收集每人一句话——写出"二分查找能够提速的根本原因"。素养达成观测点:能否明确说出二分查找以有序为前提;能否独立推导最坏比较次数;能否在面对新查找任务时主动询问"数据是否有序、规模多大"。以上三点构成本课对学生计算思维素养形成与否的核心判据。八、教学反思(课后补记框架)本设计以认知冲突开场、以具身操

温馨提示

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

评论

0/150

提交评论