
教学设计 课程基本信息 学科 信息技术 年级 高二年级 学期 秋季 课题 《递归》 教科书 书 名:信息技术选择性必修1《数据与数据结构》 -出卷网-:广东教育-出卷网- 教学目标 1.理解递归算法的概念、基本思想及其编程实现原理。 2.学会分析并建立合理的递归数学模型。 3.通过阶乘、斐波那契数列的案例,理清递归算法解决问题的执行过程,能够自主设计递归函数解决实际问题。 教学重难点 教学重点: 1.递归算法的基本思想及其编程实现原理。 2.递归算法数学模型及其程序结构。 3.python编程递归算法的实际应用。 教学难点: 1.递归算法数学模型及其程序结构。 2.python编程递归算法的实际应用。 教学过程 一、导入新课 播放一个简单易懂的生活情景动画《电影院找座位》,引入递归的概念。 (一)教师:看完了动画,同学们发现了什么特点吗? 实际上,电影院找座位的过程就是一个递归的过程,当你问前一排观众,前一排的观众又继续向前问,这个过程我们叫做“递”,即把问题不断分解为可操作性的小问题。第一排的观众可以直接得到答案后,接下来要把答案传递给第二排的观众,去解决他的问题,第二排的观众计算出自己的排数后再传递给第三排,以此类推,直到传递回自己的位置,这个过程我们叫做“归”,即把小问题的结果返回给大问题,达到最终目的,整个过程连接在一起,就叫做“递归”。其中,在分解的过程中,一直到第一排就结束了,它已经到尽头了,不能再往前推了,我们把它称之为递归终结条件,或递归出口。中间的每一个环节都叫做递归的公式。 (二)总结递归的概念:大问题的解决中嵌套着与原问题相似的规模较小的问题,这种问题的解决方法在计算机科学中称为递归,它通过函数自己调用自己来实现,即一个函数在其定义中直接或间接调用自身的一种方法。 讲授新课 (一)通过阶乘的例子,理解递归算法的执行过程。 1.通过阶乘的定义引导学生写出阶乘的函数关系式,并分析里面包含的递归规律: 当n=1时,f(n)=1(递归结束条件),当n>1时,f(n)=n*f(n-1 )为递归公式,再进一步引导学生写出阶乘问题的递归程序代码: def f (n): if n == 1: return 1 else: return n* f(n-1 ) print(f(5)) 2.通过动画演示程序在计算F(5),即5的阶乘运算的全过程,演示完动画后,再总结递归的执行过程,就是指在递归终止条件满足之前,层层推下去,在递归终止条件满足之后,再层层回归的全过程,以此加深学生对递归的理解。 3.实操演示。 (二)以斐波那契数列为例,体验递归算法实现的整个过程。 1.分析斐波那契数列数列的来源:斐波那契是意大利数学家,他提出了一个有趣的兔子繁殖的问题:一对刚出生的小兔子,一个月后就能成长为成年兔,再过一个月后(即第三个月起),就每月生一对兔子。新生的兔子也按这个规律繁殖。现在仅有一对刚出生的小兔子,问在没有兔子死亡的情况下,一年后总共繁殖成多少对兔子。根据题意,通过一个图来模拟演示,前几个月兔子的繁殖情况,并汇总成表格,如下图所示: 2.通过这个表格数据,引导学生发现规律,逐步建立递归算法的数学模型。 教师:请同学们思考一下,通过这个表格,可以发现每个月兔子数量之间有什么关系呢? 学生:老师,通过观看表格中的数据,可以发现,兔子的数量随着时间增长的越来越多,而且每个月的大兔子数量一定等于上个月的兔子总数,,,,而每个月的小兔子数量一定等于上个月的大兔子数量,也就是前一个月的兔子数量总和。从第三项开始,后面的数总是等于前两个数之和。 教师:由表格可知,当n=1时,f(n)=1,当n=2时,f(n)=1,当n>2时,f(n)=f(n-1) + f(n-2),其中,当n=1时,f(n)=1,当n=2时,f(n)=1,为递归终止条件,当n>2时,f(n)=f(n-1) + f(n-2)为递归公式。 由此,可以 ... ...
~~ 您好,已阅读到文档的结尾了 ~~