高一信息技术必修1第三单元“非数值计算-算法思想与程序实现”教学设计_第1页
高一信息技术必修1第三单元“非数值计算-算法思想与程序实现”教学设计_第2页
高一信息技术必修1第三单元“非数值计算-算法思想与程序实现”教学设计_第3页
高一信息技术必修1第三单元“非数值计算-算法思想与程序实现”教学设计_第4页
高一信息技术必修1第三单元“非数值计算-算法思想与程序实现”教学设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

高一信息技术必修1第三单元“非数值计算——算法思想与程序实现”教学设计一、设计依据与教学定位本课选自教科版(2019)高中信息技术必修1《数据与计算》第三单元第三节“非数值计算”。经过前两节的学习,学生已经掌握了用编程求解数值问题的基本路径,能够设计算法、画出流程图、用Python实现累加、判断、循环等典型数值计算。本节则将学生的视野从“算数”引向“算计”,即计算机处理排序、查找、路径规划、递归求解等非数值问题的独特优势,帮助学生建立“计算思维不只属于数学”这一核心认识。新课标在必修1中明确提出,学生应能依据解决问题的需要提炼数据特征,设计合理的算法并编程实现,体验用计算思维解决问题的基本过程。非数值计算正是计算思维落地的绝佳载体:二分查找体现“折半缩小问题规模”的分治思想,递归体现“大问题化小问题、同构解决”的结构意识,排序体现“通过规则比较达成全局有序”的策略意识。这些内容既是必修1的知识结点,也是选择性必修模块的先导。基于以上分析,本课以“电话号码反查”这一真实生活任务为主线,串联二分查找与递归两大核心内容,设计为两课时连排,共90分钟。第一课时聚焦二分查找及其程序实现,第二课时聚焦递归思想与汉诺塔问题的算法分析,最后用“算法效率”这把尺子收束全课,引导学生比较顺序查找与二分查找的效率差异,理解“好算法”的价值判断标准。二、学情分析授课对象为高一年级学生。知识储备方面,学生已掌握Python的顺序、分支、循环三种基本结构,能熟练使用列表、range函数与while循环;数学上已学习指数、对数的初步知识,具备理解“二分后规模减半、约log₂n次比较”的运算基础。能力基础方面,学生习惯“一步一步算”的线性思维,对“每次把问题砍一半”的跳跃式缩小范围缺乏经验,容易在二分查找的边界条件(left与right的更新为中点还是中点±1)上出错。心理特征方面,高一学生对竞赛类、游戏类活动参与热情高,对抽象算法的耐受度有限,需要借助实物演示、猜数游戏等具身活动降低认知门槛。据此,本课的教学难点定位于“二分查找边界条件的程序表达”与“递归调用栈的形象理解”,教学重点定位于“二分查找与递归思想的算法设计及其程序实现”。突破策略是:用真人演示和卡片道具建立直观表象,用表格追踪法追踪循环变量的变化,用“谁叫谁、什么时候回头”的语言引导学生描绘递归调用过程,再通过改写错误代码的诊断任务实现精加工。三、教学目标信息意识:学生能从“在一万条记录中找一条信息”的真实情境出发,主动意识到数据量大时算法选择的决定性作用,形成“先想算法、再写代码”的问题解决习惯。计算思维:学生能描述二分查找“取中、比较、缩小一半”的核心步骤,能分析其时间复杂度约为log₂n并与顺序查找的n次比较作对比;能识别递归的三要素(递归出口、递归体、参数传递),能用递归方式描述汉诺塔问题。数字化学习与创新:学生能独立编写并调试二分查找程序,能通过改写教师提供的缺陷代码深化对边界条件的理解,能借助在线评测或课堂小程序验证自己程序的正确性与效率。信息社会责任:学生通过讨论“快递分拣、导航、检索系统背后都是算法”认识到算法对社会运转的支撑作用,同时初步意识到算法设计优劣直接关系资源消耗,萌生绿色计算、高效计算的朴素观念。四、教学重难点教学重点:二分查找的算法思想、流程图与Python实现;递归思想的理解与简单程序编写。教学难点:二分查找循环边界条件的准确表达;递归调用过程中“层层深入、逐层返回”机制的理解。五、教学方法与资源准备教学方法:情境任务驱动法、实物演示法、程序填空与改错法、小组协作探究法。资源准备:多媒体课件一套;39张写有递增数字的卡片若干组;学件程序(含顺序查找、二分查找可运行代码与两处隐藏的边界错误);学习任务单(含变量追踪表);教室网络环境与学生机Python运行环境;计时器小程序。六、教学过程(第一课时:二分查找)(一)情境导入:一万元的“找人”悬赏(8分钟)上课伊始,教师展示模拟情境:“某快递公司数据库中存有十万名收件人按号码有序排列的记录,客服要手工查找某位客户,假设看一条记录需要1秒,最坏情况要查多久?”学生很快算出约27.8小时。教师追问:“如果误删了一条投诉证据,公司愿意悬赏一万元请人5分钟内找出来,你做得到吗?”学生愕然。教师随即演示:请一名学生上台,将39张递增数字卡片反扣一排,心里记一个目标数,教师每次只看正中间一张,便可在5次以内命中目标。学生在惊叹中产生强烈的认知冲突:同样是查找,为什么方法不同,差距如此悬殊?教师板书课题“非数值计算——二分查找”,并点明:今天的问题不再是“算什么”,而是“怎么找得快”。设计意图:用悬赏任务制造紧迫感,用真人演示建立“折半”直观表象,让算法思想先于代码出现。(二)活动一:提炼二分查找的算法步骤(12分钟)学生以四人小组为单位,人手一套39张卡片,扮演“查找者”,轮流确定目标数并查找,其他组员监督记录“每次缩小后剩余的卡片数量”。教师在黑板上共同填写规模变化:39→19→9→4→2→1,引导学生发现规律——每比较一次,问题规模约缩小一半。随后小组讨论“要让计算机做这件事,需要告诉它哪几个关键变量”。师生共同归纳:左边界left、右边界right、中间位置mid,以及循环的条件与边界的更新规则。学生尝试用自己的话写出“取中—比较—砍半”的自然语言步骤,教师投影两份学生作品逐句评析,特别追问“查到之后还要不要继续循环”“目标不存在时循环怎么停”,为程序实现埋下伏笔。设计意图:把算法抽象建立在具身操作之上,用变量命名的讨论完成从“人会做”到“机器会做”的第一次跨越。(三)活动二:流程图到程序的转化(15分钟)每名学生领取任务单,补全二分查找流程图中的三个缺失判断框:循环条件(left<=right)、目标与中值的比较分支(t==a[mid]/t<a[mid])、边界更新(right=mid−1或left=mid+1)。教师巡视时重点关注学生是否写成“right=mid”,并暂不纠正。流程图经同桌互查确认后,学生打开学件程序,将流程图翻译为Python代码。教师提供脚手架:核心循环与变量初始化已给出,学生需完成判断与边界更新部分。多数学生在10分钟内完成“能跑起来”的版本,课堂抽样检测其查找结果。设计意图:用“先图后码”降低编程门槛,把思维资源留给算法逻辑而非语法细节;刻意不提前纠正边界错误,为下一环节诊断教学保留素材。(四)活动三:边界条件的诊断与精加工(15分钟)教师公布测试数据:在列表[1,3,5,7,9,11,13]中查找13。约三分之一学生的程序陷入死循环或漏查。教师不直接讲答案,而是发下“变量追踪表”,要求错位小组逐次循环记录left、right、mid、a[mid]的值。学生在填表中自行发现:当目标在右半边最后一个位置时,left与mid重合后不再变化,循环无法终止——根源是right=mid没有真正意义上的“缩小”。教师顺势引出二分查找的“铁律”:边界更新必须排除已确认不是目标的mid位置,即left=mid+1与right=mid−1。学生修复代码后,教师再追加一组“陷阱测试”:查找目标恰好是首元素、末元素、不存在的元素,三组数据全部通过方为合格。各组用计时器对比顺序查找与二分查找在10万条数据中的耗时(约十几秒对零点零几秒),直观感受量级的差异,并计算log₂(100000)≈17,验证理论比较次数与实际吻合。设计意图:以真实错误为教学资源,用表格追踪实现思维可视化,用实验数据完成对“算法效率”的实证认知,突破本课第一处难点。(五)小结与衔接(5分钟)师生共同梳理板书:二分查找的前提是“数据有序”,核心动作是“取中—比较—砍半”,时间复杂度O(log₂n)。教师抛出预告问题:“折半其实蕴含了一种更一般的思想——大问题切成同类小问题。如果切下去之后,小问题的解决方式和原问题一模一样,会发生什么?”留下悬念进入第二课时。七、教学过程(第二课时:递归思想初探)(一)复习回扣与问题抛出(8分钟)学生上机快速运行上节课的二分查找程序完成签到任务。教师提问:“二分查找每砍一半后,面对的新问题和原问题有什么共同之处?”引导学生说出“结构相同、规模更小”。教师引出递归的定义:一个过程在求解中直接或间接调用自身。随后展示生活类比:电影院里问“我是第几排”,你问前一排,前一排问他前一排……一直问到第一排,答案再一排一排传回来。学生用一句话描述这个链条,体会“递下去”与“归回来”两个阶段。(二)活动四:递归三要素的建构(12分钟)教师板书阶乘问题n!,请学生用已学循环法口算5!,再写出递推关系n!=n×(n−1)!。师生共同归纳递归三要素:递归出口(问题小到可以直接回答,如0!=1)、递归体(大问题归结为同类型小问题,如n×factorial(n−1))、参数传递(每次调用时问题规模必须向出口收敛,即n不断减1)。学生在学件程序中补全factorial函数的递归体,运行时教师要求加入打印语句观察调用顺序:factorial(4)依次打印4、3、2、1,随后依次返回1、2、6、24。学生在输出中亲眼看到“层层深入、逐层返回”的全过程,教师用图示把这次执行画成调用栈:每次调用压栈,出口触达后逐次弹栈返回。随后安排对比实验:计算factorial(1000),程序报“递归深度超限”,教师借此说明递归并非万能,深度与栈空间是重要的工程约束。(三)活动五:汉诺塔问题的小组攻坚(18分钟)教师发放汉诺塔教具(或打开动画课件),提出任务:把3个盘子从A柱经B柱移到C柱,大盘不能压小盘。学生动手操作,很快完成7步移动。教师加码到4盘、5盘,学生发现步数骤增、手工推演难以为继,产生寻求算法的需求。小组讨论“如何把移动n个盘子拆解为移动n−1个盘子”。教师用板书逐步引导:把上面n−1个盘子视为一个“整体”,则问题变成三步:把n−1个盘子从A移到B(借助C)、把最大的盘子从A移到C、把n−1个盘子从B移到C(借助A)。第一步与第三步本质上又是汉诺塔问题——递归结构浮出水面。学生据此写出递归伪代码,再翻译为Python函数hanoi(n,a,b,c),运行后程序自动输出每一步移动指令,与教具操作逐一核对。教师最后引导学生归纳总步数:f(n)=2f(n−1)+1,出口f(1)=1,推得f(n)=2ⁿ−1。当n=64时约为1.8×10¹⁹步——“宇宙年龄的耗时”,学生在震撼中体会增长函数的威力,也再次认识到算法选择之于计算资源的决定意义。(四)课堂总结与升华(5分钟)师生回顾两课时的两条主线:二分查找教会我们“每次砍掉一半”的效率观,递归教会我们“化整为零、同构求解”的结构观。教师指出:快递分拣、航班调度、搜索引擎背后都是这些朴素的非数值算法在运转,而每一个高效算法背后,都是对问题结构的深刻洞察。布置分层作业:基础层为改写二分查找使其返回查找次数;提高层为用递归求解斐波那契数列前n项并比较两种写法的效率;拓展层为查阅分治思想在归并排序中的应用,下节课分享。八、板书设计主板书分两栏。左栏“二分查找”:前提(有序)→三步(取中mid、比较、更新left=mid+1或right=mid−1)→边界铁律→O(log₂n);下面附39→19→9→4→2→1的规模链。右栏“递归”:三要素(出口、递归体、参数收敛)→调用过程(递下去、归回来)→汉诺塔递推式f(n)=2f(n−1)+1,f(1)=1,f(n)=2ⁿ−1。中间以问题链贯通:“找得快”与“想得妙”都是好算法。九、教学评价设计课堂即时评价依托三处证据:流程图补全的正确率反映算法理解,边界诊断中变量追踪表的填写质量反映思维过程,汉诺塔程序的运行结果反映递归掌握程度。教师对每个小组给出“算法通过、需调试、需帮扶”三级标记,个别跟踪。课后评价结合分层作业正确率与拓展作业的分享质量,重点关注学生是否能用“比较次数”“递归出口”等专业语言解释自己的程序,而非仅复制代码。单元末进行小测,设置一道“在旋转有序数

温馨提示

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

评论

0/150

提交评论