TEACHER · WORKSHOP

window-poet 教师手册

145 分钟本科 / 研究生~20 人 · 1 主讲 + 1 助教

这堂课到底在教什么

表面任务:和学生一起用 DSCC 做一个"毕业留念照 + 留言诗"。

真正要教的能力,只有一件事——

看到 agent 的改动,知道什么时候该说"不"。

学生做出来的作品可以难看、可以不完美——但如果他们全程没有拒过 DSCC 一次改动,这堂课就是失败的。 rubric 的核心就围绕这一条。

六段节奏(145 分钟)

时间名字你在做什么学生在做什么
P010'上机与签到分发、兜底装、配、点头
P130'教师 demo讲 + 演 + 抛问题看,不动手
P220'Spec 共建抛三栏 + 禁用清单两人一组写 spec
P320'Plan 共建教"砍"的 7 个词打 ✓/✗/→
P450'写代码巡场、救火跑五步循环
P515'收尾抛 3 问 + 五词截图、反思、交

分阶段 runbook

P0上机与签到runbook10' P1教师 demo(讲稿 + 投屏脚本)demo30' P2Spec 共建runbook20' P3Plan 共建runbook20' P4写代码(巡场手册)runbook50' P5收尾(反思抛问 + 五词)runbook15'

每份 runbook 都有:分钟级节奏 · 你该说的话 · 学生观察点 · DSCC prompt 模板 · 兜底方案(网络挂了 / DSCC 装不上 / 全程不拒)。

上课前 24 小时必须做的事

  1. 跑通一遍完整 P1 demo——在你实际会用的投屏电脑上。摄像头、Ark key、DSCC 全链路。不要相信上次跑通过。
  2. 预发 key——每个学生一张卡片:拼音名(你分配) + DSCC 安装链接 + API key(或共享 proxy URL) + P0 检查点四条。
  3. 准备兜底 index.html——学生改崩了要能回滚。放 handouts/
  4. 打印 student/README.md(或让学生浏览器打开 student/README.html)——他们全程对照。
  5. 踩点 145 分钟——真实课堂永远超时。准备好 P4 砍到 35 分钟、P5 砍到 10 分钟的应急版。

上课前 1 小时

学生手册在哪

学生侧在 s.jupyter.pro/student/
学生侧故意不包含 P1——P1 是你的纯 demo,学生只看。每一份 teacher runbook 的时间线和 student 手册一一对应。你讲什么,他们那一刻应该在做什么,两边对得上。

建议开课时让学生浏览器打开 student/README.html,全程不关。

rubric(评分维度)

维度权重怎么判
拒绝记录40%notes.md 至少 1 条用 7 词之一的拒绝。没有 = 不及格
Spec 不含 HOW15%spec.md 里出现代码 / 库名 / <canvas> = 扣分
Plan 的 ✗ 区非空15%✗ 区至少 3 条,每条一个词的理由
作品可跑10%摄像头 → 诗 → 截图整条链路能跑完
反思回答三问20%3 问全答 = 满分;漏 1 问 = 扣 7 分

作品好看与否不计分 · 代码优雅与否不计分 · 诗好坏不计分。
只计"你是否在学这门课到底在教什么"。

红线(无论如何不要做)

1. 不要替学生接受 DSCC 的改动。 巡场时最多指着屏幕问 "这一行你读了吗",不要替他们点 yes。

2. 不要把标准答案的改造版本发给学生。 你演示的 demo 和学生做的作品必须有肉眼可见的差别。

3. 不要在 P4 巡场时写代码。 哪怕学生求你——你写一行,这堂课就废一半。最多口述思路。

4. 不要把 API key 写进前端。 P0 讲一次,P4 如果有学生这么干立即 hard stop。

5. 不要让 P5 变成发布会。 15 分钟全部给反思,不展示作品。展示留课后。

如果时间崩了

情况砍哪里
P0 超到 15'P1 砍到 25',跳过 demo 里的备选路线
P2 学生卡住直接给三栏模板,不逼他们想
P4 整体慢强制 plan 砍到 1 条 ✓。不要延长 P5
P5 没时间砍截图展示,保反思 10 分钟、保五词 2 分钟

永远先保 P5。 P5 砍掉这堂课就白上了——反思和五词是这门课唯一的带走物。

两条底线自问

下课走人之前问自己两个问题:

  1. 五个词里,拒绝这一条我是不是真的讲了?(不是一带而过,是真的举例讲过一次什么时候该拒)
  2. 至少有一个学生拒过 DSCC 一次改动吗?(一个都没有 = 下次开头要补一次)