视频标签:算法与程序设计,用穷举法,解决问题
所属栏目:信息技术优质课视频
视频课题:高中信息技术教科版《算法与程序设计》选修一 用穷举法解决问题 -湖北
教学设计、课堂实录及教案:高中信息技术教科版《算法与程序设计》选修一 用穷举法解决问题 -湖北省宜都市第一中学
用穷举法解决问题
一、 教材分析
本节课选自教科版《算法与程序设计》第3章第2节的内容,主要内容是如何利用穷举法解决生活中的问题。通过本节课的学习,学生不仅能深刻体会到信息技术与现实生活的联系,还能培养学生的逻辑思维能力和利用编程解决问题的能力,为学生以后深入学习编程打下良好的基础。
二、 教学目标
1、知识与技能目标: (1)了解穷举法的概念
(2)了解了用穷举法设计算法的过程
(3)能够根据具体的问题的要求,使用穷举法算法编写程序求解问题。 2、过程和方法目标:
(1) 经历用穷举法求解问题的基本过程,发现穷举法的规律; (2) 运用观察、发现、归纳、应用的方法,发展学生的归纳思维。 3、情感与价值目标:
(1) 理解穷举法的意义,培养优化意识、责任意识和计算思维; (2) 关注编程在学习、生活中的应用,享受计算机解决问题的乐趣。 (3) 树立学生信息安全意识,培养学生健康使用信息技术的习惯。
三、 教学重点·难点
(1) 重点:理解穷举法的思想及其要素;穷举范围及验证条件的确定。 (2) 难点:穷举法的编程实现与优化。
四、 教学方法
在课程教学中依据多媒体课件演示法来创设情景,并加以任务驱动法和练习实践法来完成教学目标。学生则通过自主探究、观察发现、合作交流以及归纳总结来学习本节课内容。
五、 教学过程
教科版《算法与程序设计》第三章第二节
2
环节 教师活动
学生活动
设计意图 创设情境
问题情境:“五一” 小长假,我带着孩子至宜昌周边自驾游,没想到拿出搁置了很久的三位数字密码的行李箱,发现自己竟然忘记了开锁密码,只记得第一位密码是7,后面两位数字已经不记得了,我该怎么办?
探究:思考解决方案 (1)列举出所有的解 (2)验证是否是真正的解
实践:模拟找出密码
通过问题情境,引发学生思考,激发求知欲与好奇心,引出穷举法主题。
讲解概念 引入课题
总结:我们解决这个问题的算法称为“穷举法”,那什么叫“穷举法”?
展示:再给大家看一个数字,153
153==13+53+3
3
问题:请同学们找出所有的“水仙花数(三位数)”
(用自然语言描述算法)
总结:(1)列举出所有可能的解,共900个
100、101、102……999
(2)验证是否是真正的解
如100=13+03+03
是否成立
101=13+03+13
是否成立
提问:刚才我们用人脑穷举来解决了这个问题,在
这个过程中我们要运算多少次?我们还可以使用什
么快捷的方法来解决此问题?
回答:根据解题的方法总结出穷举法概念。 注意点: 既不遗
漏、也不重复。
回答:900次,可以通过
编写程序的方法解决。 学习穷举法的概念,构建理论知识框架。
让学生了解人用穷举算法解决题的过程,然后过渡到计算机用穷举法解决问
题
师生共同探究
师:既然可以用编程来解决这个问题,那么我们怎么来设计解决这个问题的算法?
师:针对学生提交的两种设计思路进行讲解。 讲解:
思路一:已知数X,如何分离出百位、十位、个位上的数字
a = X \ 100
b = ( X – a * 100 ) \ 10
c = ( X – a * 100 - b * 10 ) \ 1
设计算法:学生通过自主或合作探究设计算法
难点:学生如何分离各位数字。
在这个过程中在老师引导下,学
生通过主动或合作探究完成算法的设计。提供给学生学对应的程序代码,由学生补充完完整,并调试运行。
Private Sub Command1_Click() Dim X As Integer Dim a, b, c As Integer For X = To a = b = c =
If X = Then Print X & "是水仙花数" End If Next X End Sub
思路二:已知各位数a,b,c, a*100+b*10+c=a^3+b^3+c^3 提供给学生学对应的程序代码,由学生补充完完整,并调试运行。
Private Sub Command1_Click() Dim X As Integer Dim a, b, c As Integer For a = To For b = To For c = To X =
If X = Then Print X & "是水仙花数" End If Next c Next b Next a End Sub
巡视,总结学生编写程序过程中出现的问题 总结注意事项并进行对比:
1.有需要穷举的求解对象(循环结构及循环层数) 2.有明显的穷举范围,即穷举对象是有限的
(循环的初值和终值)
3.有验证条件(循环体内条件语句)
在老师引导下用正确的程序结构和语句实现算法。
学生对比两种思路的不同地方,总结穷举法解
决问题的规律,并补充完整思路二对应的程序。
能够通过自主或合作探究完善程序代码,并在教师的引导下总结出穷举法的规律。
教科版《算法与程序设计》第三章第二节
4
知识巩固深化
展示问题:
中国古代数学家张丘建在《张丘建算经》中提出一个问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡。问鸡翁、母、雏各几何?”。
展示有问题的算法分析: Dim x,y, z As Integer For x = 1 To 20 For y = 1 To 33
For z = 1 To 100 If (5 * x + 3 * y + 1 / 3 * z = 100) And (x + y + z = 100) Then Print x, y, z End If Next z Next y Next x End Sub
通过自主探究、合作学习的方式完成问题的算法分析并完成程序。
发现问题:修改程序,并能够得出结论:应尽可能的减少穷举的范围
和不必要的穷举,这是优化穷举算法的关键。
这个程序由学生独立或和其它同学合作完成,学生在这个过程有效学会知识的迁移。
在这个过程中老师没有完全放手,而是根据学生的探究结果,加以分析,学生自己得出结论,教师起一个引导作用。
课 堂 实 践 编程实现“百钱买百鸡”问题。
巡视,总结学生编写程序过程中出现的问题
学生的能力进一步提高 基于课上已经掌
握的知识,对学生的能力提出更高要求
课堂小结
(1)用穷举法解决问题的三个关键点。 (2)穷举法的优化方法。 (3)信息安全意识。
回顾本节课重点内容,加深理解。
通过知识总结,帮助学生梳理本节课的重难点,便于理解记忆。
六、 教学反思
这节课以破解密码小程序引入,直接调动了学生的积极性,学生在热烈讨论的过程中自己感悟,主动探究,并讨论得出问题的解决方法(穷举算法),老师巧妙的引出课题“穷举法解决问题”,引导学生总结出“穷举法” 的概念。紧接着又展示“水仙花数”的问题,引导学生从人脑穷举解决问题到利用计算机解决问题的过渡。在程序实现这一过程中,通过学生的主动探究,师生共同探究总结出穷举法的规律。为了达到知识巩固的效果,出示百鸡百钱的问题,由学生独立或合作探究完成算法和程序的设计,并针对两种不同的算法和程序设计,总结出穷举算法优化的方法。本节课难度适中,过渡自然,内容逐步推进。在教学中,学生有激情,有思考,有实践,有成功,下课时意犹未尽,
教科版《算法与程序设计》第三章第二节
5
恋恋不舍。
发送半成品作品让学生完善也是本节课的一个特色。如果每段程序的每一步骤都让学生完成,效率太低,而发送半成品,则可以达到事半功倍的效果。
总体而言,这节课基本上符合我事先备课的预想。但是,也存在一定问题,我带的班级既有理科学生,又有文科学生,对于文科班的学生,感觉拿到题目,尽管已经知道算法思想,依然觉得无法下手,怎样让这些同学也能在课堂上编出一段程序来,这还需要在以后的备课中多下功夫多想方法。
视频来源:优质课网 www.youzhik.com