内容正文:
设计简单数值数据算法
1.设计算法实现用数学公式计算
目录
01
为何学
02
学什么
03
怎么学
教材分析
学情分析
教学目标
教学重难点
教学方法
教学过程
教学反思
01
为何学
教学方法
教学重难点
教学过程
教材分析
说地位:
1
学情分析
教学目标
教学反思
2
3
说联系:
说教材处理:
本节课题选自沪教版普通高中信息技术必修一第三单元项目七《设计简单数值数据算法》第一节。课标要求:“利用程序设计语言实现简单算法,解决实际问题”
本节是对之前所学程序的综合运用,是强化知识的部分。设计并实现选择结构和循环结构的程序算法。
本节课以教材实例为主,通过Python语言编程,实现用数学公式计算圆周率,根据学生实际情况和教材知识点,设计了一些简单的程序题
教学方法
教学重难点
教学过程
教材分析
学情分析
教学目标
学生状况
授课对象为高一年级学生,具备一定的逻辑思维能力,经过之前几节课的学习对Python程序有一定的了解,但对刚接触程序设计的高一学生说,循环结构的算法设计是困难的。
为了提高教学的针对性和有效性,课前会组织学生填写“学生情况调查表”了解学生对于Python循环语句了解的基本情况。
教学反思
对策
02
学什么
教学方法
教学重难点
教学过程
教材分析
学情分析
教学目标
通过对计算圆周率问题原理的分析与算法设计,培养学生运用信息技术解决问题的感知能力
计算
思维
利用 Python 语言编程实现计算圆周率算法,培养学生运用选择和循环结构构造算法的思维能力,提升学生对程序逻辑的分析和设计能力
数字化学习与创新
借助 Python 数字化学习工具,鼓励学生自主探索和实践,提高学生在数字化环境下的自主学习能力和创新思维。
信息意识
信息社会责任
提高运用科学方法和技术工具解决问题的能力,培养学生的信息社会责任,成为一个合格的数字公民
教学方法
教学过程
教材分析
学情分析
教学目标
教学重难点
教学重点
1.采用欧拉公式设计圆周率算法
2.对while循环语句的理解
教学难点
掌握while循环语句实现算法,解决问题
突出重点
突出难点
采用讲授法讲解循环结构相关知识,并结合循环结构流程图帮助学生进一步理解
解决问题
解决问题
1.带领学生探究欧拉公式规则,并使用自然语言描述算法,最后使用流程图帮助学生理清思路
2.采用讲授法和问题驱动法学习循环结构的用法
解决问题
解决问题
03
怎么学
教学过程
教材分析
学情分析
教学目标
教学重难点
教学方法
以问题求解为导向的启发式教学法
让学生具备敏感的信息意识,能够根据解决问题的需要,主动寻求恰当的方式处理信息。
讲授法
自主探究法
教学反思
教材分析
学情分析
教学目标
教学重难点
教学方法
教学过程
导入新课
2分钟
新课讲解
15分钟
小组探究
8分钟
巩固知识
10分钟
小结及作业
5分钟
教学反思
1
3
5
2
4
设计意图:
首先复习回顾上节课的学习内容,之后视频导入,吸引学生兴趣,提出问题,和学生互动,加强学生参与感,并且强调古人千辛万苦才计算出了圆周率的范围,而我们现在就可以完成古代只有数学家才能办到的事情,调动学生学习热情,引出新课。
探求新知
课堂总结
课堂练习
课堂导入
课后作业
播放视频
回答:视频中提到的圆周率是怎么算来的?
复习回顾:程序设计的基本流程
分析问题
设计算法
编写程序
调试程序
探求新知
1. 分析问题
1.分析欧拉公式
2.讲解求解过程
这是一个累加问题:
1.设置累加器变量S的初始值为0
2.s=s+1/(1×1)
3.s=s+1/(2×2)
4.s=s+1/(3×3)
……
3.总结规则
(给出)累加的通项公式:s=s+item
欧拉公式中可重复计算的规则:
1.累加item到s,即
s=s+item;
2.构造item,即item=1/(i×i),i=i+1
设计意图:分析公式,引导学生了解这是一个累加问题,总结欧拉公式可重复计算的规则,确定变量,通过变量不断进行累加,由学生总结出累加公式,便于后面设计算法
探求新知
4.提出问题
如何用循环结构设计和实现计算圆周率的算法?
5.循环结构
要构建一个循环结构,需要解决两个问题:
一是重复要做的是什么
二是如何控制循环
如何控制循环?
循环控制变量赋初值
语句块
改变循环控制变量的值
是
否
终止条件判断
循环结构流程图
1. 分析问题
设计意图:该环节我提出问题,如何利用循环结构计算圆周率,引导学生思考构建循环结构要解决的两个问题。帮助学生形成学习动机,问题驱动学生学习循环结构的相关知识,结合循环结构流程图讲解,帮助学生理解
探求新知
6.循环语句
按照循环执行次数的确定性划分,循环可以分为确定次数的循环和不确定次数的循环
确定次数的循环
对循环次数有明确的定义。Python语言中通过for语句来实现
for <循环控制变量> in <遍历结构>:
<语句块>
1. 分析问题
设计意图:
在前两个问题的基础上引出循环语句。介绍循环结构的两种情况,for循环语句和while语句。
探求新知
不确定次数的循环
while语句来实现
while <条件>:
<语句块>
设计意图:
着重讲解while循环语句,通过简单举例,让学生读程序,说出输出结果,并讲解代码作用,深刻理解while循环语句的用法
1. 分析问题
i=1
s=0
while i<10:
s=s+i
i=i+1
print(s)
探求新知
2.设计算法
1.提出问题
如果以累加项item的值小于0.000001为循环终止条件,那么如何计算pi?
pi=?
循环控制变量赋初值
语句块
改变循环控制变量的值
是
否
终止条件判断
循环结构流程图
初值?
终止条件?
重复要做的是什么?
设计意图:提出问题,引发学生思考如何根据问题需求设计算法,提示学生关键性问题,帮助学生明确解决问题的要素,通过小组合作探究完成任务,培养在实践中解决问题的能力。
探求新知
2.自然语言描述算法
1.令s=0,i=1,item=1
2.当item大于等于0.000001时
s=s+item;
i=i+1;
item=1/(i×i);
3.
4.输出pi的值
2.设计算法
3. 流程图描述算法
s=0,i=1,item=1
s=s+item;
i=i+1;
item=1/(i×i)
是
否
item>=
0.000001
设计意图:
通过自然语言描述画出流程图,帮助学生直观展示算法设计的逻辑结构,使学生能够清晰地理解利用公式计算圆周率的步骤,同时为后续编写程序提供清晰思路。
探求新知
3.拓展延伸
强调
数值数据分为整型(int)、浮点型(float)、字符型(string)和布尔型。
解释
设计意图:
接下来编程中会运用到数值数据的相关知识,帮助学生学习,为接下编写程序做准备
探求新知
4.编写程序
设计意图:
以填空的形式让学生完成代码填写,运行程序,帮助学生掌握如何使用Python语言运用欧拉公式实现循环算法,体验完整的程序设计过程。
解释
演示程序
条件
累乘
初值
探求新知
4.调试运行
设计意图:
通过展示程序可能出现的错误,引导学生学会调试程序,分析错误原因并解决问题。帮助学生理解程序调试的重要性。
展示出错
探求新知
5.总结过程
设计意图:
该环节帮助学生梳理设计算法利用公式计算圆周率的整个流程,加深印象,同时让学生对程序设计的基本流程有更深刻的认识
分析问题
设计算法
编写程序
运行调试
找规律:
数据累加
确定循环结构
画流程图
数值数据及运算
编写程序
查看出错的原因
巩固练习 猜价格
设计意图:
布置练习任务,猜物品价格。帮助学生分析问题,确定循环结构。通过小组合作的方法,来检验学生对本节课while循环的掌握情况,起到巩固知识的目的。
让用户反复猜价格
任务思考
需要用到循环结构
猜对价格要结束循环
循环结构是基于条件的
while循环语句
“猜对了”跳出循环
设计意图:
同样是以填空的方式完成程序,并强调注意事项。
price=5600
guess = int(input("请输入猜的价格:"))
while guess!=price :
print("猜错了!加油!")
guess = int(input("请输入猜的价格:"))
print("猜对了!你真棒!")
巩固练习:猜价格——探究1:“猜对了”跳出循环
填空
注意
1.冒号
2.缩进
3.避免死循环
设计意图:
提出要求,控制猜测次数为3次的话,如何修改程序。引导学生思考如何在原有程序基础上添加限制条件(如控制猜测次数),进一步提升学生对循环条件控制的理解和应用能力。通过改进程序,帮助学生巩固循环语句的使用方法,培养他们的逻辑思维和编程能力。
控制次数为3次的猜价游戏
巩固练习:猜价格——探究2:控制次数的猜价游戏
price=5600
guess = int(input("请输入猜的价格:"))
while guess!=price :
print("猜错了!加油!")
guess = int(input("请输入猜的价格:"))
print("猜对了!你真棒!")
设计意图:
以填空的形式启发学生,完成条件填写和次数变量的控制
控制次数为3次的猜价游戏
巩固练习:猜价格——探究2:控制次数的猜价游戏
price=5600
guess= int(input("请输入猜的价格:"))
times=1
while ______________:
____________
print(“猜错了!加油!”)
guess = int(input("请输入猜的价格:"))
print("猜对了!你真棒!")
实践探究:将横线处的代码补充完整。
1.次数 2.and
3.改变循环条件
设计意图:
学生运行程序查看结果,发现如果3次都猜错,输出结果有问题
控制次数为3次的猜价游戏
巩固练习:猜价格——探究2:控制次数的猜价游戏
price=5600
guess= int(input("请输入猜的价格:"))
times=1
while guess!=price and times<3:
times=times+1
print(“猜错了!加油!”)
guess = int(input("请输入猜的价格:"))
print("猜对了!你真棒!")
运行程序
查看结果
设计意图:
小组讨论如何修改程序代码,避免上面的错误,优化程序
price=5600
guess= int(input("请输入猜的价格:"))
times=1
while guess!=price and times<3:
times=times+1
print("猜错了!加油!")
guess = int(input("请输入猜的价格:")) print("猜对了!你真棒!")
if guess==price:
print("猜对了!你真棒!")
else:
print("游戏结束")
巩固练习:猜价格——探究2:控制次数的猜价游戏
设计意图:
电脑提示,价格是偏大还是偏小
巩固练习:猜价格——探究3:人机互动 完善程序
price=5600
guess= int(input("请输入猜的价格:"))
times=1
while guess!=price and times<3:
times=times+1
____________ :
print("猜高了!")
_____:
print("猜低了!")
guess = int(input("请输入猜的价格:"))
if guess==price:
print("恭喜,猜对了!")
else:
print("很遗憾,游戏结束")
设计意图:
展示小组完成的程序并运行,其他同学进行评价
巩固练习:猜价格——探究3:人机互动 完善程序
设计意图:
由学生回顾总结本节课的知识点,教师进行补充,帮助学生梳理内容。
课堂总结
不确定次数的循环
while语句来实现
while <条件>:
<语句块>
数据类型int float;数值运算+ - * / ** //
探求新知
6.课后作业
设计意图:作业一是巩固对本节课知识的理解,作业二是培养学生自主学习的习惯
实践作业:
完成任务单中的编程题
思考性作业:
预习下一课时用随机投点法求圆周率的算法
1
2
板书设计
§7.1设计算法实现用数学公式计算
1.分析问题
数据累加
2.设计算法
设置循环条件
3.编写程序
数据类型int float;数值运算+ - * / ** //
while 循环
while <条件>:
<语句块>
4.调试运行
主板书
辅板书
用公式法计算圆周率
欧拉公式:
04
教学反思
1
2
优点
01
紧扣本节重难点,采用了基于问题的学习,引出知识点,知识点衔接连贯自然,与数学进行跨学科教学,激发学生兴趣。
1
2
缺点
02
知识难度大,学生做题、编程的时间不足
教学反思
感谢各位评委老师的聆听
$$