浙教版(2023)六年级上册信息科技10.“韩信点兵”枚举法的实现 教学设计+课件+素材

资源下载
  1. 二一教育资源

浙教版(2023)六年级上册信息科技10.“韩信点兵”枚举法的实现 教学设计+课件+素材

资源简介

第十课“韩信点兵”枚举法的实现
一、学习内容分析
本课是浙江省小学信息技术六年级上册第二单元《算法的效率》第3课。教材包括二块内容:枚举算法解决问题的一般过程,枚举法的程序实现。解决同一个问题可能会有很多种算法,不同算法的效率也有可能是不一样的,在利用算法解决问题时,要根据问题求解的需求设计出合适的算法。本章内容就是为了让学生明白不同算法效率不同。本单元以“韩信点兵”为例,让学生用枚举法、筛选法、同余法实现,并且能依照算法的描述和问题实例评估算法的效率。
二、学情分析
本课学习对象为六年级的学生,在前面的9节课程里,学生已经掌握了算法解决问题的一般过程,并能用python对算法进行执行、验证。他们了解算法的基本特征以及基本结构。同时,他们善于合作,乐于表达,初步具备用枚举算法解决问题的能,但独立算法设计以及用python的实现算法还是有一定难度。
学习目标
教学目标 核心素养指向
1.理解枚举算法的思想,掌握枚举法解决问题的一般过程。 2.通过使用枚举算法解决“韩信点兵”问题,掌握枚举算法的程序实现。 【信息意识】 在完成任务过程中,有意识地寻求恰当的算法解决问题,了解枚举算法的优势和局限。 【计算思维】 理解流程图的方式,描述求解简单问题的算法,并对算法的正确性与执行效率进行讨论和辨析。
四、教学重难点
教学重点:用枚举法实现“韩信点兵”的算法。
教学难点:利用循环结构和分支结构对“韩信点兵”进行python的算法实现。
通过小组合作、实践探究、分析归纳辅以教师指导等多种方式逐一突破。
五、课前准备
学习资源:教学课件,教学视频
六、学习过程
(一)视频引入 激发兴趣
学习内容与活动 设计意图
视频引入,揭示课题 观看视频,了解“韩信点兵”的典故。 韩信将1500名将士与楚王大将李锋交战双方大战一场,战后,死伤四五百人。韩信于是命令士兵3人一排,结果多出2名;接着,他又命令士兵5人一排,结果多出3名;再命令士兵7人一排,结果又多出2名。韩信马上向将士们宣布:我军共有1073名勇士。 提问:假如是你来“点兵”,你会采用哪种算法? 以“韩信点兵”的典故引入,引导学生思考为什么能这么快计算出结果,思考用什么算法解决问题。
(二)抽象与建立模型
学习内容与活动 设计意图
小组讨论,抽象“韩信点兵”关键要素: 总人数:1500 死伤人数:四五百人 三人一排余二人 五人一排余三人 七人一排余2人 归纳:韩信点兵问题,实际就是在1000~1100范围内,找出满足条件的数。 学习活动一:用表示士兵可能的人数,列出所有满足条件的数。 (3)由抽象出的表格,进一步抽象规则。 当X=1000时,条件“x除以3余2、x除以5余3、x除以7余2 “是否同时满足? 当X=1001时,条件“x除以3余2、x除以5余3、x除以7余2 “是否同时满足? …… 当X=1100时,条件“x除以3余2、x除以5余3、x除以7余2” 是否同时满足? (4)想一想:“韩信点兵”问题适合用什么算法解决? 引导学生对枚举法的范围、顺序、条件进行抽象建模。 枚举范围:1000-1100 枚举顺序:从1000到1100 枚举条件:同时满足x除以3余2、x除以5余3、x除以7余2三个条件。 抽象韩信点兵关键要素,以及分析典故里的变量,让学生在后面能比较轻松建立模型。 利用关键要素,建立出枚举法的模型。
(三)探究过程,算法设计
学习内容与活动 设计意图
1.用枚举法,分析“韩信点兵”的算法结构 用条件循环实现:X依次取值1000-1100。 用分支结构判断:“条件x除以3余2、x除以5余3、x除以7余2”是否同时满足。 2.学习活动二:小组讨论,并尝试完善算法流程图。 用枚举法分析“韩信点兵”的算法结构,并尝试进行算法设计。完整逻辑链,突破本课的难点。
(四)算法的程序实现
学习内容与活动 设计意图
学习小锦囊,将以下循环条件和分支判断的步骤转化为python语句。 2.学习活动三:尝试编写程序,运行并调试程序。 强调: 求余数的运算符为“%”,例如x%y,表示x除以y的余数多少。 迁移应用:如何用枚举法解决修改后的“韩信点兵”?修改程序,并运行。 用两个步骤,分层次尝试算法的实现,根据流程图,一一对应写出python程序。 通过练习,巩固枚举法的代码实现。
(五)梳理小结,拓展应用
学习内容与活动 设计意图
请学生说一说用枚举算法解决问题的一般过程。 (2)教师总结本课知识点 梳理总结本节课的知识点,明确收获,找出不足,引导学生课后再进一步学习。
板书设计:
《韩信点兵枚举法的实现》(共15张PPT)
“韩信点兵”枚举算法的实现
《信息科技》六年级上册
故事导入
问题描述:
韩信将1500名将士与楚王大将李锋交战双方大战一场,战后,死伤四五百人。韩信让士兵3人一排,结果多出2名;他让士兵5人一排,结果多出3名;让士兵7人一排,结果又多出2名。
假如你来点兵,你将采用何种算法?
问题描述:
请你圈出问题中的关键要素。
韩信点兵
韩信将1500名将士与楚王大将李锋交战双方大战一场,战后,死伤四五百人。韩信让士兵3人一排,结果多出2名;他让士兵5人一排,结果多出3名;让士兵7人一排,结果又多出2名。
韩信是怎么算出来的呢?
抽象与建模:
韩信点兵问题,实际就是在1000~1100范围内,找出满足条件的数。
抽象与建模
除3 除5 除7 是否满足条件
余 余 余
用 表示士兵可能的人数,列出所有满足条件的数.
学习活动一:
在1000~1100范围内
变量X
抽象与建模
当X=1000时,条件“x除以3余2、x除以5余3、x除以7余2 “是否同时满足?
当X=1001时,条件“x除以3余2、x除以5余3、x除以7余2 “是否同时满足?
……
当X=1100时,条件“x除以3余2、x除以5余3、x除以7余2” 是否同时满足?
抽象与建模
想一想:“韩信点兵”问题适合用什么算法解决?
枚举算法
枚举范围:
枚举条件:
1000 <= X <= 1100
x除以3余2、x除以5余3、x除以7余2 三个条件。
同时满足
循环结构
分支结构
枚举顺序:
1000
1100
算法设计
开始
X←1000
x<1100
x除以3余2,且x除以5余3,且x除以7余2?
x←x+1
输出X的值
结束




小组讨论,并尝试完善右边的算法流程图。
学习活动二:
算法程序实现
开始
X←1000
x<1100
x除以3余2,且x除以5余3,且x除以7余2?
x←x+1
输出X的值
结束




while x<1101 :
if x%3==2 and x%5==3 and x%7==2:
print(“剩余的士兵数为:”,X)
小锦囊:
要判断多个条件是否同时满足,需要用“and”逻辑运算符。
算法的程序实现
x=1000
while x < 1101 :
if x%3==2 and x %5==3 and x%7==2:
print( “剩余的士兵数为:”, x )
x=x+1
尝试编写以下程序,运行并调试程序。
学习活动三:
迁移应用。
假如:韩信将1500名将士与楚王大将李锋交战双方大战一场,战后,死伤一二百人。韩信于是命令士兵3人一排,结果多出1名;接着,他又命令士兵5人一排,结果多出4名;再命令士兵7人一排,结果又多出3名。问剩下的士兵一共多少人?
如何修改程序?
python语言编写的程序:
x=1300
while x < 1401 :
if x%3==1 and x %5==4 and x%7==3 :
print( “剩余的士兵数为:”, x )
x=x+1
课堂总结
1、枚举法解决问题的一般过程
确定范围、确定顺序、确定满足正确解的条件
2、用枚举法解决“韩信点兵”问题的程序实现。
下课啦!
请同学们关闭电脑,椅子归位,排队有秩序离开微机室。

展开更多......

收起↑

资源列表