高中信息技术选择性必修1递归的概念与程序实现教学设计_第1页
高中信息技术选择性必修1递归的概念与程序实现教学设计_第2页
高中信息技术选择性必修1递归的概念与程序实现教学设计_第3页
高中信息技术选择性必修1递归的概念与程序实现教学设计_第4页
高中信息技术选择性必修1递归的概念与程序实现教学设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中信息技术选择性必修1递归的概念与程序实现教学设计一、教学基本信息本节课面向高中二年级选修粤教版(2019)《数据与数据结构》模块的学生,课时为一课时45分钟,教学环境为配备Python运行环境的网络机房。教材将"递归"安排在第五章"算法与程序设计"的进阶部分,前承顺序结构、分支结构、循环结构三种基本控制结构,后接分治算法与递推思想,是学生从"会写程序"走向"会设计算法"的关键跃迁点。本课的核心任务不是让学生背出递归定义,而是让学生理解"自己调用自己"这一思想背后的计算逻辑,并能针对具体问题写出正确的递归函数。二、课程标准与学情分析《普通高中信息技术课程标准(2017年版2020年修订)》将计算思维列为学科核心素养之首,其中"形式化、模型化、自动化"是递归概念的天然载体。递归要求学生对问题进行抽象分解,把大而难的问题转化为小而相似的问题,这正是计算思维中"分解"与"模式识别"的集中体现。从学情看,学生已经能够熟练使用for循环和while循环解决重复性问题,例如累加求和、阶乘计算等。群体调查表明,多数学生在初次接触递归时存在三层困难:一是观念上认为"调用自己会导致死循环",无法理解终止条件的作用机制;二是程序层面无法跟踪函数调用栈的变化过程,写出代码后说不清程序在做什么;三是问题层面看不出哪些实际问题适合用递归求解,往往陷入"为递归而递归"的形式化套用。本课的教学设计直接回应这三层困难,采用"实物情境—可视追踪—对比论证—迁移应用"的路径展开。三、教学目标学生能够用自己的语言准确说出递归的两个构成要素,即递归终止条件与递归调用关系,并能判断一个函数是否构成合法递归。学生能够针对阶乘、斐波那契数列、汉诺塔等经典问题独立编写递归函数,并能借用调试工具或调用过程图说明递归的执行顺序。学生能够在同一问题的循环解法与递归解法之间进行比较,从代码简洁性、可读性、时间与空间开销等多个维度说明两种方式各自的适用场合,形成"递归不是万能钥匙"的辩证认识。通过汉诺塔问题的探究活动,学生体会到"化大为小、以小推大"的思维策略在解决复杂问题时的价值,逐步形成敢于面对复杂问题、善于拆解问题的学习品质。四、教学重点与难点教学重点是递归概念中"终止条件"与"递推关系"的双要素结构,以及用递归函数表达分治思想。教学难点在于递归执行过程的理解。递归的调用与返回遵循后进先出的栈式规律,这一微观过程学生无法直接从代码文本中读出,必须借助可视化手段和口头追踪训练才能内化为清晰的心智模型。五、教学方法与教学资源本课综合使用情境创设法、任务驱动法、对比分析法和可视化演示法。硬件资源为一人一机的网络机房,软件资源为Python3.x环境及Thonny调试器(利用其单步执行功能展示调用栈),另准备套娃实物或镜像小视频作为导入素材,导学案每生一份,评价量表嵌入导学案末尾。六、教学过程环节一:情境导入,感知"一层套一层"的结构(约6分钟)教师出示一套俄罗斯套娃,请一名学生上台逐层打开,边开边数层数。全班观察后教师提问:"如果让你数清楚套娃一共有几层,你刚才的数数动作有什么规律?"学生不难发现:打开一层,数加一,再对大娃里面的小娃重复同样的动作,直到最小的娃不能再打开为止。教师顺势提出本课的驱动性问题:"计算机做重复的事,我们学过循环。但刚才数套娃的过程有一个特别之处——每一次做的动作都是'对更小的套娃做同样的事'。能不能让函数在做一件事时,把'做同样的事'交给一个更小的自己来完成?这就是今天要研究的问题。"教师板书课题:递归——函数调用自己的艺术。此环节用时虽短,作用有三:用身体经验激活"嵌套"的直觉;用"重复但不同对象"的特征区分递归与普通循环;用驱动性问题为整节课定调。环节二:概念建构,解剖递归的双要素(约10分钟)教师投影阶乘问题的两个程序版本。版本一为循环写法:用for语句从1乘到n。版本二为递归写法:deffactorial(n):ifn==1:return1else:returnnfactorial(n1)教师不讲代码,先让学生静默阅读两分钟,在导学案上回答三个问题:这个函数里有没有调用语句?被调用的是谁?什么情况下它不再继续调用?学生回答后,教师组织全班归纳。学生能发现函数factorial内部又出现了factorial,这就是"自己调用自己"。教师追问:"如果删去if分支,只保留第二行返回值,会发生什么?"学生在机上快速验证,程序报错,提示超出最大递归深度。由此教师引导学生抽象出递归的第一要素:必须有终止条件,否则调用不停止。再问:"为什么n要变成n1?如果写成factorial(n)会怎样?"学生讨论后认识到,每次调用的问题规模必须缩小并向终止条件逼近,否则同样无法结束。由此抽象出第二要素:必须有递推关系,且每一步都使问题规模减小。教师板书递归定义的通俗表述:递归是函数在其定义中直接或间接调用自身的程序设计方法,一个合法的递归必须同时满足两个条件——存在不再调用的终止条件,存在使问题规模逐步缩小并逼近终止条件的递推关系。教师强调这两条缺一不可,终止条件防止无限调用,递推关系保证问题有解。此时对照导入环节的套娃:最小的不能再打开的娃就是终止条件,"打开一层取里面的小娃"就是递推关系,概念与生活经验完成对接。环节三:可视化追踪,看清调用与返回(约10分钟)本环节旨在破解难点。教师以factorial(4)为例,请四名学生站在讲台前,每人扮演一次函数调用,站成一列。最左侧的学生接过任务"计算4的阶乘",他说:"我需要3的阶乘,请下一位帮我算。"依次传递,最右侧学生拿到"计算1的阶乘",直接回答1,然后结果沿队伍反向传回,依次算出2、6、24。身体演示后,学生打开Thonny,用调试模式单步执行factorial(4),观察窗口右侧不断增长的调用栈。教师要求学生在导学案上画出调用过程的展开图:factorial(4)→4×factorial(3)→4×3×factorial(2)→4×3×2×factorial(1)→4×3×2×1→24教师由此引入两个术语:函数层层调用的过程称为"递"(向深处走),结果逐层返回汇总的工程称为"归"(向回走),一递一归,正是递归名称的由来。同时指出,栈是递归的执行保障,每调用一次,计算机都在栈中压入一帧保存现场,这也正是递归占用内存较多的原因,为后面的优缺点讨论埋下伏笔。环节四:合作探究,从斐波那契数列看递归的表达力(约12分钟)教师给出任务情境:"假设一对兔子从出生后第二个月开始每月生一对小兔,每月兔子总数构成1、1、2、3、5、8……这样的数列。请各小组先写出第n项的递推公式,再编写递归函数fib(n)求解。"小组活动分为三步。第一步,数学建模。学生在导学案上归纳:当n等于1或2时,结果为1;当n大于2时,第n项等于第n1项与第n2项之和,即fib(n)=fib(n−1)+fib(n−2)(n≥3)第二步,编码实现。各组在机上编写函数,教师巡视,重点捕捉三类典型问题:忘记写终止条件、终止条件只写了n等于1、参数没有递减。教师将有代表性的错误代码投屏,让全班"集体会诊",指出错误并说明会引发什么后果。第三步,效率体验。教师安排各组分别计算fib(10)、fib(20)、fib(35),观察运行时间的变化。多数组会发现fib(35)明显变慢。教师提问:"代码只有五行,为什么算得这么慢?"引导学生画出fib(5)的调用树,发现fib(3)被重复计算了两次,fib(2)被重复计算了三次。教师讲解:朴素递归存在大量重复计算,这正是递归"表达优雅而代价不菲"的一面;若要优化,可用缓存记忆或改用循环递推,这将在后续"分治与递推"内容中展开。此处的矛盾体验极有价值,它阻止学生形成"递归一定高级"的错误观念,为辩证评价奠基。环节五:对比辨析与课堂小结(约5分钟)教师组织全班完成对比表。以"计算1到n的和"为例,循环版本与递归版本同时呈现,学生从三个维度讨论:代码长度、可读性、资源开销。各组发言后教师小结,不预设结论,只呈现共识:递归适合问题具有天然自相似结构的场合,如树的遍历、汉诺塔、分治算法;循环适合线性的重复劳动,效率通常更高。选择哪种方式,取决于问题的结构特征与性能要求,而非个人偏好。教师用一句话收束全课:"递归的智慧在于相信一个更小的自己能解决问题,而你要做的只是写清楚什么时候停下来、怎么变小。"环节六:分层作业布置(约2分钟)基础层全体学生完成:用递归实现求一个正整数各位数字之和(如输入1234输出10),要求画出n为本题数据时的调用展开图。提高层选做:查阅资料理解汉诺塔问题的递归解法,尝试编写move(n,a,b,c)函数,下节课前五分钟由完成者登台讲解。教师明确提示思考方向:移动n个圆盘等价于先把上面n1个借道移开、移动最底大盘、再把n1个移回来,完美对应递归双要素。拓展任务供学有余力者探索:观察Python默认的最大递归深度限制,思考这一设计背后的工程原因。七、板书设计主板书居中书写课题,下分两栏。左栏:递归定义——函数调用自身;两要素——①终止条件②递推关系(规模递减)。右栏:执行过程——递(层层调用,进栈)归(层层返回,出栈);经典例证:factorial、fib。副板书保留课堂生成的错误代码与修正记录,体现思维痕迹。八、教学评价设计本课评价嵌入学习全程。过程性评价依据导学案上的三处检测点:概念辨析三问、调用展开图、斐波那契函数编码,分别对应理解的三个层级。课堂观察侧重小组会诊环节中学生能否用"终止条件缺失""规模未缩小"等术语进行专业化纠错。作业评价采用双向量规,既看程序运行结果是否正确,也看调用图与代码是否一致,防止抄码现象。提高层任务的展示兼作同伴教学,由听讲学生按量规打分,促进深度互评。九、教学反思预设本设计最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论