|教案下载
搜索
    上传资料 赚现金
    5.2 迭代与递归 教学设计(2课时,表格式)
    立即下载
    加入资料篮
    资料中包含下列文件,点击文件名可预览资料内容
    • 教案
      5.2.2 递归 教学设计.doc
    • 教案
      5.2.1 迭代 教学设计.doc
    5.2 迭代与递归 教学设计(2课时,表格式)01
    5.2 迭代与递归 教学设计(2课时,表格式)02
    5.2 迭代与递归 教学设计(2课时,表格式)03
    5.2 迭代与递归 教学设计(2课时,表格式)01
    5.2 迭代与递归 教学设计(2课时,表格式)02
    还剩4页未读, 继续阅读
    下载需要15学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    信息技术选修1 数据与数据结构5.2 迭代与递归精品表格教学设计

    展开
    这是一份信息技术选修1 数据与数据结构5.2 迭代与递归精品表格教学设计,文件包含522递归教学设计doc、521迭代教学设计doc等2份教案配套教学资源,其中教案共12页, 欢迎下载使用。

    递归教学设计

    课程标准

    教学目标

    递归

    教材内容:5.2迭代和递归 之 递归

    适应的课程标准:

    1.7 通过实现数据的排序和查找,体验迭代和递归的方法,理解算法与数据结构的关系。

    教学目标:

    结合具体程序实例,掌握递归函数的定义

    能够运用递归的思想和方法,编程实现汉诺塔

     

    指向的核心素养:

    信息意识:学生能够结合生活中的实例描述数据的内涵与外延,能够将有限制条件的、复杂生活情境中的关系进行抽象,有意识地选择恰当的数据结构表达数据的逻辑关系

    计算思维:能够从数据结构的视角审视基于数组、链表的程序,解释程序中数据的组织形式,描述数据的逻辑结构及其操作,评判其中数据结构运用的合理性;能够针对限定条件的实际问题进行数据抽象,运用数据结构合理组织、存储数据,选择合适的算法(排序、查找、迭代、递归)编程实现、解决问题

    数字化学习与创新要使学生熟练地运用数据结构解决生活中的真实问题,并在此过程中自主或协作探究;能够评估常见的数字化资源与工具对学习数据结构的价值,根据需要合理选择

    信息社会责任:能够分析数据与社会各领域间的关系,自觉遵守相应的伦理道德和法律法规

    学习环境:有教学控制软件的多媒体机房,python编程环境

    建议课时:1课时

    教学活动设计

    教学环节

    教学过程

    设计意图

    情境导入

    导入1:展示俄罗斯套娃,略加简介相传俄罗斯民族有两家表亲相邻,表兄妹童年相伴长大,后来表兄远走它乡,由于思念家乡的表妹,每年做木娃娃,一年比一年做的娃娃大。数年后,他回到了家乡,将娃娃送给了表妹,后人模仿传称套娃,又叫吉祥娃娃。引入递归的思想

    导入2:分形图案生成(递归算法),选择IDLE中的Help菜单——Turtle Demo——Fractalcurves,简介其基本原理。

     

    通过导入生活中的递归案例,以便顺利过渡到递归算法思想的分析。

     

    学习任务一:阶乘问题

    学习任务一:阶乘问题

    问题:利用递归算法求n的阶乘(n!=1×2×…×n)。由数学知识可知,n阶乘的递归定义为:它等于n乘以n-1的阶乘,即n=n*(n-1)!,并且规定0的阶乘为1。设函数fac(n)=n!,则fac(n)可表示为:

    展示一般递归函数定义方法:

    程序

    测试效果

    def fac(n): 

        if n == 0: 

            s=1 

        else: 

            s= n * fac(n-1)

        return s

    print(fac(3))

    6

     

     

     

     

     

     

    描述递归过程:

    对应地,可以跟踪递归函数中参数n的变化情况:

    程序

    测试效果

    def fac(n): 

        if n == 0: 

            s=1     

        else:          print(str(n)+'*fac('+str(n-1)+')')       

            s= n * fac(n-1)

        return s

    print(fac(3))

    3*fac(2)

    2*fac(1)

    1*fac(0)

    6

     

     

     

     

     

     

    设问:

    前面,我们已经学习过斐波那契数列的递推公式:

     a1 = 1

     a2 = 1

    an=an-1+an-2(当n>2)

    你能编写对应的递归程序由计算机计算一年后的兔子总数吗?

    参考程序:

    Fibonacci程序递归算法:

    def fib(n):

     if n == 1 or n == 2:

      return 1

     else:

      return fib(n - 1) + fib(n - 2)

    print("12月共有%d只兔子." % (fib(12)))

    教师总结:能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法。特别地,如当规模N=01时,能直接得解。因此,在设计递归算法时,要满足两个条件,即要确定递归公式和递归结束条件。

     

    设计意图:递归是程序设计里面比较高级的技术。递归函数的定义比较特殊,它基于自己定义自己。初学者感觉困惑的地方就在于:这种定义方法有意义吗?这是一种循环定义吗?建议使用简短例子,介绍递归函数的定义方法,递归公式的建立,以及递归结束条件。引用上节已经练习过兔子有多少只?程序实例学生动手写递归程序,初步体会迭代算法递归算法的区别通过对递归程序的执行过程的仔细分析同时跟踪递归函数中参数的变化,引导加深概念理解,最后总结递归算法的执行过程中的递推和回归两个阶段。

     

    自主学习

     

    学生自主编写程序,教师及时跟踪、辅导、点评、总结

    参考程序:

    Fibonacci程序迭代算法一:

    rabbit = [0,1,1]

    for i in range(1,11):

        x = rabbit[-1] + rabbit[-2]

        rabbit.append(x)

    print(rabbit)

    Fibonacci程序迭代算法二:

    a = 1

    b = 1

    print(a)

    print(b)

    for i in range(3,13):       

        c = a + b

        print(c)

        a = b

        b = c

    算法一通过数组的形式实现,它与数学中数列的关系紧密,便于与数学学科横向联系,算法二设置了三个变量,巧妙地用了a,b,c三个变量来中转兔子的数量,初始时,a,b都为1,从第三个月开始,c表示总数,a表示新生下来的兔子或者前两个月的时候就存在的老兔子,也就是an-2,b表示前一个月底已经存在的兔子,也就是an-1如此滚动向前计算。体会其中a和b的变化情况。算法二更集中地体现了计算机中迭代算法的特点。

     

     

    对学生编程中不同的实现方式,即时发现、即时点评,可以让学生互评、自评,激发大家探索与思考。

    学习任务二:汉诺塔游戏

    学习任务二:汉诺塔游戏

    汉诺塔游戏更为复杂,为了更好地理解这个问题。教材对此问题进行了详细的分解。一是抽象与建模;二是设计算法;三是编写程序。上一节中课后习题第5题,我们专门设置了对应的习题,学生应该对这个问题有所了解。建议本块内容教学按照学生的思维规律,由具体到抽象,由简单到复杂,依序进行。

    1.抽象与建模

    为了明确规则,推演过程,选择IDLE中的Help菜单——Turtle Demo——Minimal_Hanoi,使用现成的数字化学习工具,直观展示迷你汉诺塔游戏的动画过程。

    考虑一般情形,为了将n个盘子从A柱经过B柱移动到C柱,可建立如下模型

     

     

     

     

    设计意图:递归是计算思维能力之一。首要是寻找和发现问题的规律与内部结构。能够由具体情况概括出一般规律,通过本问题的细致分析,学生可以体会到抽象与建模的基本过程。

    2.设计算法

    根据上述抽象与建模可以发现,原来与n有关的问题变成了与n-1有关的问题,重复这个过程,每次n减1,最后当n=1时,直接移动该盘子。因此,该问题可采用递归算法来实现,即:

    (1)定义一个实现盘子移动的函数move。如将n个盘子从A柱经过B柱移动到C柱,可调用函数move(n, a, b, c),其中n表示A柱上的盘子个数,a、b、c分别表示A柱、B柱、C柱。

    (2)将n-1个盘子从B柱经过A柱移动到C柱,可以分解成如下递归调用

    move(n-1, a, c, b)

    ac

    move(n-1, b, a, c)

    (3)当n=1时,直接移动盘子,递归结束。

    设计意图:难点在于根据模型写出对应的程序实现,而本算法中的函数参数是疑难点。实参与形参的区别、参数在每次递归中变化情况,可以略加展开说明。

    3. 编写程序

    根据算法,得到的程序及测试效果如下:

    程序

    测试效果

    def move(n, a, b, c):

        if(n == 1):

            print(a,"->",c)

            return

        move(n-1, a, c, b) 

        move(1, a, b, c)   

    move(n-1, b, a, c) 

    move(3, "A", "B", "C")

    A -> C

    A -> B

    C -> B

    A -> C

    B -> A

    B -> C

    A -> C

    计算思维能力的培养,首要是问题的抽象与建模。它是决定问题解决的关键之一。其次,算法设计是重点与难点。可以在模型指导下配合讲解递归函数设计,鼓励学生自己动手编写程序。尝试修改函数中的次数参数,观察参数变化带来不同的效果。

    拓展学习

     

    递归程序一般具有如下结构:

    1)首先指出数据规模最简单的情况,数据如何进行计算。

    2)数据规模较复杂的情况,可以归结为较简单的数据计算。

    递归程序的程序正确性与数学归纳法紧密联系。数学归纳法的基本证明过程:

    1)验证当n = 1(或其它值)时,递归式成立。

    2)假设当n = k时,递归式成立,证明n = k+1时,递归式亦成立。

    具体使用递归时应避免无限递归的情形。如果一个递归永远也达不到基准情形,则它会永远继续递归调用,而程序也永不停止。这个现象称为无限递归。下面是一个会引起无限递归的最简单的函数:

    Def recurse():

        Recurse()

    无限递归的函数并不会真的永远执行,python运行环境会在递归深度达到上限时报告一个出错信息:RuntimeError:Maximum recursion depth exceeded,即运行时错误:超出最大递归深度(默认上限为1000

     

    递归设计是一个难点,而它的基本思想原理与数学归纳法密切相关,同时还应当注意无限递归问题。

    课堂小结

    知识梳理:

    1. 递归代算法的基本思想与应用;

    2. 递归算法的实现技术

    3. 递归算法的数学原理与注意事项

     

    迭代表达式的建立是难点,课后作业提供了相应练习。

    作业布置

    基础作业(面向所有学生):

    完成课本“思考与练习”第4

    本节安排了道题目,可以结合本章习题布置作业。

    课后作业是课堂学习的延伸,是巩固和升华知识点的有效途径。

     

     

     

    教学设计思路

    本课内容递归,建议分配1课时完成递归在解决一类问题时十分有用,往往描述简洁,易于理解,并能极大地减少程序代码量它的关键在于识别出内在的递归结构。

    它与高中数学教材中的数学归纳法原理紧密相连,了解这个原理更有助于知识内容的理解与掌握。

    首先,启发学生递归思想有所感悟可以引用生活的事例(比如俄罗斯套娃),或者从身边的小事讲起,例如帮拿作业本

    其次,以阶乘为例,介绍其递归公式,引入递归函数的定义然后重点强调设计递归算法时,要满足两个条件:确定递归公式和递归结束的条件。

    再次,为进一步引导学生使用递归算法来解决问题,可以使用汉诺塔游戏为例,重点放在问题的分解与综合上,重点在于提示其内在的递归结构

    本节主要内容为递归学生对于递归相对陌生,理解难度较大,建议从抽象与建模、设计算法、程序实现三个方面,深化细化,引导学生理解并掌握递归算法。

     

    针对

    核心素养培养的

    设计考虑

    信息意识、信息社会责任:本节课在导入时选择了两个案例,导入一“俄罗斯套娃”来自生活,导入二分形图案生成,递归算法可以创造出美妙图案;这些实例目的是引起学生探究的兴趣,提示学生意识到递归算法思想的奇妙运用,教师引导总结大问题解决中嵌套着原问题相似的规模较小的问题目的是能够启发思考、归纳出递归算法的普遍运用,增强学生对此类问题的敏感性,对递归算法的思想有初步的意识

    计算思维:本节中的递归算法即为计算思维的核心之一,主要表现在如下四个方面:一是如何将一个复杂的问题简单化处理,这体现了简洁性;二是对于每次简化的问题,其表达方式与原方式保持一致,反映了结构性;三是问题解决是有终止的,简化到一定程度,一定是可以解决的,反映了构造性;四是可以用有限的步骤处理近于无限功能的方法,体现了简约性。

    数字化学习与创新:本节选择IDLE中的Help菜单——Turtle Demo——Minimal_Hanoi,使用现成的数字化学习工具,直观展示迷你汉诺塔游戏的动画过程,为典型的数字工具应用

     

    相关教案

    信息技术选修1 数据与数据结构第三章 字符串、队列和栈3.3 栈优秀表格教案及反思: 这是一份信息技术选修1 数据与数据结构第三章 字符串、队列和栈3.3 栈优秀表格教案及反思,文件包含331栈的概念特性及基本操作教学设计doc、332栈的应用教学设计doc等2份教案配套教学资源,其中教案共4页, 欢迎下载使用。

    浙教版 (2019)选修1 数据与数据结构3.2 队列优质课表格教案: 这是一份浙教版 (2019)选修1 数据与数据结构3.2 队列优质课表格教案,文件包含321队列的概念特性及基本操作教学设计doc、322队列的应用教学设计doc等2份教案配套教学资源,其中教案共4页, 欢迎下载使用。

    高中信息技术教科版 (2019)选修1 数据与数据结构第3单元 数据的排序与查找3.1 迭代与递归教案及反思: 这是一份高中信息技术教科版 (2019)选修1 数据与数据结构第3单元 数据的排序与查找3.1 迭代与递归教案及反思,共4页。教案主要包含了考勤,课前测评,导入,新课内容,小结等内容,欢迎下载使用。

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        还可免费领教师专享福利「樊登读书VIP」

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        即将下载

        5.2 迭代与递归 教学设计(2课时,表格式)
        该资料来自成套资源,打包下载更省心 该专辑正在参与特惠活动,低至4折起
        [共10份]
        浏览全套
          立即下载(共1份)
          返回
          顶部
          Baidu
          map