《递归算法与递归程序》教学设计
一、教材分析
“递归算法与递归程序”是广东教育出版社《算法与程序设计》选修1第四单元第五节的内容,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序,且在第二章中学习了自定义过程与函数。在前面学习的基础上,学习递归算法的程序实现是自定义函数的具体应用,在培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。
二、学情分析
教学对象是高中二年级学生,前面学习了程序设计的各种结构与自定义函数(过程)及常用基础算法,在学习程序设计各种结构的应用过程中,培养了学生用计算机编程解决现实中的问题的能力。在学习循环语句的过程中,应用了大量的“递推”算法,在第二章中,学习了如何使用自定义函数,在此基础上深入学习和体会自定义函数的应用,以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程。多维度的思考问题和解决问题是提高学生的学习兴趣关键。
三、教学目标
知识与技能:
1、理解什么是递归算法,学会递归算法的思想分析问题
2、能够应用递归算法编程处理实际问题
过程与方法:
学生参与讨论,通过思考、动手操作,体验递归算法的方法
情感态度与价值观:
结合数学中的实例,激发学生使用数学知识建模的意识,培养学生多维度的思考问题和解决问题。
四、教学重点与难点
重点:理解什么是递归算法
难点:学生用递归算法的思想分析问题
五、教学过程
进程
教师活动
学生活动
设计意图
创设情境
课堂导入:
师:今天我们先做一个小的智力题目
有4个人排成一队,问最后一个人的身高时,他说比第3个人高2厘米;问第3个人的身高时,他说比第2个人高2厘米;问第2个人的身高时,他说比第1个人高2厘米;最后问第1个人的身高,他说是170厘米,请问:第4个人的身高是多少?
?学生:176厘米
师:如何得出的呢?
结论:H4=H3+2=(H2+2)+2=((H1+2)+2)+2
10477525400Hn=H(n-1)+2
H1=170厘米
1483995286385
H4 176
333375269875=H3+2
1663065247650
H3 174
=H2+2
7905751270
1975485252730
H2 172
=H1+2
147637560960
H1=170
?
?
?
?
师生共同活动找出递变规律
并将算法描述
使用情境教学法
在此活动过程中能让学生初步从活动中体验“问题的发与收”从而走进了递归的思维模式,为进一步学习递归算法埋下伏笔
学习新知
任务1
上台阶:
10级台阶每次可上1级或2级,有多少种上法?
基本情况描述
1级台阶 1 1种
2级台阶 1+1 ,2 2种
3级台阶 1+1+1,1+2,2+1 3种
…… …… ……
10级台阶 ?
分析:如何使问题简单化,若对第一步进行分析,则有两种情况:
假设第一步上1级,则余n-1级。
假设第一步上2级,则余n-2级。
设Sn 为n级的上法,则有:
Sn=S(n-1)+S(n-2) (n>=3) 递推
S1, S2 ,……=? 返回
1 2 3 4 5 6 7 8 9 10
1 2 3 5 8 13 21 34 55 89
任务2
算法描述(由学生完成)
评价与展示:评价与展示学生任务,最后展示参考流程图与程序代码
拓展
1若10级台阶每次可上1级或2级或3级,又有多少种上法?
基本情况描述
1级台阶 1 1种
2级台阶 1+1 ,2 2种
3级台阶 1+1+1,1+2,2+1,3 4种
…… …… ……
讨论、比较、分析、归纳
?
?
?
?
?
?
?
?用数据方法推导解决过程,建立解决问题的数学模型(建模)
实例教学。
选择“上台阶”这一实际问题。该问题使用常规方法(通常用枚举方法)分析与解决较为复杂,但使用递归方法,问题可以轻松解决,从使得重点难点得以轻松的突破。
??
?
??
?
课堂小结
我们今天所学习的算法是“递归算法”,我们谈谈什么是递归算法,递归算法有什么特点。
师生讨论,共同小结:
1、递归算法是数值层层调用实现的,当达到最底层后,再将值层层向上返回。(递下去,收回来,简称:递归)
2、必须有个递归结束条件(有个该收回来的条件确定的值)
巩固和发展本节课的学习内容。
六、教学反思
从生活中的问题导入主题,充分的调动学生的思维,渐渐的走入了“递归的思维”模式,从而引出“上台阶”,使用的前面活动的思维,诱导学生进入了使用“递归”思想解题,培养学生的自学能力和知识迁移建构自我的知识体系的能力。