第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。
巡视重点
用具体一轮说明,保存枚举、核对表和更新记录。