南方版八年级上册信息技术教案第11课 百钱百鸡

文档属性

名称 南方版八年级上册信息技术教案第11课 百钱百鸡
格式 zip
文件大小 17.3KB
资源类型 教案
版本资源 南方版
科目 信息技术(信息科技)
更新时间 2019-12-30 15:01:06

图片预览

文档简介

第11课 百钱百鸡
一、教学内容分析
《百钱百鸡》是《算法与程序设计的扩展》的第三课,本节课的主要内容是掌握枚举算法,利用枚举算法解决数学中的实际问题。“分析问题”是对《张丘建算经》中的“百钱百鸡”问题进行分析。“确定算法并编写程序”模块通过分析问题之后确定问题解决的算法——枚举算法,然后依据算法利用三层循环嵌套编程解决问题。“优化程序”模块介绍了如何对上一模块中的程序进行优化,优化方法是缩小变量的范围,让程序的运行效率更高。学完本节课的内容,学生能学会枚举算法的实际意义,并可以利用枚举算法进行实际问题的解决,算法的学习可以提高学生解决问题的能力,培养学生的计算思维。
二、学习者特征分析
本课面向的是八年级的学生,八年级的学生已具备较高的抽象思维能力,思维灵敏,独立性增强,好奇心强,容易受到外界刺激而产生兴趣,依赖中求独立,愿意探索和发现新自我,且竞争心渐强。针对这一情况,本课主要讲述的是利用算法解决实际问题。这对于已经学习过程序设计的同学而言,是一个能够将Python应用到实际问题解决的技能习得机会,所以能充分激发学生的学习动机,调动学生的学习积极性,使他们能更深入地去了解Python这个强大的程序编程软件,并能够为进一步接触和了解程序中的算法铺路。
三、教法建议
本节课重点讲述了利用枚举算法解决实际问题,培养学生分析问题和利用Python编程软件来解决问题的能力。对本堂课的教学,我们有以下几点建议(仅供参考):同学们已经对Python程序设计中的基本语句、基本结构、函数和模块调用等进行系统学习,本节课的算法是学生初次接触,教师应调节教学节奏,重视分析问题,通过互动交流的方式掌握学生的学习情况。充分调动学生的学习积极性,而对于那些基础差的同学,我们要给予更多的注意和帮助;教师可以进行及时性评价,让学习效果得到及时的反馈。
四、参考教案
科目
信息技术
年级
八年级
班级
课时
1课时
课型
新授课
时间
课题
百钱百鸡——枚举算法的使用




知识能力品德
知识与技能:
1.掌握枚举算法的使用。
2.灵活运用枚举算法解决实际问题。
过程与方法:
1.通过分析问题,培养学生程序思维和计算思维。
2.通过小组合作和老师指导掌握枚举算法的使用。
情感、态度与价值观:
1.培养学生计算思维和程序思维。
2.提高学生分析问题和解决问题的能力。
3.培养并提高学生数字化创新精神。
教学
重点
难点
重点:
枚举算法的使用。
难点:
利用枚举算法解决实际问题。
板书
设计
示意
框图
第11课 百钱百鸡——枚举算法的使用
一、分析问题
二、确定算法并编写程序
三、优化程序
教 学 准 备
知识准备:问题解决步骤和循环嵌套。
硬件准备:多媒体教学工具。
软件准备:Python3.7。
教 学 过 程
教师活动
学生活动
教师意图
时间
一、问题导入
小明心想Python功能这么强大,既能进行数学运算,又能画出漂亮图案,还能制作二维码,那么它能不能帮我解决数学中的实际应用题呢?古代数学家张丘建在《张丘建算经》一书中提出了“百钱百鸡”问题:今有鸡翁一直钱五,鸡母一直钱三,鸡雏三直钱一。凡百钱买鸡百只,问鸡翁母雏各几何?
这节课,我们利用Python来解决这个数学问题。
认真听讲,积极思考。
引入课堂,让学生清楚本节课的学习任务。
2’
分析问题
首先将问题翻译成现代汉语:100元买100只鸡,公鸡5元1只,母鸡3元1只,小鸡1元3只。求公鸡、母鸡和小鸡各应买的数量。
教师提问:同学们要采取什么样的办法?
学生回答:
分析解决办法:我们可以先确定每种鸡可以买的数量范围,然后一一列举每种鸡买的数量,最后计算总价是否等于100元。
进行积极思考并勇于回答。
尽量让学生自己想出解决办法,培养其解决问题的能力。
3’
三、确定算法并编写程序
1.确定算法——枚举算法
我们根据问题中的“限定条件”将解的所有可能情况一一列举出来,再逐个验证是否与题目要求相吻合,从而求得问题的解,这种算法称之为枚举法。
教师举例帮助学生理解枚举算法。(如一把钥匙开一把锁)。虽然我们人为地列举这么多种情况是一个比较繁琐而庞大的过程,但是计算机的特点就是运算速度快,善于重复做一件事,所以“枚举”方法常常在计算机中被称为解决问题的万能钥匙。
【板书方程组】最多买100只鸡,每种鸡的数量范围是0~100,我们用3个变量来存储3种鸡的数量,可列出方程组:
【操作演示】如果一个一个列举出来会耗费大量的时间和精力,使用循环嵌套即可减少工作量,代码如下:
for a in range(101):
for b in range(101):
for c in range(101):
If a+b+c==100 and a*5+b*3+c/3==100:
Print(‘公鸡:’,a,’母鸡:’,b,’小鸡:’,c)
运行程序,观察结果。
讨论:a,b,c3个变量的范围都比较大,可以缩小范围进行优化程序吗?同学们动动小脑袋。
2.优化程序
分析优化方法:3个变量的范围都是0~100,使程序的运行速率降低。因为题中除了100只鸡的限定条件外,还有100元的限定条件。公鸡5元1只,那么最多买多少只;同理母鸡3元1只,母鸡最多买多少只;小鸡呢?
小组讨论,得出a,b,c的取值范围。
通过小组讨论得出,a,b的取值范围变小,c的取值范围可由a,b确定,接下来,同学们试着自己列出新的方程组。
(教师展示完成任务最快同学的方程组)
方程组已经确定好了,同学们打开Python,自己动手实现优化程序的编写。
优化之后的程序只需要两层循环,第一层是列举公鸡的数量,第二层是列举母鸡的数量,运行后的结果应和上一个程序结果一样。
我们发现,未优化之前的程序共枚举了100*100*100=1000000种组合,优化之后只枚举了20*33=660种组合,速度快了1500多倍,是不是很神奇。
所以说,同学们在编写代码的同时要注意程序的优化,这样可以提高程序的运行速率。
认真听讲,积极主动,用脑思考,动手操作,实践见证一些数据类型的转换。
积极讨论,主动分析问题,仔细体会其中的嵌套规则,了解优化的方法。
激发学生的好奇心,培养学生的动手操作能力。
通过帮助学生分析讨论,让学生参与到问题优化过程中来。
16’
四、体验建构
【限时大比拼】多媒体计时。
设计程序求解下面问题:用800元买90只鸡,母鸡30元1只,公鸡20元1只,小鸡5元1只。请问母鸡、公鸡、小鸡各买多少只?
同学们积极自主完成任务,注意时间限制。
巩固练习枚举法的使用,并提高学生的时间观念。
10’
五、拓展延伸
1. 要将一张100元的钞票,换成10元、5元、2元、1元构成的等值钞票,每次换成40张钞票,每种至少1张。例如,有一种换法:1张10元,5张5元,31张2元,3张1元。请问一共有多少种换法?
2.通过上网查找资料,小组讨论枚举法有什么优缺点?
按要求完成作业。
组织学生有序讨论,提高讨论效率。
6’
六、本课总结
小组抢答,教师补充。培养学生的自主梳理知识能力,肯定并评价学生本节课的成果。
认真思考,积极回答。
培养学生及时梳理知识的好习惯和结构思维的养成。
3’