高中信息技术《递归算法与递归程序》优质课教学设计教案.docx
《高中信息技术《递归算法与递归程序》优质课教学设计教案.docx》由会员分享,可在线阅读,更多相关《高中信息技术《递归算法与递归程序》优质课教学设计教案.docx(11页珍藏版)》请在冰豆网上搜索。
高中信息技术《递归算法与递归程序》优质课教学设计教案
《递归算法与递归程序》教学设计
一、教学目标
1、知识与技能
1)能够从思想和特点上理解什么是递归算法
2)学会分析问题,能够建立合理的的递归数学模型
3)能够自主设计递归函数解决实际问题
2、过程与方法:
1)通过分析身边的实例,理解递归算法的思想和特点
2)通过通过层递的案例,理清递归法解决问题的过程
3、情感态度与价值观:
1)通过实际问题的解决,激发学生数学建模的意识和设计方法
2)通过学习新的思维方式,培养学生多维度思考和解决问题的意识
3)通过对递归算法解决问题的效率分析,使学生能更全面的认识和
理解递归算法二、教学重点与难点
1、教学重点
1)理解什么是递归算法
2)能够建立合理的的递归数学模型
3)能够设计递归函数解决实际问题
2、教学难点:
1)能够建立合理的的递归数学模型
2)能够设计递归函数解决实际问题
三、教学方法
主要采用讲授法、演示法、案例分析法、任务驱动法。
四、教学过程
教学环节
教师活动
学生活动
设计意图
<导入新课>:
1、同学们平时照镜
思考问题并回
从学生身边的事例
入手,学生易于理解。
从照一面镜子到照
。
通过“像中像”现
子吗?
能看到什么现
答
象,引入本节课
象?
观看“像中像”
2、试过站在两面镜
现象图片展示
子中间照镜子吗?
能
两面镜子,能激发
看到什么现象?
3、放映2张“像中像”
学生的兴趣。
通过对“像中像”照
照片,“像中像”现象
片的观摩欣赏,让
就是一种类递归现象
学生从感性上初步
了解了递归现象是
极具美感的。
对“像中像”现象的
分析及感性体验,
顺理成章的过渡到
本节课对递归算法
的学习。
<讲授新课>:
1、让学生演示常用
报数方式。
引导学生
第1组:
由4
递归法,相对于学
|
分析得出答案的过程
位女生演示。
让4号同学分析自己得出答案的过程。
第2组:
由4
位男生演示
让4号同学分析自己得出答案的过程。
生来说是比较抽象
轻松一刻:
引出递推思想。
的,通过学生的两
“报数游戏”
2、让学生演示一种
种演示、分析,能让
另类的报数方式。
引
学生从感性上对递
导学生分析得出答案
归思想有一个形象
的过程。
引出递归
的认识,从而能够
思想。
更好的展开本节课
的学习。
<讲授新课>:
|
1、递归定义
呈现递归定义,简单
讲解定义。
倾听、分析思考
递归算法:
是指在函
数(或过程)定义中
通过展示递归定义
让学生从概念上明
又调用函数(或过程)自身的方法。
即自己调用自己。
递归,顾名思义,其包含了两个意思:
递和归
确什么是递归,为下一步分析实例,进而理解递归思想做准备。
<讲授新课>:
1布置探究任务:
分析思考回答问题
设计数学模型分析案例1程序
Functions
该案例与报数游
|
有5个人坐在一起
戏思路完全一致,
小试牛刀:
问第5个人多少岁
学生很容易找出关
案例1
他说比第4个人大2
系式,建立数学模
“年龄问题”
岁;问第4个人多少
型。
岁,他说比第3个人
通过进一步分析递
大2岁;问第3个人
归函数,让学生理
多少岁,他说比第2
个人大2岁;问第2个人多少岁,他说比第1个人大2岁;最后问第一个人多少岁他说是10岁,请问第5个人多少岁?
(byvalnasinteger)AsInteger
Ifn=1thens=10
else
s=s(n-1)+2
解什么是自身调用自身?
什么是递和归?
2引导学生分析设计
数学模型
endif
Endfunction
3引导学生分析递归函数,理解小结递归
思想的内涵。
有去有回才是递归。
递归问题必须可
观摩分析
倾听讲解
<讲授新课>:
|2:
递归思想的
内涵:
以分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决,当问题足够小,直接给出解答,然后层层返回,随着子问题的逐步解决,最终大问题随之得到答案。
在函数实现时,因为解决大问题的方法和解决小问题的方
法是同一个方法,所
与老师互动
理解递归解决问题的思想过程
理解递归思想的核心就是有去有回
通过案例1的学习分析,了解了递归思想,进而以归纳的方式展示递归思想的内涵,有助于学生更好的把握递归思想。
以就产生了函数调用它自身的情况
<讲授新课>:
|
辩一辩:
1案例展示:
“老和尚讲故事”;“钥匙开门”问题
2问题:
1)这两个例子是不
是递归调用?
2)如何把第2个例子修改为递归调用?
分析探究回答问题
通过让学生辨析两个问题,能更好的理解递归思想,理解什么是“有去有回”。
<讲授新课>:
|
学以致用:
1案例展示:
“兔子问题”:
假定小
兔子一个月就可以长
分析思考探究问题
建立数学模型
在前述学习基础上
学生对递归思想有了一定了解,通过
案例2:
“兔子问题”
成大兔子,而大兔子每个月都会生出一对小兔子。
如果年初养了一对小兔子,问到年底时将有多少对兔子?
2学生建立数学模型
3尝试写出递归函数
4观察非递归程序和递归程序,分析哪种方法编程解决问题更简洁易懂。
尝试写出递归函数
对比分析解决兔子问题的两个程序,回答问题
让学生尝试自主分析探究较复杂的问题,提升学生学以致用解决实际问题的能力。
通过对比分析非递归和递归程序,让学生能够理解递归法的特点,尤其是递归法解决问题简洁易懂的特点。
<讲授新课>:
|
1、特点展示:
(1)递归就是在自定
结合前述案例
理解识记
通过对前面案例的
分析学习,学生对
3:
递归算法的特点:
义函数或过程中调用自身。
(2)在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3)递归算法解题通常简洁易懂。
(4)递归算法的实质是把问题转化为规模缩小了的同类问题
2特点讲解
掌握递归算法的特点
递归法的特点已有所了解,由案例到结论,使学生对递归法有了进一步的了解,更有助于学生理解及应用递归法解决问题。
1展示金盘移动规则:
在移动金盘时遵守下
分析思考探究
问题
通过让学生尝试用
递归法解决非常复
面3条规则:
建立数学模型
杂的问题,使学生能够体验到用递归法解决实际问题的简洁易懂且极具美感的优势。
。
第一,一次只能移动
一个金盘。
尝试写出递归
函数
<讲授新课>:
|
拓展提升:
第二,每个金盘只能由一根宝石柱移到另
外一根宝石柱。
交流回答递归法解决一些复
杂问题的优势
案例3:
汉诺塔问题
第三,任何时候都不能把大的金盘放在小
的金盘上。
2学生建立数学模型
3尝试写出递归过程
4分析递归法在解决一些复杂问题的优势
1问题展示:
探究1):
分析报数游戏中两种报数方法的效率?
探究2):
程序运行效率分析?
2运行以下3个程序
观察运行效率:
兔子问题非递归程序
兔子问题递归程序汉诺塔问题递归程序
3交流思考:
为什么
递归程序运行效率低
回顾报数游戏,回答问题
观察3个程序不同规模的运行时间,比较递归程序与非
,
递归程序的运行效率。
交流思考问题
?
借助于两组报数游
戏,能够让学生更
直观的得出效率高
<讲授新课>:
低的比较;
|
通过运行程序,求
4:
递归算法的
解不同规模的问题
效率分析:
很容易比较运行效
率高低。
这样便自然而然地
过渡到探讨递归程
序运行效率低的问
题。
4、递归算法效率分
析:
1)递归算法解题通常简洁易懂,极具美感但在程序运行过程中存在着大量重复的函数调用,耗费了计算机时间和资源,所以递归算法解题的运行效率较低。
2)在递归调用的过程中系统会为每一层的返回点、局部量等开辟栈来存储。
递归次数过多容易造成栈溢
,
理解识记
与老师一起探讨递归算法效率低的深层次原因。
引领学生从原理上分析造成递归算法效率低的原因。
针对递归算法既简洁优美又效率较低的问题,引导学生从两个方面全面的认识这种神奇的算法—递归法。
<讲授新课>:
|
5:
递归法解题小结:
1)明确递归终止条件
2)给出递归终止时的处理办法;
3)找出递推关系式不断缩小问题规模。
递归法编程模型:
functionf(大规模)if结束条件then
给出答案
else
通过含f(小规模)的递推式,缩小规模endif
endfunction
;
师生一起总结,学生理解识记,学会应用
通过对前述案例进行小结,理清用递归法解决问题的思路,构建出递归法编程模型,以更好的指导应用。
<随堂练习>
布置课堂练习:
1、求n!
问题
Functionf(ByValnAsInteger)
Ifn=0orn=1Then
f=1Else
f=
EndIf
EndFunction
2、猴子吃桃:
每次吃掉一半多一个,直
学生完成练习回答问题
通过两个层递的练习任务,可以检验学生学以致用的能力。
到第10天只剩一个第一天共摘了多少个桃子?
Functiongtao(ByValdayAsInteger)
Ifday=10thentao=1
Else
tao=
,
Endif
Endfunction
1:
递归定义:
:
学生自我总结
:
:
<课堂总结>:
2:
递归思想的内涵
3:
递归算法的特点
通过学生自我总结
可以评价学生本节
4:
递归算法的效率
课的学习情况。
分析:
5:
递归法解题小结