高中一年级信息技术用穷举法求解问题的实践教学设计_第1页
高中一年级信息技术用穷举法求解问题的实践教学设计_第2页
高中一年级信息技术用穷举法求解问题的实践教学设计_第3页
高中一年级信息技术用穷举法求解问题的实践教学设计_第4页
高中一年级信息技术用穷举法求解问题的实践教学设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

高中一年级信息技术用穷举法求解问题的实践教学设计一、教学设计理念与依据本课选自广东教育出版社高中信息技术选修模块《算法与程序设计》第四章第二节“用穷举法求解问题的实践”。本设计以《普通高中信息技术课程标准(2017年版)》提出的计算思维培养目标为统领,将“用程序实现枚举、验证、循环优化”作为核心任务线,让学生在真实问题情境中经历“分析问题—设计枚举方案—编写程序—调试验证—优化算法”的完整思维过程。本设计不追求知识点的覆盖广度,而追求学生在一次次“试与调”中形成对穷举法的结构化认识:穷举不是笨拙,而是一种有边界、有秩序、可优化的系统性策略。这一认识是后续学习递归、递推、分治等算法思想的重要地基。二、教材分析本节内容安排在学生已经掌握Python(或教材配套语言)的基本语法、顺序结构、选择结构和循环结构之后。教材以“百钱买百鸡”“水仙花数”“密码尝试”等经典问题为载体,呈现穷举法的基本形态:对候选解逐一列举、逐一检验。教材的编排暗含三条线索。第一条是方法线:确定枚举变量及其取值范围,构造检验条件,用循环嵌套组织枚举过程。第二条是效率线:枚举范围可以收缩,检验可以提前剪枝,循环次数直接影响程序运行时间。第三条是思维线:穷举法把“想办法”转化为“遍历全部可能”,体现了用算力换思维的计算机解决问题范式。三条线索中,方法线是学生能够模仿落地的表层目标,效率线与思维线才是本课应当着力挖掘的深层价值。教学设计须避免把课上成“抄例题、改数字”的操作练习,要把每一次代码改动背后的理由交给学生去说。三、学情分析授课对象为高中一年级学生,已完成计算基础和程序设计初步的学习,能够独立书写包含for循环与if判断的简单程序,具备上机操作能力。学生面临的真实困难有三处。第一,枚举变量的确定缺乏章法,面对“几个未知数就嵌套几层循环”的机械认识,遇到隐含约束(如“总数为100”可以减少一个未知量)时不会主动降维。第二,对循环次数与运行时间的量级关系缺乏直觉,写出三重循环而看不到其代价。第三,程序正确性验证意识薄弱,往往以“跑出一个结果”为终点,不会构造测试数据反向校验。此外,学生之间差异明显:部分学生在课外接触过编程,能轻松完成基础任务;另一部分学生上节课的循环知识刚刚稳固。设计须设置分层任务,让两类学生都有真实的思维增量。四、教学目标知识与技能目标:理解穷举法的基本思想,能说清枚举对象、枚举范围、检验条件三要素;能用双重及以内循环结构编写程序解决百钱买百鸡、水仙花数等典型枚举问题;能通过缩小枚举范围、减少嵌套层次等手段改造程序,并用计时方式感知优化效果。过程与方法目标:经历“纸面枚举小数据—归纳规则—编码实现—数据验证—效率对比”的完整过程,初步形成把问题规模、循环次数、运行时间联系起来分析的习惯。情感态度与价值观目标:体会计算机解决问题“形式上笨拙、策略上可靠”的独特气质,认识算法优化中蕴藏的数学智慧,养成用数据说话、用测试验真的行事习惯。五、教学重点与难点教学重点:穷举法三要素的确定方法与程序实现。教学难点:枚举范围的收缩与循环结构的降维;检验条件的逻辑表达与边界处理。难点突破策略:以“买鸡问题变量该设几个”的辩论制造认知冲突,以可视化的循环计数输出让学生“看见”枚举量级的差距,以错误程序找病源的方式训练边界意识。六、教学方法与资源准备采用问题驱动、任务驱动的教学方式,辅以对比演示、小组协作与即时评测。教学资源:带Python3运行环境的机房、广播教学软件、导学任务单、计时对比小脚本、预置错误程序包。七、教学过程(一)情境导入:国王的难题教学环节约5分钟。教师投影问题:某国金库门锁由四位数字密码控制,守库官只记得“四个数字各不相同,且乘积为2064,各位之和为17”。请在十分钟内找出全部可能的密码。学生本能地开始心算试数,很快发现手工尝试杂乱无章、极易遗漏。教师板书两名学生的尝试过程,请全班评价:方法没错,但无法保证不重不漏。教师追问:如果有一台机器替你每秒试一百万次,你的任务会变成什么?学生经过短暂讨论得出共识——我只需告诉机器三件事:去哪些数里找、按什么顺序找、什么条件算对。教师顺势板书课题“用穷举法求解问题的实践”,并明确本课三个关键词:枚举范围、检验条件、枚举效率。设计意图:让学生在切身的“人工试不动”体验中产生对机器枚举的真实需求,而不是被教师宣布一种方法。三关键词直接锚定本课知识骨架。(二)探究活动一:纸面枚举,提炼三要素教学环节约8分钟。教师将问题简化为小规模版本:找两位数,个位与十位之和为9,要求不重不漏地列出全部。学生独立完成,教师巡视并收集两份典型作品:一份按“十位从1递增”有序列举,一份随手乱写。投影对比,请全班回答:两份答案哪个可信?为什么?学生指出有序列举可用“数有十种可能”来校验完整性,乱序无法自证。教师引导学生把刚才的操作翻译成程序语言:十位依次取1到9,个位依次取0到9,依次检查两者之和是否等于9。板书三要素并配示意:枚举变量1:十位,范围1—9枚举变量2:个位,范围0—9检验条件:十位+个位=9教师强调:程序中的每一个for循环对应一个枚举变量及其范围,每一个if对应一个检验条件。三要素在纸上想清楚了,代码只是翻译。设计意图:用极小数据量隔离语法干扰,把思维重心压在“范围从哪来、条件从哪来”上;用“能否自证完整”的标准培养学生对枚举完备性的敏感。(三)探究活动二:初战百钱买百鸡教学环节约15分钟,为本课核心环节之一。教师发布任务A:公鸡5元一只,母鸡3元一只,小鸡1元三只,用100元买100只鸡,问公鸡、母鸡、小鸡各多少只。要求独立写出程序,输出全部方案。先给三分钟安静思考,要求学生在任务单上先填三要素再碰键盘。教师巡视中重点关注三件事:变量设了几个;范围写的什么;条件写了几条。学生完成后,教师广播展示两份有代表性的程序。程序甲(三重循环):forgonginrange(0,101):formuinrange(0,101):forjiinrange(0,101):ifgong+mu+ji==100andgong5+mu3+ji/3==100:print(gong,mu,ji)程序乙(双重循环+推算):forgonginrange(0,21):formuinrange(0,34):ji=100−gong−muifgong5+mu3+ji/3==100:print(gong,mu,ji)两份程序都输出相同的四组解。教师不急于评判优劣,而是提出串讲问题链。问题一:两个程序的循环合计执行多少次?学生计算:甲约101×101×101,超过一百万次;乙约21×34,仅七百多次。学生在教室里发出惊叹。问题二:乙为什么敢把ji直接算出来?因为鸡的总数恒为100,三个变量中只有两个自由。教师总结:约束条件不仅用于检验,还能用于消元,把枚举维度从三维降到二维。问题三:乙中公鸡范围为什么写到20?学生推理:公鸡5元一只,钱只有100元,公鸡不可能超过20只。教师板书结论:范围要从问题自身的约束里抠出来,而不是从题目数字的表面抄下来。问题四:甲程序还能再救吗?学生讨论得出:可以,即使三层结构不变,范围也完全可以收紧,效率立降百万分之一量级。学生当场修改自己的程序,教师巡视,对仍有困难的学生给予分层提示卡:第一层提示“再数一数变量”;第二层提示“小鸡只数可以由公式算出”。完成后用教师提供的计时脚本对比新旧程序运行耗时,实测数据投屏展示。设计意图:把“正确却低效”与“正确且高效”两份学生原生程序并置,制造高质量的对比素材;吨量级差异由学生亲手算出、亲眼测出,比任何说教都有力。分层提示卡保障基线达成,不让一名学生空手而归。(四)探究活动三:暗花三数,边界之战教学环节约10分钟。教师发布任务B:求所有水仙花数,即各位立方和等于自身的三位数。例如153=1³+5³+3³。要求学生独立完成,但本次教师先在屏幕上预埋一段“成品程序”供全体观察:forninrange(100,1000):a=n//100b=n//10%10c=n%10ifa3+b3+c3==n:print(n)教师发问:这个程序你挑得出毛病吗?学生审视后普遍认为“看不出问题”。教师改问:如果原题说“找出至少两位数中的水仙花数”,这段代码还够用吗?又将范围改问:为什么起点是100而不是99或101?学生讨论后明确:范围的上下界是三位数定义的一部分,写100而非99是对定义边界的忠实翻译;若题目条件变化,范围必须跟着变化。教师点拨:在穷举法中,边界错一位,答案错一片。随后学生自行运行程序,得到153、370、371、407四个结果。教师布置验证动作:任选一个结果,心算验算一遍;再想一个办法让程序自证完整——提示:把范围扩成10000,看会不会蹦出四位“水仙花”的干扰。学有余力的学生接受挑战任务:只用一个循环与一次条件判断完成任务B,与本写法比一比谁的判断次数更少。设计意图:趁热打铁迁移三要素,把训练重心从“会写”转向“会质疑”——会质疑范围、会质疑完整、会用数据自证。这是计算思维区别于操作技能的分界线。(五)探究活动四:回攻开篇,破解密码教学环节约10分钟。回到课首的密码问题:四位数字各位不同、乘积2064、数字之和17。学生以两人小组为单位完成程序并提交结果。教师巡视中重点观察小组对三重关系的处理:四个枚举循环如何避免数字重复(加互不相等的条件或用组合思想);乘积条件如何在循环中被尽早利用(如部分小组发现一旦部分乘积超过2064可以不再深试)。小组展示环节,教师引导全班归纳穷举法程序的可复用骨架:第一层:为每个未知量设置枚举循环;第二层:在循环内外补充范围约束做“瘦身”;第三层:用if完成题设全部条件的检验;第四层:对结果输出并辅以人工或程序的二次验证。教师请一名曾对计算机辅助解决问题持保留态度的学生谈感受,学生回答中“把题目条件老实写完,答案自己就出来了”一语被教师郑重写下,作为穷举法精神的学生版表达。设计意图:首尾呼应,用同一道“人脑做不动”的题检测当堂所学;提炼的可复用骨架是本课留给学生的迁移工具;由学生亲口说出方法本质,比教师小结更有说服力。(六)课堂总结与作业布置教学环节约2分钟。师生共同回顾:穷举法的三要素是枚举对象、枚举范围、检验条件;穷举的艺术在于诚实与节制——诚实地写下全部条件,节制地收窄枚举疆域;循环次数可以从百万级压到百级,靠的是对问题约束的挖掘。分层作业。基础作业:修改今天三个程序中的任意两个,压缩其循环规模,并用计时数据说明改进幅度。提升作业:某三位数满足“各位数字之和为13,且该数是11的倍数”,用穷举法求解并论证答案完备。拓展作业:调研“暴力破解”在现实安全领域的含义,写二百字思考:为什么现代密码要同时依靠长度与复杂度抵御穷举。八、板书设计课题居中。左侧纵列三要素:枚举对象、枚举范围、检验条件。中部写百钱买百鸡两版本循环次数对比(约一百万对约七百)。右侧写方法骨架四条与一句学生原话。全课检索时学生一扫即得结构与结论。九、教学评价设计采用过程性评价与结果性评价结合。过程性记录三个观察点:任务前是否能先写三要素再编码;面对慢程序是否主动调范围而非换电脑;得出结果后是否自发验证。结果性评价依托分层作业,基础层看正确与规范,提升层看论证完备性,拓展层看概念迁移到真实安全情境的质量。课堂即时评测配以可自评的交通灯卡:绿——我能独立确定三要素并解释范围的由来;黄——我能依提示完成;红——三要素中至少一个我说不清。教师据此在下一课准备差异化补偿材料。十、教学反思预设本课成败系于两点。其一,对比程序必须来自学生真实产出而非教

温馨提示

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

评论

0/150

提交评论