高中信息技术选修一《用穷举法解决问题的基本思路》教学设计_第1页
高中信息技术选修一《用穷举法解决问题的基本思路》教学设计_第2页
高中信息技术选修一《用穷举法解决问题的基本思路》教学设计_第3页
高中信息技术选修一《用穷举法解决问题的基本思路》教学设计_第4页
高中信息技术选修一《用穷举法解决问题的基本思路》教学设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

高中信息技术选修一《用穷举法解决问题的基本思路》教学设计一、教材分析本节课选自沪科版高中信息技术选修一《算法与程序设计》第三章第二节,是学生在已经掌握算法概念、流程图表达以及顺序、选择、循环三种基本结构之后,第一次系统学习经典算法思想。穷举法看似朴素,却是理解"用计算机的方式思考"的最佳起点:它不追求技巧上的巧妙,而是依靠计算机不知疲倦的运算能力,把所有可能逐一检验。学生在生活中早已无意识地使用过穷举策略,比如忘记密码后逐位尝试,本课的任务是把这种零散经验上升为规范的算法思想,并用程序语言将其落地。本节内容承上启下。往前看,它综合调用循环结构、条件判断、变量累计等旧知,是对前面知识的真实应用;往后看,它为后续学习递推、递归、查找与排序算法奠定"先能解决问题,再谈优化效率"的思维基调。教材通过"钥匙与锁"等生活情境引入,最终落脚到典型问题的程序实现,逻辑清晰,但例题相对单薄,需要教师补充更有张力的任务情境,让学生在"真问题"中体会穷举的价值与局限。二、学情分析本节课的授课对象为高二年级选修信息技术的学生。他们已完成Python基础语法的学习,能够独立编写包含for循环和if判断的小程序,但普遍存在三个问题:其一,会写代码不等于会设计算法,拿到问题习惯直接敲键盘,缺少"先分析、后建模"的习惯;其二,对"解空间"概念陌生,不清楚枚举的边界如何确定,常出现多循环一层或少循环一层的隐患;其三,对程序效率缺乏感知,认为只要能跑出结果就是好程序,尚未建立时间开销的初步概念。从思维发展看,高二学生正处于由经验型抽象思维向理论型抽象思维过渡的阶段,对具有挑战性的竞赛类任务兴趣浓厚,小组协作意愿强烈。教学应顺势而为,设置阶梯式任务,让不同基础的学生都能在各自水平上获得成就感。三、教学目标信息意识方面,学生能够识别生活与学习中适合用穷举策略解决的问题,主动判断"逐一尝试"是否可行,理解计算机擅长的恰恰是人力难以胜任的大规模重复检验。计算思维方面,学生能够完成"分析问题—确定解空间—设计检验条件—编写程序—验证结果"的完整流程,准确界定枚举范围与约束条件,并初步产生优化意识,比如缩小枚举区间、提前终止循环。数字化学习与创新方面,学生能够运用Python实现至少两个穷举类问题的一解或多解,能通过修改参数对比不同枚举规模的运行差异,体验"程序即实验"的学习方式。信息社会责任方面,学生认识到穷举能力一旦被滥用(如暴力破解口令)会带来安全风险,从而树立合法合规使用技术的底线意识。四、教学重点与难点教学重点是穷举法的基本思路:确定枚举对象与范围,逐一列举候选解,用条件判断筛选真解。这一思路必须让学生用自己的语言完整表述出来,而不是背诵定义。教学难点有二。第一,解空间的界定,即"枚举什么、从哪里到哪里",这是穷举程序正确性的根基,学生最容易在此出错。第二,穷举的优化意识,让学生在"能解"之后追问"解得快不快、能不能更快",这是从会写代码走向懂算法的关键一步。突破策略:以"百钱买百鸡"为主线任务,通过填表分析枚举量、对比程序运行次数,让优化意识从数据中自然生长,而非教师灌输。五、教学方法与课前准备教学方法采用情境导入、任务驱动、对比实验与小组协作相结合。整节课以"三阶任务链"推进:模仿任务保底、变式任务巩固、挑战任务拔尖。课前准备包括:机房安装Python3.x环境,预装time模块可用;教师准备导学学案、半成品代码文件、可用于演示的通讯录破解密码小动画素材;学生机房按四人一组就座,组内设操作员、记录员、汇报员、质询员四个角色。六、教学过程(一)情境导入:一把打不开的锁上课伊始,教师展示情境:班主任老师把运动会器材柜的三位数字密码忘了,只记得三个数字都在0到9之间。提问:不用任何工具,你能帮他打开吗?学生几乎脱口而出"挨个试"。追问:最多要试多少次?学生很快算出1000次。再问:如果人来试,每小时能试多少次?大概多久能试完?如果让计算机来做呢?此时教师现场运行一段三位数密码穷举的小程序,屏幕上数字飞速滚动,不到一秒便命中预设密码。学生直观感受到:同样一件事,人做是煎熬,机器做是瞬间。教师顺势点题:这种"把所有可能都列出来、一个一个去检验"的办法,就是今天要学习的穷举法,也叫枚举法。它几乎不需要聪明技巧,却是计算机最忠实、最可靠的杀手锏。设计意图:用真实的悬念激活旧经验,让学生意识到穷举不是课本里生造的概念,而是自己早已会用的策略,本课只是把它规范化、程序化。同时埋下伏笔:计算机快,是不是就可以毫无顾忌地穷举?这个疑问留到课堂尾声回收。(二)新知建构:穷举的两个关键问题教师引导学生把刚才破解密码的过程抽象为一般步骤。任何穷举问题,动手之前都要回答两个问题:第一个问题,枚举什么,范围多大?也就是确定解空间。第二个问题,什么条件算"对"?也就是确定检验条件。范围定错了,程序会漏解或多做无用功;条件写错了,答案自然不可信。结合密码例子板书框架:枚举范围为000到999共一千个候选,检验条件为"候选值等于正确密码"。提炼出穷举法的通用结构:for循环负责走范围,if判断负责验真伪,二者缺一不可。为加深理解,教师给出一个反面案例:某同学寻找"被3整除且被5整除"的两位数,把循环写成了range(10,1000),结果固然能找到正确答案,但白白多检查了九百个三位数。请学生指出问题所在,体会"范围越小越精确,盲目扩大就是浪费"。设计意图:先建立方法论框架,再进入编程,避免学生拿到题目就敲代码。反面案例制造认知冲突,让"确定枚举范围"这一重点在辨析中内化。(三)任务一:模仿实践——找出水仙花数教师发布任务一:找出所有的三位水仙花数。所谓水仙花数,是指一个三位数,其各位数字的立方和恰好等于它本身,例如153等于1的立方加5的立方加3的立方。学生先完成学案上的"两问"填答:枚举范围是多少?检验条件是什么?与同桌互查确认后,再独立编写程序。教师巡视,重点关注两类典型错误:一是range起止值写错,写成range(100,999)导致漏掉999;二是拆分各位数字时用除法取整与取余的顺序混乱。代码要点提示:个位用n对10取余得到,十位用n整除10再对10取余得到,百位用n整除100得到。检验条件为三个立方之和等于n。学生运行程序,应当得到153、370、371、407四个结果。教师随机抽取两名学生展示代码,组织全班互评:谁的边界处理更严谨?谁的变量命名更清晰?设计意图:本任务是保底任务,结构与学生刚分析的密码问题完全同构,目的是让每位学生独立完成一次从"两问"到代码的闭环,建立信心,也让教师获得面向全体的形成性评价依据。(四)任务二:变式探究——百钱买百鸡教师抛出第二个任务,这是本节课的核心:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱。用一百文钱买一百只鸡,公鸡、母鸡、小鸡各买多少只?学生分组讨论,先确定"两问"。引导得出:设公鸡x只、母鸡y只、小鸡z只。若直接对x、y、z都从0枚举到100,三重循环的枚举量是101乘101乘101,超过一百万次。教师先让学生按这个"笨办法"写出程序并运行,感受循环次数之大。接着组织小组讨论:枚举量能不能压缩?学生逐步发现三个优化点。其一,公鸡最多买20只,因为全买公鸡也只能买20只;母鸡最多买33只,因为全买母鸡最多买33只。其二,小鸡数量不必枚举,由z等于100减x再减y直接算出,三重循环降为两重。其三,小鸡数量必须能被3整除,且总价条件为15x加9y加z等于300,判断时还要保证z非负。各组修改程序后再次运行,教师引导学生对比前后两个版本的循环次数:从一百万级降到约七百次以内。使用time模块计时,让优化效果用数据说话。最终程序应输出多组可行解,如有误组只得到一组解,多为判断条件中遗漏了z对3取余的约束,组织集体排错。设计意图:这是本节课的思维高峰。同一个问题,先允许"笨解"成立,再在数据中萌发优化需求,学生由此理解优化不是教师的额外要求,而是程序自身效率提出的必然问题。"先能解,再优解"的工程观在此扎根。(五)任务三:挑战拓展——破解"数学题"密码教师给学有余力的小组发布挑战任务:一个四位数,千位与个位相同、百位与十位相同,且它恰好是一个完全平方数,求这个数。提示学生先回答"两问",再思考枚举范围能否进一步收紧,比如与其枚举所有四位数,不如枚举32到99之间的整数再平方,直接检验平方回文特征。允许学生上网查阅完全平方数的性质辅助判断,但要求核心判断逻辑自行完成。最快完成的小组上台讲解思路,重点比较"枚举四位数再验证平方性"与"枚举平方根再验证回文性"两种策略的枚举量差异。设计意图:分层任务的顶层,供能力强的学生冲刺。该题天然呈现两种解空间的选择,让学生体会到"选对枚举对象"比"写对循环"更高级,为后续更复杂的算法学习打开视野。(六)课堂小结:把经验熬成口诀教师引导学生共同完成课堂小结,用自己的话概括穷举法的要点:一想范围,二想条件,三想有没有更小的圈子。教师将其凝练为"圈定范围逐个试,条件把关辨真伪,能省则省莫蛮干",并请学生齐读一遍。回收课初的伏笔:既然计算机穷举这么厉害,能不能用它去试别人的账号密码?学生一致认识到这属于违法行为。教师强调:穷举能力是把双刃剑,正因为存在暴力破解的风险,我们的账户才需要设置强密码、启用多重验证,技术越强,越要守住法律与道德的边界。设计意图:小结不是重述知识点,而是把一节课的思维活动压缩成可迁移的方法口诀,同时完成信息社会责任的自然渗透,不生硬说教。(七)作业布置基础作业:编程找出1000以内的所有完全数(一个数等于它所有真因子之和,如6等于1加2加3),提交代码与运行截图,并在注释中写清自己确定的枚举范围与检验条件。提升作业:韩信点兵问题。一队士兵,三个三个数余二,五个五个数余三,七个七个数余二,总人数在1000到1100之间,求人数,并思考如何避免不必要的枚举。选做作业:调查自己常用App的密码策略,写一段一百字的建议,说明为什么长密码能大幅提高穷举破解的代价。七、板书设计主板书依思维线索排列。课题居中:用穷举法解决问题的基本思路。左侧板书"两问":枚举什么——解空间;什么算对——检验条件。中部板书通用结构:for走范围,if验真伪。右侧板书优化三板斧:缩小范围、减少层数、提前剪枝。副板书随课堂生成,记录学生展示的错例与妙解,体现课堂的真实生长。八、教学评价设计本课采用过程性评价与结果性评价相结合的方式。过程性评价依托学案上的"两问"填答与小组互评表,关注学生是否在编程之前停下来思考;结果性评价依据三个任务的完成质量与前两个任务的循环次数对比数据。评价量规设置三个维度:正确性,即程序能否得出全部可行解;规范性,即枚举范围与条件是否界定清晰、注释是否完整;优化性,即是否主动尝试压缩枚举量并能说明理由。每个维度设三个等级,由学生自评、小组互评与教师评价按三比三比四的权重合成,评价结果及时反馈,用于后续个别辅导。九、教学预设与应变预设一,部分学生在水仙花数任务中拆分数字受阻。应对策略是先在黑板上以153为例手算演示取余与整除的分工,再允许学生改用字符串索引方式取各位数字,认可殊途同归,保护不同思维路径。预设二,百钱买百鸡任务中部分小组跳过"笨办法"直接写优化版,导致不少学生其实没跟上。应对策略是要求所有小组必须先跑通三重循环版本并记录循环次数,再讨论优化,保证每个人都有完整的体验落差。预设三,课堂时间可能偏紧。挑战任务设为弹性环节,若时间不足则整体后移至课后拓展,保证小结与评价环节不被挤压,因为方法的

温馨提示

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

最新文档

评论

0/150

提交评论