《递归算法与递归程序》(一)教学设计
一、教材分析
“递归算法与递归程序”是广东教育出版社《算法与程序设计》选修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)+2Hn=H(n-1)+2H1=176厘米H4 176=H3+2 H3 174 =H2+2H2 172 =H1+2H1=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=Sn-1+Sn-2 (n>=3) 递推S1, S2 ,……= 返回1 2 3 4 5 6 7 8 9 101 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、必须有个递归结束条件(有个该收回来的条件确定的值) 巩固和发展本节课的学习内容。
拓展资源 主题网站
六、教学反思
从生活中的问题导入主题,充分的调动学生的思维,渐渐的走入了“递归的思维”模式,从而引出“上台阶”,使用的前面活动的思维,诱导学生进入了使用“递归”思想解题,培养学生的自学能力和知识迁移建构自我的知识体系的能力。