《穷举法求解问题的实践》教学设计
一、 教材分析
本节选自广东教育出版社出版的普通高中信息技术选修 1《算法与程序设
计》4.2.2 穷举法求解问题的实践。前一个课时已经初步接触了穷举法的概念,
本节课可以作为穷举法的第二节课,也可以独立作为穷举法的学习。穷举法在实
践中属于比较常见的一种算法,经典例子有百鸡百钱、鸡兔同笼等。对于教材,
我进行了一些处理再加工,使得本节课用到的三个例子由易到难,逐层深入,符
合学生的认知特点。
二、学情分析
通过高二上学期对前面的章节的学习,学生已经掌握了程序的基本语法、
程序三种基本结构、解析法,有了一定的用编程解决问题的能力,但是怎么样把
实际生活中的问题转化为计算机程序解决这一个过程对于学生而言是个难点。
三、教学目标
1.了解穷举法的基本概念和穷举法解决问题的基本过程。
2.学会用穷举法编程解决实际问题,能够根据具体问题分析建立数学模型,
编写程序求解问题
3.通过经历穷举法解决问题的过程提高学生的计算思维能力,通过案例的分
析引导学生关注信息社会责任。
四、教学重难点
教学重点 1、建立正确的数学模型,确定穷举方案。
2、根据命题确定穷举变量的取值范围,正确表达“符合条件”的
判断。
教学难点:1、合理选择穷举方案
2、算法和程序代码之间的转化
五、教学策略
根据我校学生的特点,我选择了一个尝试密码开宝箱的例子引入,首先让一
个学生自己来演示尝试暴力破解这个密码。这样,学生马上就能体会到什么叫穷
举。通过问题为刚才操作的同学尝试的过程,是不是有一个范围,引入穷举的范
围,从简单破解 2 位数,到学生无法简单破解 5 位数的密码,自然引出这样单一
的重复的过程可以由计算机来解决。了解了暴力破解的原理,我们也就了解了穷
举法的原理、特点。通过实践活动一,让每个学生全员参与运行 2 位数密码破解
和 5 位数密码破解的两个小程序,同时观察破解的时间长短和什么有关,老师再
分析核心代码,进一步了解破解的原理,消除对新知识的恐惧感。
了解原理后,我使用两个实践活动问题,让学生练习,以便理解、运用穷举
法。1、鸡兔同笼。2、整钱换零钱。通过这两个问题,由简单到复杂,学生便可
以掌握穷举法的应用。
六、课时安排:1 课时。
五、教学过程:
环节 教师活动 学生活动 设计意图
游 戏
导入
复 习
要领
1、小游戏“开宝箱”,学生尝试破解密
码,尝试密码的过程是怎么样的?引
入穷举法,
2、回顾穷举法的概念、特点、基本思
路
穷举法:又称枚举法,利用计算机高速
特点,对要解决的问题的所有可能情况,
一个不漏的进行检验,从中找到符合要
求的答案。
特点:用牺牲时间来换取答案的全面性。
基本思路:确定穷举的对象、范围、条
件。穷举可能的解,验证是否是要求的
解。
一个同学演示破解密码
开宝箱的过程,回答如
何尝试的,其他同学观
看并且思考破解密码的
基本思路。
通过简单密码
暴力破解的过
程,引入新课,
回顾穷举的特
点,消除陌生
感。
学习
新知
实践活动一:我是破解密码达人
下面请大家运行桌面上的 2 位数暴力破
解密码的程序和 5 位数密码暴力破解程
序,完成学案实践活动一的填空
请学生运行该程序,破解密码,比较破
解密码时间长短和什么有关。
老师打开源程序代码,简单分析核心代
学生操作体验、完成
填空。
小组讨论、学生回答密
码破解的实践长短和什
么有关。
理论联系实际,
知道穷举法的
特点,和如何保
码。
如何设置自己的个人账户密码呢?
教师总结:5 位密码用人工计算工作量
大,很耗时,可由计算机完成。密码破
解时间和密码位数复杂度都有关系,现
实生活中,还有另外的密码破解过程,
比如木马病毒等可以记录键盘写入的信
息,所以防止密码被盗还要养成良好的
上网习惯,不轻易在公共电脑登录自己
的账号,尽量使用手机扫码登录
穷举的范围越大,所用
时间就越久
学生观看、思考。
回答防止暴力破解的方
法。
护个人信息。
小组间协作使
得每个学生都
积极思考,参与
问题解决
实践活动二:我是数学能手
数学中的问题——鸡兔同笼,是小学奥
数的常见题型:
有若干只鸡和兔同在一个笼子里,从上
面数,有 35 个头;从下面数,有 94 只
脚。问笼中各有几只鸡和兔 ?
如何把数学方程转化为程序代码呢?
下发半成品代码,学生完善。
老师转播学生的作品,比较不同的穷举
方案的优劣和次数
一个学生板演列数学方
程。
学生回答穷举变量的确
定、穷举范围和条件。
比较穷举次数,知道程
序优化的意义
完成学案实践活动二填
空
由常见的简单
数学问题分析、
用穷举法解决、
优化的方法过
程,达到知识的
内化,为实践任
务三打下技能
基础。
梳理巩固
实践活动三:我是银行职员
现有面值为 1 元、2 元和 5 元的钞票(假
设每种钞票的数量都足够多),从这些
钞票中取出 30 张使其总面值为 100 元,
问有多少种取法?输出每种取法中各种
面值的张数。
设一元、二元、五元的张数分别是 i,j,k
张 i+k+j=30
i+2*k+5*j=100
学生思考讨论
合作完成半成品代码
三个未知数的
求解,比上一个
问题难度加大,
启发深入思考。
在课堂上,通过
师生之间,生生
之间的协作、交
流,培养学生的
合作意识、互助
如何确定穷举变量和穷举范围?
验证条件?
评价学生作品,分析穷举次数
布置学生优化自己的程序、完成学案
回答穷举次数
完善程序、优化程序、
体会不同
完成学案实践活动三填
空
精神、人际沟通
能力
理解优化的意
义
巩固重难点
归纳
小结
利用穷举法解决问题的基本思路:依据
题目的已知条件,确定答案的大致范围,
在此范围内对所有可能的情况,逐一验
证,直到全部情况验证完,若某种情况
经验符合条件则输出结果,否则继续查
找,直到全部情况查询完毕为止。
穷举关键点:
1、穷举对象、范围
2、验证条件
3、穷举的优化
学生通过讨论,尝试归
纳总结
训练学生的逻
辑思维习惯,培
养学生总结规
律的能力。
通过知识总结,
帮助学生将知
识系统化,便于
学生理解记忆
拓展
延伸
1、我们在使用银行卡在柜员机取款的时
候,为什么系统会限制输入密码的数?
2、为了防止 QQ 或者手机微信、支付宝
等密码被盗应该这么做?
3、大家自觉遵守信息社会责任。
了解穷举法在破解密码
方面的现实应用。鼓励
有兴趣的学生课余自主
学习有关密码破解的知
识,进行更深入的探索。
了解信息技术
可能带来的不
安全因素,自觉
养成健康使用
信息技术的习
惯。
教学反思:
本节课由暴力破解开宝箱密码小游戏开头,学生立即投入进来,轻松理解穷
举法的概念。本节课所用的三个实践活动例子从体验活动到简单程序的完善再到
第三个较复杂例子,层层推进,由浅入深,是本节课比较成功的地方。在教学中,
学生有思考、实践收获。
发送半成品作品让学生完善也是本节课的一个特色。学生打字速度慢,课堂时
间有限,有时如果每个程序的每一步骤都让学生完成,效率太低,而发送半成品,
可以达到事半功倍的效果。
总的来说,本次课基本完成了教学设定的目标,攻克了重难点,大部分同学
掌握了使用穷举法解决问题的思路和方法,但是,也存在一些问题,比如案例的
选取上面是不是可以更有新意一些,更贴近学生生活一些,任务的设置方面能不
能可以每个实践任务有不同的层次,让每个学生都能达到跳一跳就够到到高度。