← 首页
00:00点开始
学情 用时 0′ 尝试 0 出错 0 归因 0
B 结构期 · 第一课
让海龟自己决定:走哪条路

前 15 课,代码都是从上到下一条道走到黑——写下来的每一行都会执行。 今天第一次出现岔路口:有几行可能不会被执行。

开场 8 分钟怎么花: A 期能力清单收口(2′)→ 抛"改了一个数、图形却没变"(3′)→ 发手帖 + 预告今天的作品《学会拐弯》(3′)。
老师说 我问你们一个问题:写下来的代码,是不是每一行都一定会跑?
前 15 课答案都是"会"。今天之后,答案变成"不一定"。
第十六种陷阱:代码没坏,是你写的那个数没被选中。 一旦程序有了分支,"我改了却没反应"就是常态——第一个反应不该是"坏了", 而是"这几行为什么没轮上"。

第一步 · 岔路口的陷阱 09′–23′ · 14 分钟 · 改了一个数,图形却没变

陷阱换了(第十六种)
不是代码坏了——是那几行没被选中
老师说 下面这段里藏着一个岔路口。
先别运行——先猜:把 n 改成 1,海龟还会拐弯吗?猜完再运行验证。

三处可以动手:n 的值、条件里的 2、大于号本身。 一次只改一处、改完运行、看画布——你会发现有些行"做了",有些行被跳过了。

老师纪律:学生说"代码坏了"时不要去纠正,只问一句: 「最后那行 t.forward(120) 跑了吗?中间那两行为什么没跑?」

第二步 · 内存具象化 23′–37′ · 14 分钟 · if 到底在"问"什么

老师说 if 就是海龟问自己一句话:「n 比 2 大吗?」
答案只有两种:是 → 做"里面"的两行;不是 → 整块跳过,直接去下一行。
位置 · 横
0
位置 · 纵
0
朝向
0°
"里面"的两行靠什么认出来?靠缩进—— 就是卡片时代"退一格"的那个位置,现在换成了四个空格。
上次你靠"卡的边框"看出归属,这次靠"空格的宽度"——心里那把尺没变。
缩进不是"美观",是归属声明。 你在卡片上已经用了 15 次归属,今天只是把它写成空格。
这一步的关键动作:别急着讲运算符表。 先让学生说"这一行归谁管"——说得出归属,> 和 < 只是换个问法。
37′–47′ · 10 分钟该休息啦
休息 1 · 必须离开座位站起来动一动

喝水 / 上厕所 / 不许看屏幕。

这条要写进家长话术。 课间离屏是硬规矩——刚接触"分支",脑子需要空转一会儿才转得过来。

第三步 · 人肉电脑 47′–65′ · 18 分钟 · 不许按运行

老师说 这次不许按运行。手上走一遍:n 换成 1 以后, 哪几行会执行、哪几行会跳过?
填完再运行对答案——你自己就是编译器。
为什么坚持手推:分支的关键不是语法,是"这一轮走哪条路"。 手推一次,比看十次运行有用。

第四步 · 自己搭 65′–85′ · 20 分钟 · 写出你自己的岔路

老师说 骨架给你了,现在改成你自己的:一个 if、里面至少两行。
改 n 能换路、改条件里的数也能换路——做出别人猜不到的形状。
巡场只问三句:你这几行归谁管?条件成立才做的是哪几行? 把 n 改成 1 会变成什么样?
85′–91′ · 6 分钟该休息啦
休息 2 · 离屏伸个懒腰

喝口水,回来开始搞破坏。

第五步 · 改数试试 91′–105′ · 14 分钟 · 把一条路改成四条

老师说 目标:只改数字和符号,做出 4 种不同的图形。
改 n、改 2、把 > 换成 <——每改一处先猜会变成什么样,再运行。
位置 · 横
0
位置 · 纵
0
朝向
0°
搞破坏的目的:让学生发现"条件"才是决定走哪条路的东西。 这时再问一句:如果想让两条路都能画出来,得加什么?——引出下一课的 else。

第六步 · 读码迁移 105′–120′ · 15 分钟 · 读出它画什么

老师说 GESP 一级的真题里,分支题常常长这样:给你一段代码,问你它做什么。
今天最后一次:不运行,读一段没见过的代码,说出它会画成什么。
读码三步:① 每个 if 单独问一遍"条件成立吗" → ② 成立的那几行划出来 → ③ 按顺序连起来走一遍。不要跳步。

收尾(含在 16′ 内)

  • 填手帖:本课三问——条件是什么 / 哪几行归它管 / 不成立会怎样
  • 家庭挑战:把《学会拐弯》讲给爸妈听,说出把 n 改成几会出现什么
  • 预告(只说作品,不说知识点):下一课海龟会有两条路都能走的本事

家长话术

今天第一次出现"可能不执行"的代码,这是编程思维的一个坎。
场景照着说
家长问"今天学了啥" 「第一次学"判断":程序会先问一句"满足吗",满足才做那几行。 他今天学会了看缩进——缩进里的行才归条件管。」
家长问"为什么他改了数字图形没变" 「那正是今天要教的:代码没坏,是那个数没被选中。让他自己找出"这一轮走了哪条路", 比直接告诉他答案有用得多。」
⚠️ 不要说:「这不就是个 if 吗,很简单」—— 对三年级来说,"不是每行都会执行"是第一次遇到的抽象。

海龟的画布

(摆好卡片,按运行)

对应的 Python 代码 实时同步

本课硬事实 老师自查