资源简介 第 12 课《“韩信点兵”同余法的实现》教学设计【课标内容要求】通过真实案例,知道算法步骤的执行次数与问题的规模有关,观察并体验采用不同算法解决同一问题时在时间效率上的差别。【教学内容分析】本课时属于算法模块,其中包括“算法的描述”“算法的执行”“算法的效率”三部分的内容。本模块教学中,学生的认知发展处于从具象思维到抽象思维的过渡时期。【教学目标】1.让学生经历同余法的探索过程,尝试使用自然语言、流程图等方式,正确进行同余法求解的算法描述。2.掌握用 Python 语言编写验证同余法的程序。3.了解枚举法、筛选法和同余法在解决“韩信点兵”问题时在时间效率上的差别。重点:让学生经历同余法的探索过程,尝试使用自然语言、流程图等方式,正确进行同余法求解的算法描述。难点:掌握用 Python 语言编写验证同余法的程序。了解枚举法、筛选法和同余法在解决“韩信点兵” 问题时在时间效率上的差别。【核心素养指向】通过解决“韩信点兵”的问题,了解同余法的特征和效率,会用自然语言、流程图等方式描述算法。 能对“韩信点兵”问题进行抽象、分解、建模,制订简单的解决方案。【学情分析】本学期采用的是新版教材,虽然新教材五年级时就重点开始培养学生的计算思维,但是学生接触 的是老教材。本学期前面几课已经让学生接触到了算法,但是学生们的算法思维水平也是良莠不齐,所以对算法的理解还是有一定的困难,对计算机的解题思路也不是非常清楚。而且六年级的学生也是刚刚接触Python 语言,用 Python 语言解决“韩信点兵”的问题是具有一定的挑战性的。【设计构想】以探究为导向,以活动为主线,以学生为主体,以教师为主导,通过情境引导、自主探究、协作交流 等方法,突出思维的训练,为不同层次的学生提供参与学习、体验成功的机会,带着学生做思维体操。【教学环境及资源准备】课件、自主学习任务单【教学活动设计】一、情境导入,引入课题1997 年,美国 IBM 公司的“深蓝”超级计算机以 2 胜 1 负 3 平战胜了当时世界排名第一的国际象棋大师卡斯帕罗夫,“深蓝”超级计算机运算速度可每秒达到 2 亿步。“深蓝”的胜利其实是运算的胜利。计算机已经渗透到我们学习、生活、工作的方方面面,日常生活学习中的问题怎样“转化”成计算机能够解决的问题呢?今天,我们就用“韩信点兵”的故事来探讨一下吧。二、自主学习,探究新知(一)探索请同学们以小组为单位,先完成自主学习任务单中表格。被除数 除数 余数23 323 523 7128 3128 5128 7233 3233 5233 7完成表格以后,你发现了什么?能得出什么结论?小组讨论后得出结论:被除数加上三个除数的公倍数,余数不变。你知道什么是同余法吗?数学上,两个整数除以同一个整数,若余数相同,则对于除数,这两个整数同余。如果再往下填写符合要求的被除数,能填完吗?(二)抽象与建模我们上两节课用枚举法和筛选法解决了“韩信点兵”问题,这次我们要用同余的思想来解决问题。课件出示:韩信带领 1500 名士兵去打仗。战后,死伤四五百人。剩下的士兵中,他命令士兵 3 人一排,结果多出 2 人;接着命令士兵 5 人一排,结果多出 3 人;又命令士兵 7 人一排,结果又多出 2 人。问这队士兵有多少人?在韩信点兵过程中,剩下的士兵总数用变量 x 来表示。变量 x 的范围为 1000~1100,且需同时满足“x 除以 3 余数为 2、x 除以 5 余数为 3、x 除以 7 余数为 2”三个条件。根据同余思想,请同学们以小组为单位在任务单上建模。(设计意图:让学生明白利用原有知识解决问题之前,首先要提取核心关键点,如关键数字等,并将其用数字化,符号化描述。通过提炼,排除干扰, 降低解决问题的复杂性,抽象处问题解决的核心要素,从而促进学生的主动思维,提升学生的抽象能力。)学生建模后,教师总结:根据大部分同学的任务单,发现可以如下建模:(1)先找出同时满足“x 除以 3 余数为 2、x 除以 5 余数为 3、x 除以 7 余数为 2”三个条件的任意一个数,如 233;(2)然后将该数加减 3、5、7 的最小公倍数 105 的整数倍;(3)在 1000~1100 范围内的数即是所求解。(设计意图:此环节主要培养学生能够主动提炼与核心问题相关的知识,让学生能具备对信息进行有效判断和选择优化的能力,计算思维的培养在问题求解过程中进行逐级渗透。)(三)算法设计下面我们一起来探究如何将“韩信点兵”同余法问题转换为计算机能够解决的问题。 1、先请同学来说一说你是怎样设计算法的?2、教师总结:用同余法解决“韩信点兵”问题时,我们可以用变量 s 表示所取到的同时满足三个条件的任意一个数,如 233,变量 k 表示三个数的最小公倍数。通过加或减 k 的整数倍,使 s 的值大于等于 1000 且小于等于 1100,可以采用循环结构,根据条件“s 小于 1000”来选择加 k 或者减 k 的值,可以采用分支结构。请同学们以小组为单位,把学习任务单上的算法流程图补充完整。然后请同学来说一说这样填写对不对。请选择填写。(四)算法的程序实现请用 Python 语言编写程序,并写在任务单上。运行程序后,大家发现了什么?运用了同余法的程序运算速度是否更快?这说明了同余法比枚举法和筛选法的效率更高。你能确定我们设计的这个算法就是最优算法吗?(不能)正所谓殊途同归,解决这个问题肯定还有很多种算法,算法具有多样性,更优的算法我们以后再去探究。(设计意图:通过采用不同方法的程序进行比较,培养学生寻求多角度解决问题的方法, 感悟程序优化后带来的便利,提高学生的认知能力。)(五)拓展若将上述“韩信点兵”问题的查找范围调整为 2500~2600,修改上述算法及程序,并输出结果。这个“韩信点兵”问题,其实就是著名的中国古代剩余定理,早在大约 1500 年前,我国古代数学名著《孙子算经》中就有详细描述“物不知数”的问题,早就找到了这个问题的规律,有兴趣的同学课后可以看一看课本第 54 页的拓展部分。(设计意图:引用中国古典故事,激发学生爱国情怀。)三、提高认知,总结评价今天我们学会了使用同余法探究问题,知道要想将日常问题转换为计算机能够解决的问题,必须先分析问题,然后描述解决问题的思路,最后还要对算法进行优化,提高效率,从而设计出最优算法。板书步骤。板书: 展开更多...... 收起↑ 资源预览