《算法与程序设计的递归算法与递归程序》说课稿
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法与程序设计的递归算法与递归程序》说课稿
一、说教材
(一)说教材的地位和作用
本节课内容选自粤教版《算法与程序设计》选修1中第四章第五节,隶属程序设计方法的范畴。本节课是对第四章中前四节内容的拓展,旨在让学生对算法与程序实现有一个更进一步的认识,了解递归算法与递归程序是可以解决数学中递归问题的一个重要方法,体验利用递归算法设计简单程序解决当前的一些数学问题,并学会正确评价如何利用计算机算法与程序设计解决数学问题。通过这一节的学习,不仅提高了学生利用计算机的能力,也为他们在日后的学习、工作和生活提供了一种新的方式。
(二)说教学目标
根据对教材内容、教学大纲及学生自身认知水平的分析,本节课的教学目标从以下三个方面来确定:
1、知识目标
(1)了解什么是递归算法,体验递归算法解决数学问题。
(2)了解递归算法程序设计的一般过程。
2、能力目标
(1)理解递归算法的概念及递归停止的条件。
(2)正确评价使用递归算法和递归程序设计对学习数学的帮助。
(3)能自行摸索研究更多递归算法用于解决学习和生活中的问题。
3、情感目标
(1)培养学生自主学习新知识的能力。
(2)培养学生对递归算法的兴趣。
(3)培养学生的算法及程序设计素养。
(三)确定教学重点、难点
1、教学重点:体验递归算法解决数学问题的高效及递归程序的编写;
2、教学难点:递归算法的递归公式及递归终止条件;
3、教学重点、难点确定的依据:
由于学生之前已经具备了简单的程序设计基础,虽然也做了一些简单的练习,了解了计算机可以编程解决很多数学问题,但是除了前面的一些穷举、查找、排序算法外,他们还需要进一步的学习递归算法,因为递归算法也是计算机编程中的基本算法,但是如何掌握递归算法的实现及如何用程序来处理递归问题,他们还需要学习相关的知识及技巧,如递归时的调用问题,递归公式的编写,何时能停止递归等。因此确定体验递归算法解决数学问题的高效及递归程序的编写为本节课的教学重点,确定递归算法的递归公式及递归终止条件为本节课的教学难点。
(四)课型及课前准备
1、本节课为半理论、半实践、新授课
2、课前准备
(1)硬件:多媒体机房,投影仪、功放音响
(2)软件:课件、VB、交互式多媒体教学软件、三个任务描述(五)课时数:1节课
二、说学情
本节内容是安排在高二下学期进行教学,该级学生之前学习了第四章
前四节的内容,对算法与程序实现中的一些简单算法知识有一定程度的了解,对函数调用也已经掌握,但对什么是递归算法没有一个系统的认识,所以,对即将学习的递归算法与递归程序有一定的兴趣。通过对该教材前面章节的学习已经培养了他们对计算机编程的兴趣,所以整体学习的积极性是比较乐观的。
三、说教法
在教学过程中,采用范例教学法、体验法、小组合作法、自主探索法。
1、范例教学法
教师讲解分析教材提供的斐波那契的兔子问题,根据教材的打表方式,让学生观察数据变化关系及规律,再按照设计算法的一般步骤(分析问题,设计算法,编写程序,调试程序),写出递推公式(后面用的递归公式),再根据公式及编程的要素编写程序,在编写程序中强调函数Fib()的自身调用意义即为递归调用(函数自己调用自己)。
通过这个完整的范例,让学生能从这一典型的范例中获取递归算法及程序设计的基本方法。
2、体验法
学生结合教师的示范演示,亲自动手操作,去体验递归程序的编写调试,从而掌握递归调用的要点、掌握递归如何不死循环有条件停止的一般方法。
3、小组合作法
通过分组任务驱动,小组内组员的相互交流及组与组之间的交换算法,培养学生分组协作的良好习惯。
4、自主探索法
学生在结合教师的示范,亲自体验之后,对递归编程有了一定的了解。这个时候再让学生自己借助网络查找关于斐波那契数列的相关知识,有意识地培养学生自主学习、自主探索的能力。
四、说学法
根据建构主义理论,教师与学生,学生与学生之间需要共同针对某些问题进行探索,并在探索的过程中相互交流和质疑。本节课以培养学生自主学习能力为出发点,重在培养学生自主、合作、探究的学习方法。教师在学生学习的过程中,对学生的学习方法进行适时恰当的指导。
五、说教学过程设计
1、创设情境,导入新课
教师利用课件展示相关递归图形及动画引出递归概念,激发学生兴趣,铺垫学习氛围,明确本节课的学习任务,有效激发学生的求知欲。
2、范例教学递归算法程序设计的一般过程
知识铺垫:让学生阅读教材P132页第二行~第四行关于递归的概念及应用。(投影)
在数学学习中我们曾学习了数列,但是在中学阶段,根据大纲只学习了等比和等差数列,今天,我们就来学习一个特殊的数列:斐波那契数列。
示范教材中斐波那契的兔子问题的求解过程:
(1)根据问题,投出问题列表4-3
(2)引导学生仔细观察表中数据的关系及规律
(3)让学生回顾前面关于算法的解决步骤。让学生将新旧知识相结合,有利于知识的迁移,加深记忆。
(4)让学生写出通式(递推式也是后面用到的递归公式)
3、体验斐波那契数列的前12项的算法程序设计
(1)让学生完成教材P133的编写程序及调试程序,通过自己的实际编写及调试掌握递归程序编写要点,加深对斐波那契数列的认识。
(2)提问学生该程序的递归是在何处产生的?让学生能分析何为递归调用。(自己调用自己)
(3)提问学生该数列程序的终止条件是什么?(N<3)
(4)让学生阅读递归算法特点:P133倒数第六行~结束(投影)
4、布置任务,小组合作与自主探究
为了让学生更加深刻地掌握递归算法的简单运用,教师把学生按就近原则分成三个学习小组;每个小组分配不同的任务,第一小组的任务是:用辗转相除法求最大公约数(该问题是他们上学期学习的数学知识);第二小组的任务是求N!,N<=10;第三小组的任务是求3N+1猜想(附问题描述)。
在学生完成任务的过程中,教师进行巡视,并根据各组的实际情况给予相应的指导,及时解决学生在操作过程中存在的问题。并对学生的提问进行解答。对完成任务快的组员要求他们上网查找有关斐波那契数列的相关资料。培养他们学以致用的创新和探索能力,将培养学生的信息素养的教学目标贯穿于课堂。
在本环节采用组内合作、组间竞争的方式去探究任务,最快完成任务的小组代表上讲台展示讲解完成任务及代码。小组代表展示完之后,其他小组可以进行补充。这种合作加竞争的学习方式不仅可以激发学生完成任务的积极性,还可以拓宽教学内容,同时也有利于培养学生的竞争合作意识和团队合作的精神。