探究算法的评价方法 基本知识与技能: 1.通过“数”算法中循环的执行次数,认识到解决同一问题的不同的算法可能存在时间效率上的差别,初步掌握算法效率评价的方法。 2.通过给算法加计数变量等操作,比较语句的执行次数,深入理解算法的时间复杂度,形成算法效率的意识。 教学重难点: 教学重点:初步掌握算法效率评价的方法。 教学难点:多种算法的效率比较。 实验资源 1.实验器材: 硬件:计算机电脑。 软件:Python语言编辑器;计数器模块;Pycharm编辑器。 2.实验记录单:导学学习单;实验过程记录单。 教学过程 (一)复习旧知 1.教师带领学生回顾猜数字游戏,说出编写猜数字游戏所经历的步骤:分析问题—建构数学模型—设计算法流程图—体验算法。在回顾的过程中,体现学生算法的意识。 2.教师提出问题:在玩猜数字游戏时,我们用了什么方法进行猜测?学生进行预设,分析学习单(项目前期生成)中记录猜测次数的过程,互相讨论。 设计意图:调动学生思考探究的积极性,引出核心问题,激发学生兴趣,通过学生回答问题,评价学生是否产生同一问题多种算法解决的意识。 (二)构建模型 1.学生总结出三种常见的猜数字方法,教师针对这三种方式进行归纳总结,给出名称:无序猜数字、有序猜数字、二分查找法。 2.教师带领学生分析这三种猜数字方法,教师提出猜数字的游戏前期我们已经设计算法并进行体验,但是身为“玩家”角色,我们还未对猜数字的过程进行算法设计,教师带领学生进行猜数字过程的算法设计,并引领学生构建数学模型。 3.教师引导学生进行猜想:这三种算法都可以去猜数字,那你觉得哪种方法最好?提出可以评价算法的维度,引导学生制定评价算法的规则。 设计意图:通过对学生的引导,评价学生是否意识到算法有“好”“坏”之分,影响算法的效率的条件是什么,学生产生评价算法的意识。 (三)“数”+运行 1.教师带领学生绘制无序猜数法、有序猜数法、二分查找法的算法流程图。 2.教师引导学生控制程序变量:猜数字的取值范围、答案数字,学生分组模拟实验流程,记录猜对答案的次数与时间。 3.教师提出疑问:如果我们猜数字的范围足够大,我们应该如何模拟实验过程?学生提出借助计算机程序模拟实验过程。教师提供程序,学生进行数据的修改,记录程序代码执行次数和程序运行时间。 设计意图:通过学生自主模拟实验,发现算法之间的差别;通过改变数据量的大小,发现数据规模对算法运行时间的影响。 (四)可视呈现 1.学生呈现三种算法的时间复杂度,并说明结论是如何得出的?(复述实验过程)。 2.学生将数据进行对比分析,并进行组内研讨,总结三种算法的优缺点。 设计意图:通过小组内的总结和研讨,用可视化的方式呈现算法效率,感受不同算法在解决同一问题时会产生时间效率上的差异,让学生意识到算法的价值和局限性。 (五)回顾项目 教师出示三个特定的场景: 学生根据场景进行分析,要选用什么算法去解决问题更为合适,明确算法的选择要按照实际场景、数据容量等条件影响。 教师带领学生对整个项目进行回顾与反思,通过这个项目,学生对猜数字游戏有了深刻的认识,并通过这些情景的迁移,感知影响算法效率的因素。 设计意图:通过分析特定场景,让学生亲历用计算机解决问题的过程,理解计算机解决问题是问题抽象、分析、建模、解决方案的算法设计过程。在生活中,解决同一问题可以有多种不同的求解方法,算法也同样如此。 ... ...
~~ 您好,已阅读到文档的结尾了 ~~