中图版(2019)高中信息技术必修1教案2.4常见算法的程序实现

文档属性

名称 中图版(2019)高中信息技术必修1教案2.4常见算法的程序实现
格式 docx
文件大小 22.9KB
资源类型 教案
版本资源 中图版(2019)
科目 信息技术(信息科技)
更新时间 2020-08-05 18:03:43

图片预览

文档简介

常见算法的程序实现
【课程标准】
掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。
通过解决实际问题,体验程序设计的基本流程,感受算法的效率,掌握程序调试和运行的方法。
【教学目标】
通过“票据中模糊数字推断”情境,分析数字推断的过程,理解枚举算法的基本原理。(计算思维)
通过“判断一个数是不是素数”任务,了解枚举算法求解问题的基本过程,能用流程图描述该问题求解的算法,能编写程序并调试运行,实现问题求解。(计算思维)
体验枚举算法的执行效率,认识优化算法的必要性。(计算思维)
通过与生活实例的结合运用,学会使用枚举算法解决生活中的实际问题,提高信息安全意识。(信息社会责任)
【学业要求】
利用程序设计语言实现简单算法,解决实际问题。
【学情分析】
本节课的授课对象是高中一年级的学生,他们已经具有一定的问题解决和规划设计能力,而且乐于动手操作,勇于探索。通过前面课程的学习,学生已经理解了算法及其特征,能用流程图描述问题求解的算法;掌握了Python语言的基本知识,能进行简单的程序编写。但是还缺乏对利用程序解决实际问题过程的系统化梳理,对常用的典型算法(如枚举算法)缺乏深入的理解。
【教学重点】
理解枚举算法的核心思想和典型特征;能结合实际问题,编写程序实现枚举算法并调试运行,解决问题。
【教学难点】
感受不同算法的执行效率,体验算法优化在问题解决中的价值。
【教学方法】
教学方法:讲授法、任务驱动法、对照实验法和合作探究法。
讲授法:通过“票据中模糊数字推断”问题导入,讲授枚举算法的基本原理。
任务驱动法:以“判断一个数是不是素数”为主要任务,引导学生在枚举算法思想的指导下进行算法分析、程序编写与调试。
对照实验法:运用对照实验法,比较“寻找1000以内的所有素数”的两个程序的运行效率,认识算法优化的重要性。
合作探究法:通过小组合作“密码解密”的任务,体会枚举算法思想在实际生活中的运用,培养学生的计算思维。
软硬件资源:网络机房、电子白板、教学课件、《希沃白板》软件。
【教学过程】
教学环节
教学内容
学生活动
设计意图
情境导入
引入枚举
算法
教师活动:课堂开始创设情境,引入票据中模糊数字推断问题。
张票据上有一个4位数字组成的编号。
甲说:数字编号的前两位数字相同,但都不是零;乙说:数字编号的后两位数字是相同的,但与前两位不同;丙说:数字编号是一个整数的二次方。试根据以上线索推断出编号
观察
思考
以实际生活场景作为突破口,引出本节课的主枚举算法,激发学生的学习兴趣
数字解密
初识枚举
算法
活动1:分析问题
已知条件:四个数字应是AABB,其中A≠0,A与B不相等,且AABB是一个整数的二次方;
求解目标:票据中的数字;
隐含关系:要求解的四位数字编号的票据必须同时满足已知的所有条件。
教师活动:引导学生梳理推断的思路。
师生互动:完成问题的分析。
根据问题引领,自主思考
本环节以实际生活场景作为突破口,学生通过体验推断模糊数字的实际问题,认识枚举算法,进而总结出枚举算法的三要素,突破本节课的第一个教学重点——枚举算法设计的基本原理
数字解密
初识枚举
算法
活动2:设计算法
教师活动:引导学生进行算法分析。根据问题分析,只要一一列举出4位数字AABB中A与B的所有可能组合,保证A≠B且A≠0,再验证二次方根问题,就可以得到问题的解。
师生互动:完成算法流程图。
活动3:梳理归纳
师生互动:分析该问题解决算法的核心思想——枚举算法。教师强调该算法的基本特征:枚举对象、枚举范围和验证条件。
活动4:程序实现
教师演示:打开程序文件,分析对应算法的程序语句。运行程序,体会利用计算机程序实现枚举算法的优势
1.观察与思考,完成算法流程图,总结枚举算法的基本原理。
2.观察程序,体会用计算机程序解决问题的优势
本环节以实际生活场景作为突破口,学生通过体验推断模糊数字的实际问题,认识枚举算法,进而总结出枚举算法的三要素,突破本节课的第一个教学重点一枚举算法设计的基本原理
素数探究
深窥枚举
算法
探究任务:判断一个数是不是素数教师提出任务,小组合作进行任务分析,并交流。
(1)已知条件:素数的定义(只有“1”和它本身两个因数的数)。
(2)求解目标:判断这个数是不是素数。
(3)求解方法:逐一(强调不遗漏且不重复)判断(验证条件)。
活动1:算法分析——理解枚举算法进行算法流程图分析,完成自主探究任务——绘制流程图,理解枚举算法
完成活动1(可以借助学案和微课),并展示
通过任务驱动,自主分析枚举算法的应用,理解枚举算法的基本原理,培养计算思维
师生互动:师生在黑板上借助流程图,共同梳理判断一个数是不是素数的过程中的三要素:在确定枚举对象后,最重要的是确定枚举范围和验证条件。
活动2:编写程序——实现枚举算法
学生根据流程图编写程序,并调试运行,得到结果。(选出一位同学在电子白板上操作)
教师活动:利用电子白板对学生任务进行总结与评价。
活动3:延伸思考1000以内的素数
查找提出思考问题:我们已经成功利用程序实现了判断一个数是不是素数。如果需要查找1000以内的所有素数,哪位同学能说一下自己的思路?
师生交流:这是对1000个数的“大”枚举,逐一列举出其中的每一个数,判断是否为素数。所以,可以将前面判断素数的程序代码作为这个问题的判断条件。
展示最后完善的流程图,师生修改程序,运行求解
1.展示程序。
2.思考问题,完善流程图和程序,展示
通过编写程序、运行程序、调试程序三个环节,体会利用计算机程序实现枚举算法的全过程
实验对比
感受算法
效率
提出问题:借助计算机的高速运算能力,可以利用枚举算法帮助我们解决这一问题,比人工查找方便多。但是,大家有没有想过,如果数据量太大,计算机会不会“累”?师生归纳:计算机虽然不“累”,但如果数据量太大,会影响速度,因此需要考虑算法效率。
算法效率指算法执行的时间,即程序在计算机上运行时所消耗的时间
思考
回答问题
本环节是突破本节课的教学难点:感受不同算法的执行效率,体验算法优化在问题解决中的价值。通过学生自己的对比实验,直观地体验不同的枚举算法具有不同执行效率,认识优化算法的必要性,培养学生系统化的计算思维以及创新能力
展示任务:给出解决“寻找1000以内的所有素数”问题的两种算法的对比程序,以两个同学为一组进行关键代码,运行两段程序,从枚举对象、枚举范围和验证条件等方面分析哪种算法更好?好在哪里?并写出“两种方案比较”的结果。
展示学生任务完成情况,并总结:运行速度更快,效率更高的方案,其程序缩小了枚举范围,进而减少了逐一验证的次数,提高了程序的运算效率,算法更优化
完成对比实验并认识到算法效率的重要性
情感升华
总结枚举
算法
1.课堂回顾与总结。
枚举算法思想在生活中解决问题的适用情况及特点:
①运算量大;
②求解数量有限;
③所有的可能情况都符合一定的规则。
2.枚举的应用与延伸。
枚举算法是计算机解决问题的基本算法,在生活中有广泛的应用。例如,有的系统设计6位阿拉伯数字作为密码,6位数字所有的排列组合共有100000种,这就意味着最多只需尝试一百万次就可破解密码,对计算机来说这是一个非常小的值。这就是绝大多数系统对用户设置密码验证次数限制的原因,一旦超过限值,用户账户就会被锁定。
提出问题:如何保护自己的密码安全?教师展示保护密码安全的技术(如指纹验证、图片验证等),帮助学生建立信息安全意识。
延伸:思考枚举算法还有哪些应用
回顾学习过程,交流密码设置安全性问题,了解枚举算法的更多应用,拓展思路
对枚举算法的应用进行情感升华,帮助学生建立正确的信息社会责任和信息保护意识