第11课 古厝台阶有几种走法

45分钟 · 14页课件配套 · 先完成小步、主任务与独立测验,迁移拓展选做。每页含讲述、提问、答案与巡视重点。教师参考在学生独立作答后使用。

第11课 · 教师逐页讲稿

第01页 古厝台阶有几种走法

建议用时 1 分钟

讲述与活动

请学生打开第11课,准备纸笔。说明本课进入算法挑战,基础目标是能按规则列小例子、核对五级台阶的结果;进阶目标是解释两项相加与旧值保存。允许先用自然语言和表格说明,不要求记住某个数列名称。古厝只是课堂情境,台阶级数与走法规则均由本题设定。
课堂安排:共45分钟。教师精讲,学生在离线网页独立操作。课前打开包内本课HTML,无需班级座号登录或联网,等待内嵌Python完成本机初始化。绿色下划线文字为对应课程的可点击入口。
本套课件承接第1课,所有插画只作教学情境示意。封面背景使用生成式插画。 45分钟优先完成小步、主问题和独立测验;迁移与递归、复杂保护等拓展可课后完成。绿色链接指向包内课程,保持目录完整。

提问

基础与进阶目标分别是什么?

参考答案

基础是列小例子、核对5级8种;进阶是解释按最后一步分类与两个旧值的更新。

巡视重点

允许用纸条和变量表解释,先不背数列名。

第11课 · 教师逐页讲稿

第02页 台阶问题的规则

建议用时 3 分钟

讲述与活动

用两张写着1和2的纸条交换位置,提示学生注意步序而不是只看相加结果。请学生用自己的话重述允许的步长和终点要求,排除一次走3级或超过终点的路线。说明这里的不同顺序算不同走法是模型规则;规则改变,结果也会改变。随后以4级台阶作为教师变式,避免只背离线网页三阶题目的数量。

提问

1+2与2+1为什么分开计数?

参考答案

步序不同,本题明确按不同路线分别计数,虽然都到达3级。

巡视重点

只能每步1或2级且恰好到终点。

第11课 · 教师逐页讲稿

第03页 按最后一步给4级台阶分类

建议用时 3 分钟

讲述与活动

先让学生找每条路线最后一步,再看竖线前面的子路线。左边必须先到3级,有三条;右边必须先到2级,有两条。两类最后一步长度不同,所以不会重叠;本题只允许1或2级,所以没有第三类。请学生解释为什么可以相加,避免把递推式当作观察几个数字后的猜测。

提问

4级按最后一步怎样分类?

参考答案

最后1级来自3级的3种路线,最后2级来自2级的2种路线,共5种;两类无重叠且覆盖全部。

巡视重点

要求解释分类依据,不凭数字猜规律。

第11课 · 教师逐页讲稿

第04页 新值计算与旧值保留

建议用时 3 分钟

讲述与活动

告诉学生此处已知相邻两项为8和13,先不纠缠级数名称,把三行更新当成传递纸条的操作。请学生每执行一行记录三个变量,预期新结果先保存在next_count,随后previous接旧current,current接新结果。追问第一行计算时用了哪两个旧值,强调赋值按顺序立即发生,变量不会自动记住旧值。

提问

previous=8、current=13更新后是什么?

参考答案

先算next_count=21,再令previous=13、current=21,输出13 21。

巡视重点

每行立即生效,先计算新项再覆盖旧项。

第11课 · 教师逐页讲稿

第05页 初值与逐轮推算

建议用时 3 分钟

讲述与活动

解释0级的一种空走法表示不走,作为统一递推的起点,而不是“走了一步”。1级只有连续走1级这一种。请学生跟踪表格第一轮:先得到2,再移动两个旧值。之后抽一行让学生口算。每行结束后current表示本行级数的走法数,previous表示前一级,帮助学生始终给变量配上含义。

提问

初始previous与current为什么都为1?

参考答案

分别代表0级的一种空走法与1级的一种走法,数值相同但含义不同。

巡视重点

0级的1不表示走了一步。

第11课 · 教师逐页讲稿

第06页 完整循环:每级计算一项

建议用时 3 分钟

讲述与活动

逐行对应上一页表格,说明range(2, n + 1)产生2至n,不包含右端点n+1。请学生预测n=1时是否运行循环,预期没有新的级数需要计算,直接保留初值current为1。强调本课先学习明确的临时变量写法,不急于压成一行;能解释每一轮变量代表哪一级,比代码更短重要。

提问

n=5循环几次,输出什么?

参考答案

从第2级到第5级共4轮,输出8;n=1不执行循环,保留1。

巡视重点

range终点n+1不包含;三行更新顺序不变。

第11课 · 教师逐页讲稿

第07页 5个小步

建议用时 8 分钟

讲述与活动

学生进入第11课“学一学”,按五个小步推进。巡视时先检查学生能否说清一条路线的步序,再检查变量更新。对卡在代码题的学生,用纸上三列表让他逐行填值,不直接指向空格答案。较快者为同桌解释为什么两类路线互不重叠,不提前覆盖别人的代码。基础学生先完成小规模验证,进阶解释允许课后补充。

提问

前三步的小例子有什么作用?

参考答案

先核对计数规则与初值,再用代码验证前两项相加,避免只抄大数答案。

巡视重点

基础学生优先完成小例子,完整推导可继续练习。

教师参考

古厝台阶先看两级:2种
解释:两种是“2”和“1+1”;这些是练习规则,不是在描述某处古厝的实际台阶。
先后顺序算不同:算两种,因为先后顺序不同
解释:1+2与2+1的先后顺序不同,分别算一条走法。3级还有1+1+1。
前两项相加:3
解释:到3级共有2 + 1 = 3种;分组依据是最后一步的长度。
用旧值算两级:previous = 1
current = 1
next_count = previous + current
print(next_count)

预期输出:2
解释:1 + 1 = 2,对应2级的两种走法。0级约定1种空走法用于起步。
临时保存到四级:previous = 1
current = 1
for step in range(2, 5):
next_count = previous + current
previous = current
current = next_count
print(current)

预期输出:5
解释:先计算新项,再依次替换旧项;current经过2、3、5,最后表示4级的5种走法。
第11课 · 教师逐页讲稿

第08页 旧值提前覆盖的后果

建议用时 3 分钟

讲述与活动

让学生用第4页教师变式中的8和13作检验,分别手动执行正确与错误次序。错误程序语法合法,也能输出数字,因此需要用原规则核对。请学生指出是哪一行覆盖了哪一个旧值,不能只说“顺序错了”。临时变量保存的是刚算出的新结果,让接下来的两次替换不会破坏计算所需的信息。

提问

若先previous=current,再相加,会怎样?

参考答案

原8被13覆盖,计算成13+13=26,丢失较早一项。

巡视重点

指出具体哪行覆盖哪个旧值,不能只说“顺序错”。

第11课 · 教师逐页讲稿

第09页 四组台阶数据的检验

建议用时 8 分钟

讲述与活动

学生使用离线网页第11课完整程序,保留n、previous、current、next_count这些有明确含义的变量。基础核对为1级1种、2级2种、5级8种、10级89种。巡视时关注range上界是否遗漏n,以及current是否误更新成previous。请学生至少展示一次运行前预测和运行后输出;只复制表格数值不能替代真实运行记录。 本课程包提供8组公开检验。本课固定检测核对current,并要求打印current结果。可增加解释标签,但不能只改标签或写死答案。 通过只说明公开样例符合规则,仍要解释数据与执行过程。

提问

n=1、2、5、10的走法数是什么?

参考答案

依次1、2、8、89;还需纸笔跟踪一轮previous、current、next_count。

巡视重点

保留检测变量,要求真实运行记录。

第11课 · 教师逐页讲稿

第10页 小规模与边界核对

建议用时 2 分钟

讲述与活动

先强调0级是约定的空路线,数字1有明确的计数含义;它并不代表迈了一步。请学生检查n=0或1时range为空,current保留1,符合本课约定。小数据负责核对规则和初值,较大数据负责检验多轮更新。负数台阶不在本题输入范围,不能把程序碰巧输出的数字解释成有效走法数。

提问

n=0和1为什么都输出1?

参考答案

0级约定一种不走的空路线;1级只有走1级的路线。两种情况循环都为空。

巡视重点

负数不在规则内,不解释偶然输出为有效答案。

第11课 · 教师逐页讲稿

第11页 迁移:20级台阶

建议用时 2 分钟

讲述与活动

请完成基础核对的学生将n改为20,先估计数量再运行,结果10946种。强调循环19轮是在计算走法总数,不是在逐条走完10946条路线。引导学生体会利用较小问题结果的价值,同时避免笼统地说程序“瞬间枚举全部”。提醒本算法仍依赖每次只能走1或2级的原规则。 此页为选做,基础未完成者继续主任务;改变算法规则的迁移另存副本,到验证实验或用手算预期核验,返回原检测前恢复主任务。

提问

20级有多少种,程序循环多少轮?

参考答案

10946种;从第2到20级计算19轮。计数过程没有逐条枚举10946条路线。

巡视重点

区分算法轮数与路线总数。

第11课 · 教师逐页讲稿

第12页 走法规则改变以后

建议用时 1 分钟

讲述与活动

把问题留作算法迁移,不要求现场写完整新程序。预期按最后一步1、2、3级分三类,分别来自前一、前二、前三个位置,需要相应初值与三项旧结果。对只说把旧结果乘3的学生,追问三个来源的数量是否相同。重点评价能否从规则重新分类,而不是套用前两项相加。

提问

允许1、2、3级时还能只加前两项吗?

参考答案

不能。按最后一步分三类,需前1、前2、前3级结果和相应初值;1/2/3级为1/2/4。

巡视重点

先说分类,完整新程序选做,不挤占测验。

第11课 · 教师逐页讲稿

第13页 知识检测与自评

建议用时 4 分钟

讲述与活动

保持离线网页测验独立完成,不把题目中的旧值直接代入投屏演算。学生提交后可使用纸上变量表自行订正。巡视重点检查他是否理解赋值发生的先后,以及不同顺序为什么分开计数。自评依据应包含一次真实枚举或跟踪记录,未能解释的项目暂不勾选。基础与进阶目标分层反馈,不因尚未完整推导就否定已完成的小例子。 按真实表现自评;完成后导出学习记录JSON、学习报告或代码,记录仅在本机保存。

提问

怎样用三行更新题订正?

参考答案

每行后写出三个变量,确认next_count先保存两项旧值之和,然后再移动两项。

巡视重点

先独立提交,再比较自己的跟踪表。

教师参考

知识题1:3种。
解释:三种为1+1+1、1+2、2+1;后两种先后不同,所以分别计数。
知识题2:5和8。
解释:先算next_count为8,再把previous设为旧current的5,最后把current设为8。
知识题3:原previous已被覆盖,算成了两个current相加。
解释:赋值会替换旧值。提前把previous设成current,就丢掉了较早一项,下一项不能再由原来两项相加得到。
第11课 · 教师逐页讲稿

第14页 分类、递推与核对

建议用时 1 分钟

讲述与活动

请学生用自己的话解释两项相加的来源,而不是报出数列名称。再请另一名学生说出临时变量保护了什么信息。总结本课从小例子、分类到状态更新的过程,下一课会用类似的分解思想研究汉诺塔,但新的规则将产生不同的更新式。提醒即使AI给出代码,也要自己核对初值和每轮变量含义。

提问

临时变量保存了什么?

参考答案

保存刚算出的新项,让旧current移给previous后,新项仍可赋给current。

巡视重点

用具体一轮说明,保存枚举、核对表和更新记录。