版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中信息技术选修1递归算法实例及程序实现教案本课面向高中选择性必修模块“算法与程序实现”的学习群体,定位于学生已经掌握顺序、选择、循环三种基本结构,能够用Python完成函数定义、列表操作与基础输入输出之后的关键跃迁课。课题聚焦浙教版高中信息技术选修1第五章第五节“递归算法实例及程序实现”,核心任务不是让学生背诵“函数自己调用自己”这句话,而是引导他们在可观察、可运行、可失败的程序活动中建立递归思维:把规模较大的问题拆成同构的更小问题,找到不再下钻的边界,再把逐层返回的结果组装成答案。课堂以“看得见的调用踪迹”为主线,以斐波那契数列、阶乘、汉诺塔、折半查找、目录遍历五类情境为阶梯,让学生在写代码、改边界、追栈帧、比效率的过程中形成可迁移的算法观念。一、教学定位与学情研判本模块之前,学生习惯用循环逼近结果:求和用累计变量,枚举用for,查找用逐一比较。这种经验是递归学习的基础,也会成为障碍。常见困难集中在四处:把递归误当作“函数套函数”的语法花样;能写出n的阶乘却说不清为何不会无限运行;照搬样例时漏掉终止条件,遇到RecursionError只记住“系统错了”;面对汉诺塔这类过程性递归,无法把移动步骤抽象成“借助中转柱迁移n减1盘”。教学设计因此坚持低起点、高思维、强证据:起点低到打印一层“进入”和“离开”,思维高到要求画出调用树并解释时间代价,证据强到每一条结论都须由运行截图、计数器或栈深记录支持。从认知发展看,高二年级学生处在形式运算逐步稳定阶段,能处理符号规则,却对“运行时才展开的调用”缺乏直观经验。他们没有真正看见内存栈,就容易把return理解成普通跳转。课堂需把不可见机制外化:用缩进模拟栈深,用便签表示函数帧,用“问题卡片—子问题卡片—答案回传”三组学具重演调用过程。学生先身体参与,再进入符号编码,最后抽象为递推关系,三者顺序不可随意交换。二、教学目标知识目标落在三个准确表述上:能用自己的话说明递归由“递推关系”和“基准情形”共同构成;能指出每次有效递归调用必须使某个规模参数严格趋近边界;能解释Python层面对递归深度、重复计算和返回路径的影响。目标表述避免“了解、掌握”一类空泛词,改为可观察行为:给定fibonacci(6),学生能画出展开形态并标出重复节点;给定二分查找代码,学生改一处边界后能预判死循环风险;给定n等于3的汉诺塔,学生能写出七步移动序列并说明其与两棵子移动序列的关系。能力目标强调程序实现与证据解释并重。学生应完成三类作品:一份带追踪输出的递归函数,一份对照实验记录,一份面向同伴的讲解微稿。追踪输出要求每层打印进入参数、返回结果与当前深度;对照实验要求比较小规模下递归版与循环版的运行次数;讲解微稿要求用不超过九十秒说明“为什么不能把基准情形放到函数末尾随意处理”。这些产出既服务课堂即时评价,也进入单元过程性档案。素养目标指向计算思维与信息社会责任。递归诱人的简洁常伴随隐蔽成本,学生要体验“表达优雅”和“资源受限”的张力:斐波那契朴素递归便于理解,却在n增大时出现指数级重复;目录遍历天然契合树形结构,却必须考虑权限错误、符号链接环与最大深度。课堂不把递归包装成高级技巧崇拜,而把它放回算法选择伦理中:正确性优先,复杂度需说明,边界要敬畏,运行平台与数据规模要被纳入方案说明。三、重点难点与突破路径教学重点为“递归三要素的可操作化”:同构分解、规模收缩、基准返回。难点不在语法,而在返回路径上的信息装配。许多学生能写出fact(n)等于n乘fact(n减1),却说不清乘法发生在下钻前还是回升后;能背出hanoi(n减1)两次调用,却不懂中间那次move为何位于两个递归之间。突破策略采用“三色标注法”:进入函数用绿色,达到边界用黄色,携带结果返回用蓝色。学生在追踪输出和板书上同步标色,颜色成为思维节拍器,迫使注意力沿调用栈移动而非停留在文本顺序。第二个难点是复杂度直觉。为避免空洞谈“指数爆炸”,课堂安排可控失控实验:固定机器与解释器,分别运行memo化前后fib(28)至fib(36),记录秒表读数;不追求精密benchmark,只要求观察增长斜率和风扇噪声、等待焦躁这些真实信号。数据不用于排名,而用于提出工程问题:同一数学关系,为何不同实现产生截然不同的可用性?这一问题把学生从“能运行”推向“可托付”。四、教学资源与环境准备机房需保证每人一台可运行Python3的机器,预装编辑器并关闭无关网络页面。教师准备调用栈演示脚本、汉诺塔实体圆盘三套、递归追踪模板、边界缺陷病例卡、课堂采集表。投影侧常驻三块区域:左侧为目标函数寥寥数行,中间是当前栈帧示意,右侧滚动显示带缩进的进入退出日志。学生机器不提前给出完整答案,只提供可运行骨架:函数名、参数、TODO标记、允许修改的打印语句。骨架保留失败空间,防止复制粘贴耗尽思考。评价工具坚持轻量嵌入。每组一张A3“递归解剖图”,左侧写问题,中心画分解箭头,右侧留返回装配区,底部列风险清单。教师巡课只看三类证据:边界是否被主动测试,规模是否单调下降,返回值是否被接住。听课者若进入课堂,应能听到学生说“这里还缺一个不再调用自己的条件”“n没有变小”“return把结果丢在了半路”,而不是齐声复述定义。五、教学过程环节一:用身体经历一次下潜与回传,约七分钟。教师不发定义,先组织“传书找页码”游戏。第一本厚书交给前排学生,规则只有两条:若书页数大于十,就把书撕成前后两半的规则想象化,实际用一叠卡片代表;每人只许把更小一半交给下一位,并说一句“我都在等右半答案”。当卡片只剩一页,持有者在卡片写页码并沿原路返回。返回时每位学生把手里的局部结果与回来的结果合并。活动结束后,学生被要求用一句话描述刚才发生了什么,教师不评判,只把高频词写上黑板:变小、停下来、等结果、拼回去。四个词成为整节课的锚点。此设计意图在于把递归从神秘语法拉回人类协作经验。学生常以为递归属于机器,实际它近似行政部门办理证明:材料不全就转下级,最基层给出原件,逐级盖章返回。身体活动后,教师顺势给出代码版最小例子count_down(n),要求只观察不运行:若n等于零打印“点火”,否则打印n后调用count_down(n减1)。学生先预测输出次序,再运行核验。预测与屏幕不一致处被红笔圈出,通常集中在“点火为何最后出现”。这处认知冲突直接引出栈帧概念。环节二:把栈帧画出来,约十二分钟。教师用磁贴演示调用栈,一块磁贴写一个函数帧,包含参数、局部变量、等待位置、返回值四栏。count_down(3)压栈,count_down(2)覆盖其上,直到count_down(0)触发基准;随后逐帧弹出,返回值交给上一帧等待位置。学生在学习单同步补画,必须回答:哪一帧最早创建却最晚结束?哪一条语句在返回后仍需执行?如果删去基准,磁贴会怎样?三个问题分别对应栈序、回调点、终止性。随后进入小组“缺陷病例”诊断。病例A把基准写成n小于等于零却先打印再判断,导致无意义深探;病例B每次调用count_down(n)自身,参数不收缩;病例C将结果打印在递归调用之后,误以为输出顺序会反过来。每组领取一卡,只准改一行并说明理由。汇报禁止说“感觉不对”,须指出违反三要素中的哪一条。教师把诊断口径统一为:终止条件是否可达,规模是否严格下降,返回值是否被使用。三条标准写进板书,后续所有练习都用它自检。环节三:从线性递归到递推关系,约十五分钟。以factorial与fibonacci对照开场。阶乘展示线性递归的干净结构:fact(n)在n不大于1时返回1,否则返回n乘fact(n减1)。学生补全追踪装饰,运行fact(5),观察进入序列5、4、3、2、1与返回序列1、2、6、24、120。教师追问:乘法何时发生?学生必须在追踪图上指出,乘法不是下钻时完成,而是各层带着子结果回升时完成。这个问题击中常见误解,即把递推式当作从上到下即时结算。斐波那契则故意制造不适。给出fib(n)在n小于2时返回n,否则返回fib(n减1)加fib(n减2)。运行fib(6)后,学生统计fib(3)被算几次、fib(2)被算几次,再把加法节点画成树。重复子问题第一次暴露,课堂不急着讲记忆化,而让“浪费”停留几十秒。教师只问:同一节点第二次出现时,计算机有没有记忆?学生从等待时间中体会没有。随后允许用字典cache在函数外保存已得值,或在一行处加注释说明可改用lru_cache,但课堂坚持手写字典路径,因为工具decorator会遮住装入与查找动作。对照实验在此完成闭环。学生填写记录表:n取20、25、30时,朴素递归调用次数、缓存递归调用次数、循环迭代次数。数据允许不完全精确,趋势必须一致。记录表底部留一句反思提示:哪一种实现更像把数学定义直接翻译,哪一种更像为机器资源重写?这句不给出标准答案,因为选修1的价值恰在让学生承认翻译与优化之间存在距离。环节四:汉诺塔把过程递归推向高潮,约二十五分钟。实体圆盘先发三人小组,规则重申为每次移动一盘,大盘不压小盘,目标把三根柱中A柱n盘移到C柱,B可作辅助。学生先用三盘实物试出七步,失败常见在某一步把中盘压到空柱之外的错误位置。教师不纠正走法,要求他们记录每一次移动前“当前最大盘在哪里、它想去哪里、挡路的一摞去哪”。记录自然导向递归结构:要把n盘从A到C,先把上面n减1盘从A借C挪到B,再把底盘从A到C,最后把n减1盘从B借A挪到C。代码实现采用近自然语言伪码过渡。学生先写中文过程:若只有一盘,直接从源到目标;否则把上方盘群移到辅助,移动底盘到目标,把上方盘群移回目标之上。再把源、辅助、目标替换为参数source、buffer、target,函数名hanoi(n,source,buffer,target)。关键领悟出现在参数换位:两次递归中三柱角色轮换,不是柱子变了,而是每个子问题的目标不同。板书用箭头标注A到B、A到C、B到C,学生追踪hanoi(3)输出move序列,与实体七步逐条核对。此环节设一处“静默改题”。当多数组能跑通三盘后,教师要求改为统计总移动次数并证明数量规律,不许先上网查。学生由n等于1、2、3、4的次数1、3、7、15猜出moves(n)等于2的n次幂减1,再用递归关系moves(n)等于2乘moves(n减1)加1解释。公式只作所见即所得呈现:moves(n)=2×moves(n−1)+1,moves(1)=1。课堂强调程序输出与手工计数互相印证,数学归纳被轻轻放下,不展开证明竞赛化,重在说明算法正确性可由结构不变量支撑。环节五:有序数据中的分治递归,约十二分钟。折半查找作为连接旧知的桥。学生已会做顺序查找,教师给出升序列表与目标值,要求先写循环版,再改写为recursive_search(a,lo,hi,key)。基准有两支:lo大于hi返回未找到;mid命中返回下标。规模收缩体现在每次把区间改到左半或右半。陷阱设置为mid计算与边界更新,错误版常写recursive_search(a,lo,mid,key)导致mid相邻时区间不缩。学生用长度为1、2、3的列表做最小测试,特别是目标不存在且位于右端时观察lo与hi何时交叉。折半的价值不在炫技,而在展示递归与循环并非阵营对立。同一不变量“答案若存在必在[lo,hi]内”可驱动两种控制结构。学生完成一段评注:何时选循环,何时选递归。教师期望出现这样的判断区间:逻辑按线性路径推进且状态少,循环更直;问题天然嵌套、返回路径携带装配或结构可宏观二分,递归更贴近表达。评注不求一致,却以不变量是否清楚作为评分依据。环节六:树形世界里的必要递归,约十分钟。目录遍历带来真实复杂度。课堂不开放整块磁盘扫描,只使用教师准备的小型文件夹树,内含普通文件、空文件夹与一个伪装成循环的快捷方式说明。学生运行基于os.listdir或pathlib的递归列举,先打印缩进树,再讨论三个风险:权限不足,深层路径超出默认递归限制,符号链接造成回路。此处不鼓励在机房制造真实环,而以图示说明若不加访问集合seen,文件系统递归可能像自引用列表一样失控。该片段服务信息社会责任。递归能优雅贴合树、图、嵌套括号、表达式解析、组织架构,也会放大现实系统的脏乱。学生需写出两条防护策略,例如限制depth,记录真实路径元组,捕获PermissionError并继续,先判断is_dir再进入。教师明确告诉学生:工程递归常带护栏,教科书函数常省去噪声,二者差别不是水平差距,而是语境不同。能识别省略了哪些护栏,才说明真正读懂了示例。环节七:独立微项目与同伴评审,约二十分钟。学生从三项任务选一:其一,表达式括号匹配计数,用递归处理嵌套结构并返回是否平衡及最大深度;其二,二叉树节点计数,给定嵌套列表表示如[1,[2,None,None],[3,None,None]],求节点数与高度;其三,爬楼梯变体,允许一次走一级或两级,统计n级走法并解释它与fib数列的同构。选择体现差异,底线一致:必须提交基准用例、一个会触发错误的用例、修复说明与复杂度一句话。评审采用“二星一险”便签。同伴给两处亮点,标出一个风险点;被评者不辩解,只记录可采纳项。教师巡场重点听三句话:子问题是否同一个问题,参数是否变小,空树空串空列表有没有名字。课堂后段每组用六十秒展示最漂亮的一次失败,失败者优先发言,理由是递归学习里错误栈最有营养。展示不念代码全文,只读缺陷行、报错尾部与修复后证据,节奏快而证据足。环节八:收束与迁移,约八分钟。学生回到课堂初始四个词:变小、停下来、等结果、拼回去,给每个词配代码符号。变小对应参数更新,停下来对应if基准,等结果对应递归调用表达式,拼回去对应return合成。教师用一张没有答案的小结图替代讲解:中心写“同一问题的较小实例”,四周留空让学生课后贴实例。迁移题只布置口头层:归并排序为何在拆到单元素后才合并?快速排序分区返回值扮演什么角色?语法树求值与括号匹配共享哪种回传结构?这些问题不展开,作为下一单元与算法选学的桥。六、板书设计主板书按“左定义、中机制、右证据”排布。左侧只写三行:同构分解,规模收缩,基准返回。中间画栈帧升降,用绿黄蓝三色表示进入、触底、回传;阶乘示例旁写fact(0)=1,fact(n)=n×fact(n−1);斐波那契旁写fib(0)=0,fib(1)=1,fib(n)=fib(n−1)+fib(n−2),并在旁画两个重叠的fib(3)提示重复。右侧挂学生证据:move次数1、3、7、15;二分区间收缩箭头;目录树缩进样例。整块板不追求工整海报感,保留修改痕迹,痕迹本身就是递归思维从混乱到结构的档案。七、课堂评价与量规过程评价占主导,不看谁背得快,看谁能定位断点。正确性维度四分:基准覆盖空、一、边界外;规模单调下降;返回值全程被接住;不可达分支不残留。解释力维度四分:能用追踪图说明顺序,能指认重复子问题,能对复杂度给出与数据相符的一句话,能把护栏与真实环境相连。合作维度看评审质量而非热闹程度,便签是否具体到行号与变量。创新维度只奖励有证据的改写,例如把全局计数器改为返回二元组,或把打印追踪封装成可开关参数。即时反馈遵循“说栈不说人”。当学生死循环,教师问“哪一帧没有变小”;当结果翻倍,教师问“哪一次返回被使用了两次”;当输出顺序颠倒,教师问“打印发生在压栈前还是弹栈后”。提问固定在机制层,避免把能力问题归因于粗心。学生逐渐用相同语言互评,课堂就形成可迁移的递归话语系统。八、分层任务与个别支持基础层提供半完成代码与追踪壳,目标为解释而非新增。进阶层要求去除全局变量,把计数器、缓存、路径全部经参数与返回值显式传递,体会纯函数式递归的清晰与啰嗦。挑战层接触尾调用讨论的边界:说明某些语言可优化尾调用,而CPython并不因此消除栈帧,因此不能把尾部递归当作深度无限的通行证。此点只作冷静说明,避免语言优劣争论淹没算法主线。对困难学生,降低抽象起点:先用三盘汉诺塔,再两盘,再一盘,反向建立信心;允许先用自然语言协议交接,再改函数参数。对学有余力者,抛出两个开放口:fib矩阵快速幂为何把O(n)继续压低;表达式递归求值如何处理一元负号与优先级。开放题不计入当堂达成,防止把差异教育变成速度竞赛。九、作业设计作业总量控制在一课时内可完成。必做一:实现pow_rec(x,n)求x的n次幂,n为非负整数,要求递归版与循环版各一,提交五个用例含n等于0。必做二:把课堂fib朴素树手工补到n等于7,圈出重复节点,写三行说明缓存如何改变展开形态。选做三:给定嵌套列表表示的菜单,输出每层缩进与最深层级,需处理空列表。挑战四:阅读归并排序骨架,只写merge前的一次递归切分日志,说明为何单元素序列天然有序。所有作业附同一种自检清单:我定义的边界是否能让最小孩子直接回答;每次调用是否离边界更近;我是否接住返回值而不是假设它自动生效;我是否测试了空、一、刚好越界。清单比分数更重要,学生签字确认已完成自检后再提交,教师批改时优先看自检出错的诚实记录。十、可能的误教与纠偏误救一是过早给出口诀“大事化小小事化了”,听上去顺口,却把递归神秘化成生活态度。纠偏要回到可执行语句:化了之后仍要组合,组合依赖return路径。误教二是拿阶乘当唯一代表,学生会把递归理解为延迟乘法。纠偏需至少并列值返回、动作序列、结构遍历三类样本,让“返回类型”和“回传装配”呈现多样性。误教三是以RecursionError作恐吓,学生形成“递归危险勿碰”的阴影。纠偏应展示受控深探、限制深度与缓存后的可控面,让风险成为设计参数而非禁令。误教四是用动画替代编码。动画能建立动感,也会让学生以为理解等于看过。每个可视化后必须落到一次键盘修改:改边界,改参数顺序,改返回拼接,改缓存键。理解是否发生,看修改后的预测是否更准确。误教五是片面追求最短代码。递归常能写得短,短不等于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年公共文化服务考核笔试真题
- 2025年中小学普通话教研员公开招聘笔试真题及答案
- 品牌管理课后试题及参考答案大全
- 2025年普通高中课程改革教研员招聘笔试试题(附答案)
- (培训体系)调度培训考试题库含答案
- 2026年事务所审计助理招聘笔试题库
- 园区破损路面修补年度计划
- 八年级语文阶段复习古诗词赏析判断题双基过关卷综合应用版
- (正式版)DB13∕T 641-2005 《果品无公害运输技术规范》
- Matlab期末创新试题及对应答案
- 2025-2026学年小学四年级上学期班主任工作计划
- CJ/T 152-2016薄壁不锈钢卡压式和沟槽式管件
- 中医头疗课件
- 2024秋季部编版小学五年级上册语文核心素养大单元教学全册教案(表格版)
- 赔偿协议书合同
- 非标设备定制合同协议
- 宠物临床检查技术 课件 3临床六大基本检查方法
- 还款计划还款协议书
- 中国卫生经济学会卫生健康经济管理研究课题申请书
- 建筑工程的环境保护
- GB/T 44668-20240岁~6岁视障儿童早期干预机构服务规范
评论
0/150
提交评论