《附件1枚举算法及其程序实现教学设计.docx》由会员分享,可在线阅读,更多相关《附件1枚举算法及其程序实现教学设计.docx(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、枚举算法及其程序实现教学设计课程标准 和教学目标枚举算法及其程序实现教材内容:3. 3. 2枚举算法及其程序实现适应的课程标准:1.7掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题, 体验程序设计的基本流程,感受算法的效率,掌握程序调试与运行的方法。教学目标:理解枚举算法的思想,能用枚举算法来设计 算法解决简单问题。编写程序来实现枚举算法。通过解决实际问题,编写实用性程序,培养 编程解决问题的能力。指向的核心素养:信息意识:能够根据解决问题的需要,自觉、主 动地寻求恰当的方式获取与处理信息;在合作解决 问题的过程中,愿意与团队成员共享信息,实现信 息的更大价值。
2、计算思维:针对给定的任务进行需求分析,明确 需要解决的关键问题;能提取问题的基本特征,进 行抽象处理,并用形式化的方法表述问题。运用基 本算法设计解决问题的方案,能使用编程语言或其 他数字化工具实现这一方案。学习环境:有教学控制软件的多媒体机房,装有Python3.x编程环境和班级讨论区。建议课时:1课时教学活动 设计教学环节教学过程设计意图情境导入小明不小心把寝室门钥匙丢了,他去寝室管理员那里去找钥 匙开门。寝室管理员那里总共有10把钥匙,但钥匙上的海室 编号已经模糊不清了,请问小明如何才能找出能开自己寝室 门的钥匙?这是生活中经常遇到的问题,只能一把一把钥匙试过来, 直到找到能打开门的钥匙
3、。从生活实际问题中体会枚举思想的应 用,顺利过渡到使用枚举算法编程解 决问题,有效地调动了学生主动探究 学习的积极性。学生活动活动1:编程推算单据中被涂抹数字。有一张单据上有一个5位数的编号n,如图所示,其百位 数和十位数处已经变得模糊不清,但是知道这个5位数是23 的倍数。现要设计一个算法,找出所有满足这些条件的5位 数,并统计这些5位数的个数。NO:算法分析:这个5位正整数n中的百位和十位数有00、01、02、 97、98、99共100种可能,分别填入,从而产生出n的全部 可能解:25006、25016 25026、25986、25996。使用枚举算法解决问题时,必须逐一地给出所有可能解
4、并对它们逐一进行检验,既不应遗漏任何一个可能解,也不 应重复地产生和检验可能解。因而将每个可能解n逐一进行 判断是否是一个真正解,即n是否能被23整除。若n是真正设计实际而有趣的问题情境,引导学 生围绕枚举算法的思想精髓“列举” 和“筛选”来思考问题,从而落实教 学重点,让学生充分领略到计算机自 动化处理的优势。解,则输出n的值,并在计数器c中加上1,表示找到了一个 真正解。活动2:编程推算单据中被涂抹数字。有一张单据上有一个5位数的编号n,如图1所示,其千位数 和H立数处已经变得模糊不清,但是知道这个5位数是23的 倍数。现要设计一个算法,找出所有满足这些条件的5位数, 并统计这些5位数的个
5、数。2K虐6算法分析:同样是推算被覆盖的数字,本题与上一题的区别在于, 上一题被覆盖的两个数字连在一起,只要一重循环枚举00到 99共100种可能就行了。但是本题的两个数字是分开的,需 要分别枚举千位和十位上的数字,所以要双重循环。可以分别用i和j来表示两个被覆盖的数字,i从0到9, j从0到9,双重循环逐一检验每一个可能的解。相同的问题背景,不同的解题思路, 从枚举一个变量到枚举两个变量,从 一重循环到二重循环,逐步增大问题 难度,让学生体会枚举算法在不同维 度的应用,实现思维的跃升。自主学习学生小组合作讨论并实践,编程判断某个信息点(300个像素) 是否被填涂。教师引导学生自主阅读教材,并
6、思考以下问题:1 .如何表示某个像素点的颜色?2 .如何存储300个像素点的颜色信息?3 .如何判断某个像素点的黑边颜色?4 .如何统计黑色像素点的数量?5 .如何判断该信息点是否被填涂?6 .能否使用模块化编程思想把该功能设计成一个函数?通过项目学习,体验真实情境中程序 产品的孕育与产生,理解计算机解决 问题的工作模式。从一个像素颜色的 判定,升级到完整判定某信息点有没 被填涂的问题上来,进一步理解枚举 算法的特征,体会用简单算法解决复 杂问题的成就感。课堂小结1 .总结枚举算法的基本思想犯:按问题本身的性质,一一列举出该问题所有可能的解, 并在逐列举的过程中,检验每个可能的解是否真正的解,
7、 若是,就采纳,否则就放弃。2 .总结枚举算法解题过程:(1)逐一列举可能的解的范围。这个过程用循环结构实现。(2)对每一个列举可能的解进行检验,判断是否为真正的解。 这个过程用分支结构实现。3 .总结枚举算法的优缺点和注意事项:优点:是对现实生活的直接描述,易于理解,容易证明算法 的正确性。缺点:枚举算法需要考察多个变量的大量状态,因此效率比 较低。注意事项:要做到既不遗漏任何一个解,也不重复枚举; 尽可能减少枚举变量和枚举变量的值域,以提高效率。在学生有了使用枚举算法编程解决问 题的体验后,教师组织学生对知识进 行归纳和总结,实现从具体实践到- 般理论的升华。作业布置基础作业(面向所有学生
8、): 本节配套课后作业。提升作业(面向学有余力学生):课后作业是课堂学习的延伸,是巩固 和升华知识点的有效途径。根据学生 的基础和能力设置不同难度的作业,自主学习Python中文件读写操作,掌握读取图片中的某些像 以满足不同层次的学生需求。 素点颜色信息并写到文件中的方法。教学设计 思路本节课主要采用任务驱动教学方法,在新课引入时,教师提供r 个源于生活的真实情境”寻找开门的钥匙”, 让学生从生活实际问题中体会枚举思想的应用,顺利过渡到使用枚举算法编程解决问题,可以有效地调动学生探究学 习的积极性。接下来的两个学生活动真实而有趣,编程推算单据中被涂抹数字,正是枚举算法在生活的应用。教师要引导学
9、生 围绕枚举算法的思想精髓“列举”和“筛选”来思考问题,通过抛出一个个小问题,让学生了解枚举算法解题的过程: 逐一列举可能的解的范围,对每一个列举可能的解进行检验,判断走否为真正的解。通过设计算法,搭建程序实现的 框架,明确程序中应该包含循环语句和分支语句。两个问题具有相同的背景,但是由于涂抹的位置不同,需要学生给出不同的解题思路,从枚举个变量到枚举两 个变量,从一重循环到二重循环,逐步增大问题难度,让学生体会枚举算法在不同维度的应用,实现思维的跃升。教材中“判断某个信息点是否被填涂”的例题非常重要,它不仅是枚举算法的一个典型应用,也是后面“答题卡 填涂项目”的重要前置知识,需要认真对待。教材
10、对这一部分内容讲解比较详细,结构也很合理,安排了从“5个像 素颜色判断”到“300个像素颜色判断”的任务递进,完成了从“点数据”到“面数据”的延伸,还帮助学生建立了 统计黑色像素个数的计算模型,给出了完整的程序代码。教师可以引导学生自主阅读教材,并给出一系列思考问题, 使学生通过项目学习,体验真实情境中程序产品的孕育与产生,理解计算机解决问题的工作模式,领略计算机自动化 处理的优势。从个像素颜色的判定,升级到完整判定某信息点有没被填涂的问题上来,进步理解枚举算法的特征, 体会用简单算法解决复杂问题的成就感。在学生完成自主学习任务后,教师进一步要求学生把该功能设计成一个函数,这既巩固了学生的学习
11、效果,又强 化了模块化编程思想的应用,还为下一节课的学习做好了铺垫。最后,教师组织学生对知识进行归纳和总结,既要总结枚举算法的基本思想,乂要总结枚举算法解题过程,还要 总结枚举算法的优缺点和注意事项,帮助学生把新知纳入原有知识结构,实现知识的升华。针对 核心素养 培养的 设计考虑本节课主要采用任务驱动的方式让学生掌握枚举算法的思想及其程序实现,重点在于通过项目学习,让学生体验真实 情境中程序产品的孕育与产生,理解计算机解决问题的工作模式,领略计算机自动化处理的优势,从而提升学生的计 算思维。活动1和活动2问题背景相同,采用相同的算法思想和程序框架,但是难度递增,需要学生能提取问题的基本特征, 进行抽象处理,并用形式化的方法表述问题,并针对问题的不同特征,采取不同的处理方法,实现知识的迁移。活动3是自主学习教材内容,要求学生能针对给定的任务进行需求分析,明确需要解决的关键问题。通过阅读教材, 理解计算机编程解决问题的般过程,通过把原有代码改造成个函数,强化r模块化编程思想,提升学生的计算 思维。在学生实践活动中,由于不同学生的能力存在差异,部分学生可能会较快完成,而另一些学生却存在许多困难,教帅 看组织学生成立学习小组,开展合作学习,以强带弱,共同提高编程能力。
限制150内