高中一年级信息技术《搜索算法-枚举与查找的实现》教学设计_第1页
高中一年级信息技术《搜索算法-枚举与查找的实现》教学设计_第2页
高中一年级信息技术《搜索算法-枚举与查找的实现》教学设计_第3页
高中一年级信息技术《搜索算法-枚举与查找的实现》教学设计_第4页
高中一年级信息技术《搜索算法-枚举与查找的实现》教学设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

高中一年级信息技术《搜索算法——枚举与查找的实现》教学设计一、教材与学情分析本课选自浙江教育出版社高中信息技术必修一《数据与计算》第二章第一节"搜索算法"。搜索是解决计算问题的基础策略,教材在本章中借"从数据中寻找目标"这一问题情境,引出顺序查找、枚举搜索与折半查找三种典型方法,为后续第三章的算法综合应用与选修模块的数据分析打下基础。教材编排遵循"问题—分析—算法—实现—优化"的路线,强调用计算机的方式思考问题。授课对象为高一年级学生。学生已经掌握Python基本语法、列表结构、循环与分支语句,能够编写几十行规模的程序,但对"算法"的理解仍停留在"步骤罗列"层面,缺乏用时间代价去衡量解法优劣的意识。班级内学生差异明显:约三分之一的学生在初中接触过信息学竞赛启蒙内容,编程熟练;另有少部分学生动手速度慢,需要脚手架支持。本课的关键矛盾在于:学生会写"能跑通"的代码,却说不清"为什么这样写更好"。因此教学重点落在搜索策略的构建与效率比较上,教学难点是对折半查找前提条件的理解以及边界条件的正确处理。二、教学目标通过"在无序数据中找人"与"在有序数据中猜数"两个真实任务,学生能够说出顺序查找、枚举搜索、折半查找各自的适用场景,能在Python环境中独立实现三种算法,并能用数据规模与比较次数两个维度解释算法效率差异,体会"有序结构能换取查找效率"这一计算思维的核心观念。在面对"一百万条记录中查找一个目标"的想象性任务时,学生能作出合理的策略选择,并能从最坏情况与平均情况的角度评估自己方案的可行性,初步建立时间代价的直觉。在小组协作与互评环节,学生能用他人听得懂的语言说明自己的算法思路,养成先想清楚再动键盘的习惯。三、教学重点与难点教学重点:三种搜索算法的思想、程序实现与效率比较。教学难点:折半查找中查找区间边界的精确控制;对"数据无序只能逐个检查"这一结论的理解与接受。四、教学准备机房环境安装Python解释器,投影展示教师机画面;为每个小组印制一份"班级名单数据集"(五十名学生姓名与学号),有序、无序两个版本;准备字符串表、纸牌道具一副(去除大小王,正面朝下定序排列);学习单每生一份,包含任务记录区、代码补全区与效率统计表;在机房共享盘中放置半成品程序文件,供代码补全任务使用。五、教学过程(一)情境导入:找人的麻烦(约6分钟)上课伊始,教师不做任何铺垫,直接在投影上打出一份打乱顺序的班级名单(五十个名字,姓名与学号混排),发问:教务处的老师请我们查"×××同学"在不在名单里,如果他在,学号是多少?请一位学生上台,用肉眼在屏幕上找。学生从上到下一行行扫视,大约半分钟后给出答案。教师追问:刚才是怎么找的?学生回答"一行一行看"。教师再问:如果名单有一千个人、十万个人呢?如果问的那个人根本不在名单里,你要看到什么时候才能确定?学生意识到:必须看到最后,才能说"不存在"。教师顺势点题:这种"从头看到尾"的办法,今天我们要给它一个正式的名字——顺序查找,也叫枚举搜索。今天要解决的问题就是:怎样让计算机帮我们搜?搜得多了,怎样搜得更快?设计意图:用真实的、和学生自己有关的数据制造认知冲突,让"查找需要代价"这件事成为学生的亲身体验,而非教师灌输的概念。无序名单的设置是伏笔,为后续"有序"的对比埋下引线。(二)任务一:枚举搜索的程序实现(约12分钟)教师给出任务:把刚才肉眼做的事交给Python做。投影上呈现数据结构说明——名单以Python列表存储,每个元素是"姓名—学号"的字符串;要求编写函数,输入目标姓名,返回该生的学号,找不到则返回提示信息。学生先将思路在学习单上写成三步以内的自然语言,再动手编码。教师巡视,重点关注两类典型问题:一类是循环结束后忘记处理"没找到"的情况;另一类是找到后忘记中断循环,继续做无意义的比较。待多数学生完成后,教师选取两份有代表性的代码投屏对比。一份在找到目标后用break跳出,另一份不带break。教师提问:两者结果一样吗?如果目标在名单第一位,两段程序各要做多少次比较?如果目标根本不在名单里呢?学生在回答中自发得出"提前停止可以省事,但最坏情况下必须全部查完"的结论。教师板书归纳:枚举搜索,逐一检查,无序数据也能用;最坏情况下比较次数等于数据总数n。教师请学生在学习单的效率统计表中记录:数据量50时,本组查找的比较次数(可多次实验取观察值)。设计意图:先想后写,保护思考的完整性。通过两段等价代码的对比,引出"比较次数"这个可测量的指标,为后面的效率比较建立统一标尺,避免"快一点、慢一点"的模糊表达。(三)任务二:换一副牌——折半查找的发现(约15分钟)教师拿出一副除去大小王的扑克牌,洗乱后正面朝下发在讲台上,请一名学生找"红桃K"。学生翻了十几张仍未找到,教师和全班一起数:他翻了多少张。随后教师把同一副牌按花色和点数规则排序,再次正面朝下排好,请另一名学生再找"红桃K"。这一次学生不再从头翻,而是翻开中间一张,发现比目标小,就从右半边继续翻,四五次便成功。教师将两组翻牌次数并排写在黑板上,差距一目了然。教师追问:第二次他凭什么能跳过那么多牌不看?学生回答:因为排好序了,翻一张就能排除一半。教师给出总结:这就是折半查找——数据有序时,每次比较都能砍掉当前范围内的一半对象。接着进入程序实现环节。教师布置任务:给定一个已按升序排列的一千个整数列表,编写函数查找目标值,返回其下标,找不到返回特定值。为降低难点坡度,共享盘中提供半成品代码,其中查找区间下界、上界的初始化和判断框架已给出,学生需要补全"中间位置的计算、三种比较结果的分支、区间的收缩"三处关键代码。巡视中教师重点盯住边界问题:区间收缩时写的是"下界等于中间位置"还是"下界等于中间位置加一"?循环条件是"小于"还是"小于等于"?这两处是折半查找最容易埋错的地方。教师将典型的错误版本投屏,用一组具体的小数据(七个数)在投影上手工走查,让全班亲眼看到下标陷入死循环的瞬间。错误被数据当场"抓获",比任何口头强调都有效。学生调试完成后,教师组织效率验证:在一千个有序整数中查找目标,用计数变量统计比较次数。学生普遍发现结果不超过十次。教师引导与任务一对比:无序列表逐个查,最坏要一千次;有序列表折半查,最坏约十次。教师请学生猜:一百万条数据,折半查找最坏大约多少次?多数学生能顺着"每次砍半"说出二十次左右,教室里出现明显的惊讶声。教师点破规律:数据量每翻一倍,折半查找只多比较一次。这就是"有序"送给我们的大礼,但这份礼物有前提——数据必须先排好序。设计意图:纸牌游戏把抽象的区间减半变成肢体动作,学生的策略转变是自发发生的。半成品代码降低语法负担,把课堂时间聚焦在区间控制这个真正的难点上。错误代码的公开走查把"边界条件"从教师的叮嘱变成学生的目击事件。(四)小组协作:效率的实证分析(约8分钟)四人小组合作完成效率统计实验。小组内分工明确:一名记录员、一名操作员、两名核查员。任务是在教师提供的数据文件中,分别用枚举搜索与折半查找,对一百、一万、十万三个规模的有序数据集查找同一个不存在的目标(取最坏情况),统计比较次数,填写学习单上的对数形态统计表——表中已预印坐标格和提示曲线。各组数据基本吻合后,教师引导观察:枚举的曲线随数据量直线上升,折半的曲线几乎躺平。教师提问:如果业务系统每天要从海量用户中检索记录,你愿意用哪种方法?有没有不能用折半查找的情形?学生总结:数据无序且不值得排序时,只能用枚举;数据会被反复查找时,先排序再折半查找是划算的。教师补充追问:排序本身也要花时间,这笔账怎么算?学生讨论后达成朴素共识:查找次数多时,先排序的成本值得付出。这一认识触及了工程取舍的真实逻辑。设计意图:让学生亲手产生数据、亲手画图,把"效率差异"从结论变成证据。追问"排序的代价"是为了防止学生形成"折半永远更好"的机械认识,培养权衡意识。(五)课堂小结与分层作业(约4分钟)教师请三名学生用一句话各总结一种搜索方法的核心思想,教师只补充不重复:枚举搜索——逐个检查,无条件可用;顺序查找的结果处理要覆盖"找不到"的分支;折半查找——以有序为前提,每次排除一半,效率随数据量增长极缓。最后教师用一句话收口:把数据组织好,问题就解决了一半——这是计算机科学里最朴素也最重要的经验之一。分层作业布置如下。基础层:完善课堂上的枚举搜索程序,使其能返回目标出现的所有位置(应对名单中重名的情况)。提高层:改写折半查找函数,统计每次查找的比较次数并输出,用程序验证"一百万最坏约二十次"的猜想。拓展层:调研词典App或图书馆检索系统可能采用的查找与索引策略,写一段一百五十字左右的分析,下节课选读。六、板书设计主板书分左右两栏。左栏:搜索算法——枚举搜索(逐个检查,无序可用,最坏n次);折半查找(有序前提,每次减半,增长极缓)。右栏:两组实物与程序活动产生的对比数据(翻牌次数、三个规模下的比较次数)、折半查找区间示意(下界、中间、上界的动态变化箭头)。中间的"有序"二字用彩色粉笔圈出,作为全课的眼睛。七、教学评价设计过程性评价依托学习单完成:任务一的思路表述是否先成文后编码,反映思考习惯;任务二补全代码的正确率与调试痕迹,反映对边界条件的掌握;小组实验的数据记录是否完整、表格填写是否规范,反映实证态度。教师巡视时对典型错误做即时口头反馈,对学习单上的亮点做法在课末点名展示。表现性评价在作业与下节课前测中延续:作业是否主动验证自己的猜想(如提高层要求输出比较次数),是区分"完成任务"与"理解原理"的关键观察点。评价不以代码行数论高下,而以"能用数据说话"为标准,与本课的能力目标保持一致。八、教学反思(预设)本课的两个情境——肉眼找人和翻牌猜数——成本低廉但驱动力强,需要教师严格控制前

温馨提示

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

最新文档

评论

0/150

提交评论