《2022年高中信息技术算法与程序设计-递归算法的实现教案教科版.docx》由会员分享,可在线阅读,更多相关《2022年高中信息技术算法与程序设计-递归算法的实现教案教科版.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 学习必备 欢迎下载递归算法的实现【基本信息】作者课时1 课时单位【课标要求】(三)算法与问题解决例举 1. 内容标准 递归法与问题解决(1)明白使用递归法设运算法的基本过程;(2)能够依据具体问题的要求,使用递归法设运算法、编写递归函数、编写程序、求 解问题;【教材分析 】“ 算法的程序实现” 是算法与程序设计选修模块第三单元的内容,本节课是“ 递归 算法的程序实现”,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序以及本节的前一小节学问点“ 什么是自定义函数”的学习, 在学习自定义函数 的基础上, 学习递归算法的程序
2、实现是自定义函数的具体应用,培育同学“ 自顶向下”、“ 逐步求精” 的意识起着重要的作用;递归算法在算法的学习过程中是一个难点,在PASCAL和 C语言等程序语言的学习过程中, 往往是将其放在“ 函数与过程” 这一章节中来讲解的;递归算法的实现也是用函数或是过程的自我调用来实现的;从这一点上来讲,作者对教材的分析与把握是精确的,思路是清楚的,目标是明确的; 【学情分析】教学对象是高中二年级同学,前面学习了程序设计的各种结构,在学习程序设计各种结构的应用过程中培育了用运算机编程解决现实中问题的才能,特殊是在学习循环语句的过程中,应用了大量的“ 递推” 算法;前一节课学习了如何自定义函数,在此基础
3、上学习深化学习和体会自定义函数的应用;以递推算法的逆向思维进行求解问题,在学习过程中体会递归算法的思想过程;多维度的摸索问题和解决问题是提高同学的学习爱好关键;递归算法的本质是递推,而递推的实现正是通过循环语句来完成的;作者精确把握了同学前面的学习情形,对递归算法的本质与特点也分析的很透彻,可以说作者对教学任务的分析是很胜利的, 接来就要看, 在胜利分析的基础上作者是如何通过设计教学来解决教学难点的了;【教学目标】名师归纳总结 - - - - - - -第 1 页,共 7 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载学问与技能:懂得什么是递归算法,同学会用递归算法的思
4、想分析问题能够应用自定义函数方法实现递归算法的编程过程与方法 :同学参加争论,通过摸索、动手操作,体验递归算法的方法情感态度与价值:结合数学中的实例,激发同学的数学建模的意识,培育同学多维度的摸索问题和解决问题;教学目标设计的合理、精确; 这也是在意料之中的,一般情形下,胜利的教学任务分析肯定会带来胜利的教学目标设计;【重点难点 】重点: 懂得什么是递归算法,同学用递归算法的思想分析问题;应用自定义函数方法实现递归算法的编程难点: 应用自定义函数方法实现递归算法的编程大部分老师在确立教学重、难点时不会给出确立的依据,可能这些依据早就在教师的脑中明确了, 也有可能是一笔糊涂账,只不过是教参上是这
5、样写的就照搬过来而已;假如在写教学重、难点的同时能再给出确立重、难点的依据会令教案更具借鉴意义;本案例的作者虽然没有写依据,但由于前面胜利的教学任务分析,也就自然确立了教学重、难点;这也是很好的; 【教学过程】进程老师活动同学活设计意图动创设课堂导入:师 生 共使用情境教学情境今日很兴奋, 特此我给大家预备了一份礼品(精致包法装猴与兔艺术品) ,你们想知道里面有什么礼物吗?在此活动过程同学:想 中能让同学初师:好!我们班有一位同学知道里面有什么礼物! 在步从活动中体上课之前事先告知其中的一个同学 但是他不能就这样告同 活 动验“ 问题的发诉大家,有一个规章可以让我们知道里面装的是什么 “找 答
6、与收” 从而走规章是:案”进了递归的思1. 从第一排的第一个同学开头;维模式,为进2. 每位同学只问他相邻的同学,每位同学最多只能被一步学习递归问一次, 而且一个同学不能再问其次人,当任何一个同学算法埋下伏笔知道了答案 , 要求立刻告知曾经问过他的那个同学 不能告知其他同学 以此类推;3. 始终到得出答案为终止;以嬉戏规章开展,我想让第一位同学告知大家,精装的礼物是什么?名师归纳总结 - - - - - - -第 2 页,共 7 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载这样的课堂导入方式是一种令人兴奋的方式;令人兴奋的缘由有两个:其一,以“ 活动”的方式来引导同学
7、探讨一个问题是同学们特别喜爱的方式,同学喜爱,就会产生剧烈的爱好,但仍不是学习动机;但由于“ 活动” 与“ 所要探讨的问题” 特别的贴切,是问题的典型代表,同学剧烈的爱好就会自然而然地转化为学习动机;这种学习动机的激发方式比我们直白地告知同学某某学问点有多么多么重要,有效的多,是我们需要努力借鉴并执之以恒的;我们肯定要好好学要来的自然其二, 由于递归算法的学习比较难,直接进行教学对同学的思维才能要求较高,往往达不到预想的成效; 但用新奇好玩的活动来引导同学在积极的参加过程中自然地摸索老师期望他们摸索的问题, 并体验问题解决的过程,就会获得较好的学习成效和较高的学习效率;以“ 活动” 的方式引导
8、教学的形式虽然很好,但也是比较难设计的;难就难在“ 活动” 的设计肯定要能充分恰当地展现要学习的内容和要探讨的问题;假如只是为了活动而活动,既铺张了珍贵的课堂教学时间,也降低了课堂教学效率,是特别不行取的;因此,胜利的活动设计对老师的要求很高,需要老师有扎实的学科学问功底和丰富的社会阅历;启示 师:前面我们学习了自定义函数,知道函数是为了实 讨 论 活 分析问题主体 现某种功能而编写的一段相对独立的程序,并且可以多次 动 过 确 定 方 案 , 培的调用;程 , 总 养同学思维程结 游 戏 序化,为下面规 就 ,新学习递归算算法描述:了 解 活 法做好移植准function whatstude
9、nt 动 规 备假如我知道答案,那么我就告知你 律 , 并否就,我要问下一位同学再告知你 将 活 动end function 过 程 进行 算 法描述这一部分的设计较之于前一段,马上显得平淡,缺乏“ 喧闹”;然而,这看似平淡的教学过程却是画龙点睛之笔;假如没有这一段教学的准时总结,对前一“ 活动” 过程思维上的提升,那前面的活动就只能流于形式、止步于“ 喧闹” 了;因此,我们在用“ 活动” 的方式引入教学之后, 要留意准时总结活动并提升到所要探讨的问题,这样才算完成了教学;活动的开展,目的也是为了让同学能较简洁地把握新知进行铺垫并对问题进行深化摸索;学习 展现题:讨 论 、实例教学,选新知 小
10、猴吃桃 : 比 较 、择“ 小猴吃桃”有一天小猴子摘如干个桃子 , 当即吃了一半仍觉得 分 析 、这一题的目的不过瘾 , 又多吃了一个; 其次天接着吃剩下桃子中的一半,归纳 是为了简化教仍觉得不过瘾又多吃了一个,以后小猴子都是吃尚存桃子 材“ 裴波那契”一半多一个;到第 10 天早上小猴子再去吃桃子的时候,数列的多函数看到只剩下一个桃子;问小猴子第一天共摘下了多少个桃 调用,回避问子. 题分析的复杂1. 勉励同学进行争论,共同查找答案或解决方法性 较 大 的 特2. 师生共同分析题:点,从而使得以 4 位同学排成了行,(设从行的后面开头的第一位同 重点难点得以学知道第 10 的桃子数( 1 个
11、),倒数其次位同学知道第 9 轻松的突破;天的桃子数是 ) 从老师提问排在前面第一位(第 7 天)的同学,你知道,你今日的桃子数有多少?名师归纳总结 - - - - - - -第 3 页,共 7 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载目的是争论出,只有倒数第一位同学知道,其他有同学都不知道, 但是他只要知道他后一位同学的桃子数就可以求出本人所具有的桃子数,(后同学的桃子数+1)*2 就是本人的桃子数;看来作者真是一个善于通过“ 活动” 的方式来完成教学的“ 高手”,在降低了分析问题的难度以后, 再一次用活动的方式来引导同学来分析问题,这是一种真正意义上的循循善诱
12、,比老师不厌其烦地教给同学十遍公式要来的高效的多;建立数学模型:假设第 n,n10 天的桃子数为taon 那么推 导 数 tao=1 n=1 学建模taon=taon+1+1*2 n10 我们能不能这样设一个函数:学 生 进培育同学养成算法描述:行 算 法良好的编程习 function你有多少桃子?(第几天)描述惯假如我第 10 天,那么我就有一个桃子;否就,我的桃子数=(前一天的桃子数+1)*2 end function仍是的,在“ 活动” 过后要准时的总结与提升;先在分析的基础上建立数学模型,再用伪代码来描述,严格按运算机解决问题的基本过程来绽开课堂教学,不断培育与强化同学良好的编程习惯;
13、示图帮助同学分 析 算 算法实现过程法 的 实 的始末思维,现过程同学编程实现:Function taoByVal days As Integer As Integer If days = 10 Then 学 生 编培育同学的编tao = 1 程和调试程序Else 程实现才能,让同学tao = taodays + 1 + 1 * 2 获得胜利的体End If 检End Function名师归纳总结 - - - - - - -第 4 页,共 7 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载再用示图的方式来帮忙同学进行思维,降低同学思维的难度(并没有降低思维的质量),从而
14、提高教学效率;再让同学动手编写代码,实践运算机解决问题基本过程的最终一步;至此,用递归算法解决“ 猴子摘桃” 问题的全过程完成了;自主 我们再来看其次题: (同学阅读教材 P68,让同学阅 敬重同学的个构建 读教材的“ 裴波那契”,培育同学的自学才能、和学问迁 阅读 体进展,让学移建构自我的学问体系)思 考 、生进行自主探裴波那契( Fibonacci leonardo,约 1170-1250 )是 分 析 、究学习,使用意大利闻名数学家在他的著作算盘书中很多好玩的 争论,学主动、积极问题,最富胜利的问题是闻名的“ 兔子繁衍问题” :如 的 学 习 新 知果每对兔子每月繁衍一对子兔,而子兔在诞
15、生后其次个月 识,培育他们就有生殖才能, 试问第一月有一对小兔子第十二月时有多 的自学才能;少对兔子?1、 1、2、3、5、8、13、21 培育同学分析假设第 n 个月的兔子数目为fn ,那么+(本月问题、解决问 fn=Fn-1+fn-2 当 n3,题才能,煅练 f1=f2=1 同学“ 数学建争论得出算法描述模” 建构主义Function有多少对兔子(第几月)的 学 习 观 认假如是第一月或其次月,那么就有一对兔子;为:学习不是否就,(本月)兔子数=(本月 -1 )月的兔子数被 动 接 收 信-2 )月的兔子数息,而是主动end Function 地建构意义,以自己原有的Function tu
16、ByVal month As Integer As Integer 编 程 实学问体会为基If month = 1 Or month = 2 Then 础对外部信息tu = 1 现;进行主动地选Else 择、加工和处tu = tumonth - 1 + tumonth - 2 理,人而获得End If 自己的意义过End Function程;在同学经受了上一问题解决的完整过程之后,再抛出较难的问题, 并让同学自主完成;一方面,同学有了前面的基础,自主完成稍难一点问题的解决是完全可能的,另一方面,通过问题的“ 变式”,强化了新知,也训练了同学独立摸索,分析解决问题的才能;深化 阅读教材的循环结构
17、实现,比较争论两种算法的区分 学 生 讨 培育同学分析学问 和特点 论 问题、归纳、梳理学问的能力,通过两种算法的对比,让同学深化体会递归算法的魅力;加深对本节课所学知识的懂得;名师归纳总结 - - - - - - -第 5 页,共 7 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载通过比较两种算法的不同来加深同学对递归算法的懂得是一种比较好的方法;不过,惋惜的是这里没能看到同学争论并总结不同的过程与结论;课堂 我们今日所学习的算法是“ 递归算法” ,我们谈谈什么小结 是递归算法,递归算法有什么特点;师生争论,共同小结:1.递归算法是数值层层调用实现的,函数先由上向下调
18、达 成 共用,当达到最底层后, 再将函数值层层向上返回; 递2.下去,收回来,简称:递归 识必需有个终止条件(有个该收回来的条件)3.可读性强4.运算机资源耗费大,所以效率比较底 (常驻内存的数据比较多)最终的课堂小结是统一同学思维结果的过程,这在活动性课堂教学中是必不行少的,它能帮忙同学将发散的思维归结在教学的核心目标上,不至于让同学在一节课下来,感觉不知道学到了什么(其实学到了很多,只是没能总结出来);然而,我们也看到,在小结的第4 点上,在整个教学过程中,并没有赐予关注;所以这个结论只是老师直接给出的,假如也能通过活动的方式来让同学体会到递归算法的低效就更好了;当然,这部分或许是下一节课
19、的教学内容, 本节课的小结只是一个提示;仍有一种可能, 就是在前面的算法比较环节中让同学体验到了递归算法的低效;但一般来说, 假如要让同学通过问题来体验递归算法的低效性,就肯定要通过比较的方法,而且需要足够的课时,信任,这一点在本节课上是难以实现的;布置1.N !(用递归算法编程实现)巩固和进展本作业2. 求 1+2+3+4+5 N (用递归算法编程实现)节课的学习内3. 用递推算法实现“ 猴子吃桃” 问题求解容;【教学反思】从嬉戏的方式导入活动,充分的调动同学的思维,慢慢的走入了“ 递归的思维” 模式,从而引出“ 猴子吃桃”,使用的前面活动 礼物是什么 . 的思维,诱导同学进入了“ 递归”
20、思想解题;同学阅读教材范例“ 裴波那契”,培育同学的自学才能和学问迁移建构自我的学问体系;内化递归算法的实现,再由递归思维的逆向思维争论“ 递推” 的算法,进行比较运算机资源的耗费高,可读性差;为下一步导出结论做好了铺垫;学好本节课的前提是:懂得自定义函数的使用方法,同学对自定义函数的懂得程度,是本节课成效是否得以完成的关键;【案例分析】本案例语言流畅,结构清楚,对教材与学情的分析精确、到位,对教学目标和教学重、难点设计精确、合理;本案例掩盖的是程序设计中“ 递归法与问题解决” 这一学问点,适合用于这一学问点的第一节课;本案例能够通过 “ 活动”的形式,使同学明白使用递归法设运算法的基本过程,
21、使同学能够依据具体问题的要求,使用递归法设运算法、编写递归函数、编写程序、求解问题;本案例能够通过“ 活动”(或嬉戏)的方式来导入教学,绽开教学;而且能关注到培育名师归纳总结 同学自主学习探究才能的培育,并通过降低争论问题的复杂程度和图示的方法来引导和帮忙第 6 页,共 7 页- - - - - - -精选学习资料 - - - - - - - - - 学习必备 欢迎下载同学进行摸索; 再通过同一问题用不同算法来实现后的比较,来带领同学总结递归算法的优缺点; 这些都是在比较难的算法教学内容的教学过程中,突破教学重难点的好的方法,很值得大家借鉴;建议, 在不同算法解决同一问题的比较设计中,能够更为
22、具体的进行描述,并能给出整节课的时间支配,会增加本案例的可借鉴性;【专家点评】作者创设的“ 猜想嬉戏” 情形,与递归算法有较高的关联性,而且长短适中,有助于学生快速进入情形,进而通过引出“ 自定义函数” 奇妙地引导同学走出情形;经过老师的细心设计,同学在较短的时间内就为递归算法做好了移植预备;递归算法有肯定的难度,对规律思维才能要求较高,假如挑选切入的问题过于复杂,学生简洁产生畏难心情;教材中选用的“ 兔子问题”是一个经典的递归问题,但问题分析的复杂度较大, 花费的学时较多;作者并没有拘泥于教材,而是细心设计任务调整难度,挑选了相对简洁的 “ 猴子吃桃问题”作为学习递归函数的切入点,在难度上较
23、为贴近同学的实际水平;另一方面,算法的内容大多很枯燥,不易调动同学爱好,而“ 猴子吃桃问题” 既生动又贴切,简洁激发同学的爱好,让同学在解决问题的过程中充分感受算法的魅力,获得成就感;作者对教材的处理,可谓之“ 依据教材又超越教材”,既保留了教材的精华,又通过适当的调整满意了同学的实际需求,带领同学由浅入深地接触到递归算法;在此过程中, 实行的学习方法也有所转变,让同学通过自主探究来把握相关内容,促进同学学问迁移和自我构建能力的提升;作者的设计可谓独具匠心;值得商榷之处, 所设计的教学内容用一个课时来完成,时间特别紧迫,特殊是“ 自主构建” 环节,需要肯定的自主探究和老师讲解的时间;名师归纳总结 - - - - - - -第 7 页,共 7 页