14.《算法的验证》教学设计教学设计 课件 学习单

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

14.《算法的验证》教学设计教学设计 课件 学习单

资源简介

《算法的验证》教学设计
一、教学内容分析
《算法验证》是浙教版五年级上册第三单元“用算法解决问题”第五模块内容,在前四课已经介绍了设计算法的一般过程,学生能够将问题分解、抽象、建模并设计算法。本课主要讲解算法验证的三种方式,第一部分安排“根据算法特征验证”,旨在让学生通过对流程图的观察,回忆算法特征、变量值的变化过程,熟练运用流程图描述算法,确保算法的描述是有效的。第二部分“用数据验证算法”,根据算法能够通过部分测试数据,让学生感受算法验证的作用和重要性,能将具体数据代入流程图并逐步计算得到结果。第三部分“用计算机程序验证算法”,让学生通过修改、编写程序等方式体验程序验证算法的优势。
二、学习对象分析
从问题的分解、抽象、算法的设计到验证,是一个将形式化的描述方式转变为可以实现的结果。从学生的认知发展角度来看,需要将推演结果转变为编程的预测结果,然后执行程序验证结果。虽然五年级学生已经有图形化编程基础,了解了变量、三种程序结构等,但是在掌握python程序语言上还是存在一定困难,因此本节课尝试搭建支架,为学生提供半成品程序,引导学生修改参数、记录结果、观察数据、发现规律。
三、教学目标
1.具有主动跟踪和分析量值变化的意识。
2.掌握用算法特征、数据验证及程序验证算法的方法;通过算法验证,初步形成模拟、验证解决问题的思维;认识到解决同一问题有不同算法,算法效率和算法本身、问题规模都有关系。
3.能用数字化流程图描述累加求和的算法。
4.认识到不同算法验证方式的价值和局限性,将其灵活迁移运用到学习和生活中。。
教学重点:掌握用算法特征、数据验证及程序验证算法的方法。
教学难点:掌握用数据验证算法的方法。
四、方法策略
本课以“数学王子解题”为教学情境,主要采用任务驱动教学法,辅以小组合作探究,以及学生的自主学习逐步展开。以“用计算机解决问题的一般过程”为线索,引导学生分析问题、设计算法、验证算法。通过确定“求和式子规律”为关键问题,切割、分解、细化、完善整个流程图,抽象出顺序、分支结构,并蕴含分支嵌套概念,从而形成问题分解的思维,渗透“分而治之”的思想。
五、教学流程
(一)情景导入
教学内容与活动 设计意图
1.设疑提问 德国“数学王子”高斯三岁时便能纠正父亲的借债账目。十岁时,他的老师布纳特出了一道算数题:求1到100所有整数的和,老师刚叙述完,高斯就算出了正确答案。同学们知道高斯是怎么算的吗?你们会怎么计算?能设计算法并验证吗? 回答:5050,首尾配对…… 2.板书标题:算法验证 数学中的求和运算是学生熟悉的问题,不会给学生造成太大认知障碍。另一方面,布纳特老师的数学难题也能激发学生的兴趣
(二)任务驱动,分析问题
教学内容与活动 设计意图
1.感知算法 探究:尝试先设计“求1+2+3+4+5和”的算法。在用i表示某个数,sum表示和的情况下,观察相邻累加求和的过程,你有什么发现? 总结:数每次增加1,和是在上一步的基础上增加新的数,可以表示为sum=sum+i,i=i+1 2.用算法特征验证算法 完型:在希沃课件中补全“求1+2+3+4+5和”算法流程图 提问:观察流程图,一共有几步?步骤有限吗?每一步可以确定执行吗?有输出吗?输出符合规定吗? 总结:用算法特征验证算法可以从算法有限性、确定性和有输出三个角度实施。 拓展:算一算高斯的方法和累加求和两种算法的步骤。 3.用数据验证算法 代数:修改流程图中条件为“i<=6”,逐步写出每一步结果。 进入时i的值 每一步结果i=1sum=0+1=1i=i+1=2i=2
总结:用数据验证算法需要代入具体数据,逐步分析计算结果,从而验证算法是否存在问题。 提问:如果验证的数据很大(比如要求1+2+……+1000)怎么办? 4.程序验证 人工测试便捷且不要求掌握程序设计语言,但是当数据规模变大时就显得比较麻烦,这时可以采用机器测试。 调参:调整桌面上“求和.py”程序中的条件终值为8、100、1000,记录程序结果。 sum=0 i=1 #修改下面i的停止条件为i<=8 i<=100 i<=1000 记录sum的值 while i<=5: sum=sum+i i=i+1 print("和:",sum)
算式1+2+……+81+2+……+1001+2+……+1000条件i<=8i<=100i<=1000结果
总结:程序验证比前两种验证更适合大规模数据,但如果跳过前两步验证,可能需要多次修改算法和程序,甚至在编写程序过程中就会遇到问题。 拓展:用程序验证高斯的方法 通过图解1+2+3+4+5的累加过程,帮助学生建立累加模型,初步感知累加算法。 补全算法流程图能让学生进一步理解累加算法。学生在回答算法特征相关问题时进一步修改算法中的错误,确保算法的描述是有效的。 通过代入测试数据,并逐步计算得到结果,让学生感受算法验证的作用和重要性。 让学生调整具体参数,体验感受程序验证,与前两个验证对比,感悟程序验证的优势。
(三)总结提升
教学内容与活动 设计意图
1.总结测评 总结:算法验证的方法不一,包括用算法特征验证、数据验证和程序验证等,程序验证速度更快,但前两者是程序验证的基础,它们之间相辅相成,只有通过验证的算法,才能够有效地被运行并解决问题。 测评:测一测你今天的学习情况 我会了吗我还存在的疑问我会根据算法的特征找到问题,正确描述算法 会 会一点 不会我能读懂算法,代入数据写出每一步结果 会 会一点 不会我会修改编写程序验证算法 会 会一点 不会
总结回顾本节课的内容,反思收获和仍然存在的疑问。
板书设计:(共7张PPT)
/第9课 《算法的验证》
五上信息技术
德国“数学王子”高斯三岁时便能纠正父亲的借债账目。十岁时,他的老师布纳特出了一道算数题:求1到100所有整数的和,老师刚叙述完,高斯就算出了正确答案。同学们知道高斯是怎么算的吗?你们又会怎么计算?能设计算法验证吗?
1+2+3+……+99+100=?
问题抽象
尝试先设计一个“求1+2+3+4+5和”的算法
1+2+3+4+5
数(i=1)
观察相邻sum求和式子,你发现了什么规律?
和(sum=0)
sum=0+1=1
sum=1+2=3
sum=3+3=6
sum=6+4=10
sum=10+5=15
i=i+1
sum=sum+i
问题分解
在课件中补全“求1+2+3+4+5和”的算法流程图
开始
结束
sum=0
i=i+1
sum=sum+i
i=1
输出sum的值
i<=5


算法特征验证
步骤有限?
可确定执行?
输出?
数一数高斯的方法和累加求和两种算法的步骤,哪个少?
高斯方法
和=(1+尾数)*尾数/2
5


算法设计
进入时i的值 每一步结果
i=1 sum=0+1=1
i=i+1=2
i=2 sum=1+2=3
i=i+1=3
…… ……
……
修改流程图中条件为“i<=6”,逐步写出计算结果
开始
结束
sum=0
i=i+1
sum=sum+i
i=1
输出sum的值
i<=6


数据验证
如果验证的数据很大(如i<=1000)怎么办?
sum=3+3=6
i=i+1=4
sum=15+6=21
i=i+1=7
i=6
i=3
算法设计
调整桌面上“求和”程序中i<= 的值为8、100、1000,记录程序输出结果
算式 1+2+……+8 1+2+……+100 1+2+……+1000
条件 i<=8 i<=100 i<=1000
结果
程序验证
执行速度如何?
和:36
和:5050
和:500500
我们可以发现,用程序验证比数据验证速度要________(快/慢)。当数据规模变得越来越大,程序运行时间越________(长/短)。
用程序验证高斯的方法
sum=(1+i)*i/2
算法设计
我会了吗 我还存在的疑问
我会根据算法的特征找到问题,正确描述算法 会 会一点 不会
我能读懂算法,代入数据写出每一步结果 会 会一点 不会
我会修改编写程序验证算法 会 会一点 不会
测一测你今天的学习情况算法的验证
请根据左边的流程图,分析i和sum的变化过程,写出每一步的结果。
进入时i的值 每一步结果
i=1 sum=0+1=1
i=i+1=2
i=2 sum=1+2=3
i=i+1=3
i=3
i=4
i=5
i=6
调整程序中的条件参数,记录结果。
算式 1+2+……+8 1+2+……+100 1+2+……+1000
条件 i<=8 i<=100 i<=1000
结果
我们可以发现,用程序验证比数据验证速度要________(快/慢)。当数据规模变得越来越大,程序运行时间越________(长/短)。
测一测你今天的掌握情况。
我会了吗 我还存在的疑问
我会根据算法的特征找到问题,正确描述算法 会 会一点 不会
我能读懂算法,代入数据写出每一步结果 会 会一点 不会
我会修改编写程序验证算法 会 会一点 不会
附:求和程序
sum=0
i=1
#修改下面i的停止条件为i<=8 i<=100 i<=1000 记录sum的值
while i<=5:
sum=sum+i
i=i+1
print("和:",sum)

展开更多......

收起↑

资源列表