资源简介 《算法的验证》教学设计一、教学内容分析《算法验证》是浙教版五年级上册第三单元“用算法解决问题”第五模块内容,在前四课已经介绍了设计算法的一般过程,学生能够将问题分解、抽象、建模并设计算法。本课主要讲解算法验证的三种方式,第一部分安排“根据算法特征验证”,旨在让学生通过对流程图的观察,回忆算法特征、变量值的变化过程,熟练运用流程图描述算法,确保算法的描述是有效的。第二部分“用数据验证算法”,根据算法能够通过部分测试数据,让学生感受算法验证的作用和重要性,能将具体数据代入流程图并逐步计算得到结果。第三部分“用计算机程序验证算法”,让学生通过修改、编写程序等方式体验程序验证算法的优势。二、学习对象分析从问题的分解、抽象、算法的设计到验证,是一个将形式化的描述方式转变为可以实现的结果。从学生的认知发展角度来看,需要将推演结果转变为编程的预测结果,然后执行程序验证结果。虽然五年级学生已经有图形化编程基础,了解了变量、三种程序结构等,但是在掌握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=1sum=1+2=3sum=3+3=6sum=6+4=10sum=10+5=15i=i+1sum=sum+i问题分解在课件中补全“求1+2+3+4+5和”的算法流程图开始结束sum=0i=i+1sum=sum+ii=1输出sum的值i<=5 否是算法特征验证步骤有限?可确定执行?输出?数一数高斯的方法和累加求和两种算法的步骤,哪个少?高斯方法和=(1+尾数)*尾数/25√√算法设计进入时i的值 每一步结果i=1 sum=0+1=1i=i+1=2i=2 sum=1+2=3i=i+1=3…… …………修改流程图中条件为“i<=6”,逐步写出计算结果开始结束sum=0i=i+1sum=sum+ii=1输出sum的值i<=6 否是数据验证如果验证的数据很大(如i<=1000)怎么办?sum=3+3=6i=i+1=4sum=15+6=21i=i+1=7i=6i=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=1i=i+1=2i=2 sum=1+2=3i=i+1=3i=3i=4i=5i=6调整程序中的条件参数,记录结果。算式 1+2+……+8 1+2+……+100 1+2+……+1000条件 i<=8 i<=100 i<=1000结果我们可以发现,用程序验证比数据验证速度要________(快/慢)。当数据规模变得越来越大,程序运行时间越________(长/短)。测一测你今天的掌握情况。我会了吗 我还存在的疑问我会根据算法的特征找到问题,正确描述算法 会 会一点 不会我能读懂算法,代入数据写出每一步结果 会 会一点 不会我会修改编写程序验证算法 会 会一点 不会附:求和程序sum=0i=1#修改下面i的停止条件为i<=8 i<=100 i<=1000 记录sum的值while i<=5:sum=sum+ii=i+1print("和:",sum) 展开更多...... 收起↑ 资源列表 《算法的验证》学习单.docx 《算法的验证》教学设计.docx 《算法的验证》课件.pptx