当前位置:文档之家› 浙教版一年级《枚举算法》教学设计(2课时)

浙教版一年级《枚举算法》教学设计(2课时)


2007年浙江省高中信息技术新课程
教学设计评比


学段:普 高





课 题: 浙教版高一年级选修一
《枚举算法》的教学设计
单 位: 瑞安市第八中学
姓 名: 金 万 莲
邮 编: 325213
联系电话: 139********
电子信箱: sheilakim@https://www.doczj.com/doc/dc4402478.html,

浙教版一年级《枚举算法》教学设计(2课时)
一、设计思想
《高中信息技术课程标准》指出《算法与程序设计》模块学习的目的是:使学生进一步体验算法思想,了解算法和程序设计在解决问题过程的地位和作用;能从简单的问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。
我的想法是将教材第二章的算法和第五章的程序实现结合起来组织教学,分2课时,在网络教室上课,让学生在动手实践的同时掌握算法思想。枚举算法的第一课时,将目标定位在掌握算法思想上,让学生了解枚举算法是怎样解决问题的,并不要求学生自己编写程序,因此,在教学过程中,以讲授法为主,学生在模仿的基础上独立思考,写出枚举算法解决问题的过程,最后师生合作一起概括枚举算法的适用范围以及注意点。第二课时将要求提高到联系实际编出程序解决简单问题,在教学过程中,先设置情境找路线,通过此活动引导学生回顾解决此问题的方法--枚举算法,通过判断让学生知道生活中的枚举算法(如找钥匙、警察审案、修补轮胎、挑烂苹果等)是很多的,再从引入的情境中延伸开,鼓励学生自己动手使用计算机编程去解决实际问题,并在这个过程中掌握用计算机解决问题的思想,最后提出给计算机"减负",引导学生改进算法。
二、教材分析
枚举算法在《高中信息技术课程标准》中的内容是:
①、了解枚举算法的基本概念及用枚举算法设计算法的基本过程
②、能够根据具体问题的要求,设计枚举算法,编写程序求解问题
本章的学习任务是掌握枚举、解析、排序、查找等算法,这一章节的内容在《算法与程序设计》中十分重要,是《算法与程序设计》的精华。枚举算法是这一章节的第一课时,它是通过对现实问题用比较直观的算法描述,充分利用计算机的高速运算能力来求解的方法。枚举算法来源于生活,生活中的很多问题都是用枚举算法解决的。枚举算法注重学生逻辑思维能力的训练,同时它也充分体现了用计算机解决实际问题的思想,是设计算法的一种重要方法。
三、学情分析
在前面的教学中,学生已经学习了算法的特点,理解了顺

序、选择、循环三种基本结构,并通过参与活动手册中的实践,对程序有了初步的认识。
学生对《算法与程序设计》的兴趣不一,对《算法与程序设计》的各种认识都有,有的将它作为数学辅助来待,有的视之为异常枯燥之物,也不乏对其"倾心"者......因而,由于层次不一样,在学习时,可能会遇到以下问题:
①、学生理解不透彻,考虑不周到,以致无法得出正确的结果
②、学生一味模仿例题为主,思维局限,知识无法迁移
③、学生为学习算法而学算法,不联想生活实际
④、在编程实践部分,学生思路狭窄,出题速度慢
⑤、个别学生独立完成之后"包揽一切",代替他人操作,而非告诉他方法
第一课时
四、教学目标
1、知识与技能
①、根据具体情况确定问题解决的方法
②、了解枚举算法的概念
③、发现枚举算法的解决问题的原理,归纳枚举算法的注意点
④、模仿例题,编写程序求解简单问题
2、过程与方法
①、通过实例分析,发现枚举算法的注意点
②、通过观看、解析源程序,发现枚举算法的解决问题的原理
③、通过模仿、创新,内化算法思想
3、情感与价值
①、感受计算机在问题解决中的作用
②、形成严谨的思维习惯
③、增强合作与交流意识
五、教学重点、难点
教学重点:理解枚举算法的思想
教学难点:双重循环的构建
六、教学策略
讲授法,辅以讨论法与体验
七、教学准备
网络教室
八、教学过程
 ㈠、导入
板书"算法",请学生讲讲算法是什么?
教师提示:回想flash小游戏--农夫过河,先找到让农夫、羊、狼和蔬菜安全过河的方法,然后一步一步帮助农夫安全过河。通俗地讲,算法就是解决问题的一般方法和步骤。要解决问题,首先要找到解决问题的方法,解决问题的方法有很多种。今天,我们来学习枚举算法。计算机帮助人们破解密码,从残缺的信息中找到可能的情况就是通过枚举算法来实现的。
 ㈡、新课过程
投影展示问题一:上学期,我们都申请了邮箱,小明同学也申请了一个,但是好久没用之后,小明就把邮箱的密码给忘了,再三回想,他记起邮箱的密码是以6开头的三位数,当时他还把密码设成是自己学号的倍数,他的学号是18,请列出邮箱密码。
⑴、教师指导用枚举算法解决问题的过程
首先,把给出的条件抄出来:这个数为6■■,而且6■■ mod 18 =0
其次,选取合适的问题解决方法:无法根据条件建立关系直接得出结果,那就只好"蛮干"了--把符合条

件的数一个一个数出来,计算机向来以运算速度著称,这种事情交给它再合适不过了。
接着,解决问题:一个一个数是重复的过程,所以我们采用循环结构,就涉及到循环变量范围、循环体等问题的确定。在这里我们设置一个循环变量x,循环变量的范围确定为0~99,循环体部分列出可能的解y=600+x,并根据条件筛选解y mod 18 是否是0,是的话把这个解列出来,不是的话把它过滤掉。
最后,教师演示已经做好的程序。
⑵、学生两人合作,从残缺的信息中推出需要的信息
投影展示问题二:单据上5位数编号22■■6,是56的倍数,找出所有的5位数?
①、 从题目中找出相关条件
②、 两人交流,确定用什么方法
③、 确定算法的结构,如果是循环则写出循环变量,循环体
拓展研究:在给出的程序中修改循环变量使其从99~0 ,修改可能解的公式
⑶、师生合作共同完成问题三,理解枚举算法的思想
投影展示问题三:单据上5位数编号2■2■6,且是56的倍数,找出所有的5位数,这样的5位数有几个?
学生思考解决问题三的方法,这时学生可能根据经验马上写,可是又写不了,原因在于两个位置不在一块儿,学生想不起用双重循环。
教师提示:根据刚才解决问题的经验,我们确定解决这个问题的方法为枚举算法,而且控制结构为循环,由于残缺的信息在两处,所以用一个循环变量已经无法满足了,循环变量的范围也改变了,循环变量为i(0-9)和j(0-9),可能的解n= 20206+i*10+j*1000,而判断条件依然是为n mod 56 = 0?
⑷、师生一起归纳枚举算法的注意点和解决问题的一般过程
学生思考:
①、在问题二中为什么i的终止值为99,能否改成9?
(教师提示:如果改成9,会遗漏许多个可能性)
②、在问题三中,可能解的公式怎么变?
(教师提示:要修改n的值:n=20006+i*10+j*1000,特别注意i是乘10,它与循环变量关系密切)
③、列举的次序是不是唯一的?
(教师提示:循环变量也可从9到0 )
师生共同总结:
如果确定用枚举算法来解决问题,一般来说选择的控制结构是(循环结构),循环变量的范围选择要依照(不重复)、(不遗漏)的原则,根据循环变量列出可能的解,再根据条件对可能的解进行筛选,最后将符合条件的值输出来。
九、课堂小结(知识结构)
投影展示:
㈠、枚举算法概念
㈡、枚举算法思想:
①、一一列举
②、确定范围,不重复,不遗漏
③、根据条件对结果逐一判断,挑选符合条件的
十、后续研究(作业)
㈠、笼子里有鸡和兔共50只,只知道鸡和兔子的腿共有160只,求鸡和兔各多少只?
1.尽可能多

地找出解决该问题的算法。
2.比较算法,选择你认为最好的并说明理由。
㈡、寻找水仙花数----水仙花数是满足下面条件的一组三位的正整数:每一位数字上的立方之和恰好等于它自己。例如:153就是一个水仙花数,1^3+5^3+3^3=153。请写出找所有的水仙花数的算法,要求用两种方法。
第二课时
四、教学目标
1、知识与技能
①、根据具体情况确定解决的方法
②、理解枚举算法的概念,能列举出生活中用枚举算法解决的问题
③、80%用枚举算法设计算法,解决生活中的问题
④、20%的人能对算法改进
2、过程与方法
①、联系实际,尝试列举日常生活、学习中用枚举算法解决的问题
②、通过实例分析,发现枚举算法编程的注意点
③、通过编制程序,探索使用计算机解决实际问题的过程
3、情感与价值
①、感受计算机在问题解决中的作用
②、借鉴他人作品,取长补短
③、形成严谨的思维习惯
④、增强合作与交流意识
五、教学重点、难点
教学重点:用枚举算法编程解决问题
教学难点:改进算法,修改程序
六、教学策略
讲授法、讨论法与编程体验
七、教学准备
网络教室
八、教学过程
 ㈠、学生找出路线,回顾枚举算法的思想
 小明家里来了30个客人,他要带客人去吃肯德基,从家里出发到肯德基有几种走法?(下图为路线图)

解决方法:一一列举可能的情况,再计数
 路线分析:
①、家--超市--书店--肯德基
②、家--医院--酒店--肯德基
③、家--中国电信--饭店--肯德基
㈡、学生判断是否用枚举算法解决问题:
①、自行车轮胎破了,师傅把轮胎放在水里,检查坏的位置
②、警察审查案件时一一审问疑犯
③、将一箱苹果中烂的苹果挑出来
④、上公交车投币
㈢、师生合作解决生活中的问题
小明的30个客人中有男人、女人和小孩,他们在肯德基花了500元钱,若每个男人花30元,每个女人花25元,每个小孩花10元,请问男人、女人和小孩各多少个?
教师提示:像上节课一样,我们先列出题目中给出的条件,选择合适的算法。设男人x个,女人y个,小孩z个,则得到两条方程: x + y + z = 30 和30 * x + 25 * y + 10 * z = 500,不能根据这两条方程的出结果,我们可以尝试用枚举算法来解决。
根据上节课知识,师生共同完成下列问题:
①、 设置变量(男人x、女人y,小孩z)
②、 循环变量的取值范围(x:1~ 500\30、y:1~ 500\25、z:1~500\10)
③、 循环变量的变化规律(x=x+1、y=y+1、z=z+1)
④、 需要符合的条件(x+y+z=30 and 30 * x + 25 *

y + 10 * z = 500)
⑤、 算法功能(输出x、y、z)
过程中, 教师应提示学生注意循环变量的取值,学生可能将范围写成小数,也有可能去大于它的整数。接着演示程序,把源程序部分代码给学生,让其填空,鼓励学生自己将算法转换成程序。
Dim x as integer, y as integer , z as integer
For x=1 to 16
For y = 1 to 20
For z= 1 to 50
If x + y + z = 30 and 30 * x + 25 * y + 10 * z = 500 then
list1.additem x,y,z
End if
Next z
 next y
Next x
教师巡视,如果掌握好的学生已经将程序运行好了,投影显示:
⑴、改变循环变量的范围和次序,修改程序并验证结果
⑵、给计算机"减负"--减少循环,提高算法效率
㈣、学生展示自己的程序并进行讲解
确定两个循环变量x(1-16)和y(1-20),z的值直接由方程一得出z=30-x-y,判断条件为30 * x + 25 * y + 10 * z = 500 ,同样的道理,可以将循环变量改为其它两个。
Dim x as integer, y as integer , z as integer
For x=1 to 16
For y = 1 to 20
z=30-x-y
If 30 * x + 25 * y + 10 * z = 500 then
list1.additem x,y,z
End if
 next y
Next x
教师提示:在这道题目里循环变量的设置可以是三个,也可以是两个。想一想,能不能改变找水仙花数的循环变量,使其得到不同的程序?答案是肯定的!
九、作业
将找到的解决鸡兔同笼问题的算法用程序实现。
将找水仙花数的算法用程序实现。
[参考资料]
盛群力:《教学设计》,浙江教育出版社2004年版。
胡济良 李尚仁:《高中技术课程标准教师读本》,华中师范大学出版社2004年版。




1



相关主题
文本预览
相关文档 最新文档