高中信息技术 算法与程序设计-递归算法的实现教案 教科版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
递归算法的实现
【基本信息】
【课标要求】
(三)算法与问题解决例举
1. 内容标准
递归法与问题解决
(1)了解使用递归法设计算法的基本过程。
(2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。
【教材分析】
“算法的程序实现”是《算法与程序设计》选修模块第三单元的内容,本节课是“递归算法的程序实现”,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序以及本节的前一小节知识点“什么是自定义函数”的学习,在学习自定义函数的基础上,学习递归算法的程序实现是自定义函数的具体应用,培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。
『递归算法在算法的学习过程中是一个难点,在PASCAL和C语言等程序语言的学习过程中,往往是将其放在“函数与过程”这一章节中来讲解的。递归算法的实现也是用函数或是过程的自我调用来实现的。从这一点上来讲,作者对教材的分析与把握是准确的,思路是清晰的,目标是明确的。』
【学情分析】
教学对象是高中二年级学生,前面学习了程序设计的各种结构,在学习程序设计各种结构的应用过程中培养了用计算机编程解决现实中问题的能力,特别是在学习循环语句的过程中,应用了大量的“递推”算法。前一节课学习了如何自定义函数,在此基础上学习深入学习和体会自定义函数的应用。以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程。多维度的思考问题和解决问题是提高学生的学习兴趣关键。
『递归算法的本质是递推,而递推的实现正是通过循环语句来完成的。作者准确把握了学生前面的学习情况,对递归算法的本质与特征也分析的很透彻,可以说作者对教学任务的分析是很成功的,接来就要看,在成功分析的基础上作者是如何通过设计教学来解决教学难点的了。』
【教学目标】
知识与技能:
理解什么是递归算法,学生会用递归算法的思想分析问题
能够应用自定义函数方法实现递归算法的编程
过程与方法:
学生参与讨论,通过思考、动手操作,体验递归算法的方法
情感态度与价值:
结合数学中的实例,激发学生的数学建模的意识,培养学生多维度的思考问题和解决问题。
『教学目标设计的合理、准确。这也是在意料之中的,一般情况下,成功的教学任务分析一定会带来成功的教学目标设计。』
【重点难点】
重点:理解什么是递归算法,学生用递归算法的思想分析问题;
应用自定义函数方法实现递归算法的编程
难点:应用自定义函数方法实现递归算法的编程
『大部分教师在确立教学重、难点时不会给出确立的依据,可能这些依据早就在教师的脑中明确了,也有可能是一笔糊涂账,只不过是教参上是这样写的就照搬过来而已。
如果在写教学重、难点的同时能再给出确立重、难点的依据会令教案更具借鉴意义。本案例的作者虽然没有写依据,但由于前面成功的教学任务分析,也就自然确立了教学重、难点。这也是很好的。』
【教学过程】
【教学反思】
从游戏的方式导入活动,充分的调动学生的思维,渐渐的走入了“递归的思维”模式,从而引出“猴子吃桃”,使用的前面活动(礼物是什么?)的思维,诱导学生进入了“递归”思想解题。学生阅读教材范例“裴波那契”,培养学生的自学能力和知识迁移建构自我的知识体系。内化递归算法的实现,再由递归思维的逆向思维讨论“递推”的算法,进行比较计算机资源的耗费高,可读性差。为下一步导出结论做好了铺垫。
学好本节课的前提是:懂得自定义函数的使用方法,学生对自定义函数的理解程度,是本节课效果是否得以完成的关键。
【案例分析】
本案例语言流畅,结构清晰,对教材与学情的分析准确、到位,对教学目标和教学重、难点设计准确、合理。本案例覆盖的是程序设计中“递归法与问题解决”这一知识点,适合用于这一知识点的第一节课。
本案例能够通过“活动”的形式,使学生了解使用递归法设计算法的基本过程,使学生能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。
本案例能够通过“活动”(或游戏)的方式来导入教学,展开教学。而且能关注到培养学生自主学习探究能力的培养,并通过降低讨论问题的复杂程度和图示的方法来引导和帮助
学生进行思考。再通过同一问题用不同算法来实现后的比较,来带领学生总结递归算法的优缺点。这些都是在比较难的算法教学内容的教学过程中,突破教学重难点的好的方法,很值得大家借鉴。
建议,在不同算法解决同一问题的比较设计中,能够更为详细的进行描述,并能给出整节课的时间安排,会增加本案例的可借鉴性。
【专家点评】
作者创设的“猜想游戏”情景,与递归算法有较高的关联性,而且长短适中,有助于学生迅速进入情景,进而通过引出“自定义函数”巧妙地引导学生走出情景。经过教师的精心设计,学生在较短的时间内就为递归算法做好了移植准备。
递归算法有一定的难度,对逻辑思维能力要求较高,如果选择切入的问题过于复杂,学生容易产生畏难情绪。教材中选用的“兔子问题”是一个经典的递归问题,但问题分析的复杂度较大,花费的学时较多。作者并没有拘泥于教材,而是精心设计任务调整难度,选择了相对简单的“猴子吃桃问题”作为学习递归函数的切入点,在难度上较为贴近学生的实际水平。另一方面,算法的内容大多很枯燥,不易调动学生兴趣,而“猴子吃桃问题”既生动又贴切,容易激发学生的兴趣,让学生在解决问题的过程中充分感受算法的魅力,获得成就感。作者对教材的处理,可谓之“依据教材又超越教材”,既保留了教材的精华,又通过适当的调整满足了学生的实际需求,带领学生由浅入深地接触到递归算法。在此过程中,采取的学习方法也有所改变,让学生通过自主探究来掌握相关内容,促进学生知识迁移和自我构建能力的提升。作者的设计可谓独具匠心。
值得商榷之处,所设计的教学内容用一个课时来完成,时间非常紧迫,特别是“自主构建”环节,需要一定的自主探究和教师讲解的时间。