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