汉语综合课分层作业工坊
把一个课时的真实教学材料,变成 可直接打印的学生作业 + 教师答案评分卡 + 讲评单 + 质检报告。核心不是"多出几道题",而是让作业的每一道题都能追溯到本课语言点,并且让不同起点的学生在 30 分钟内都有可完成、可反馈的任务。
何时使用
- 上完一节初级/中级汉语综合课,需要当天布置作业。
- 班内出勤、作业完成度、识字量差异大,一份作业不够用。
- 需要把缺勤学生拉回同一语言点,而不是简单"补抄生词"。
- 需要给教研组/课程考核留下可复核的作业设计依据。
不适用:纯口语课无书面作业;没有课时材料、只凭课题名称生成(信息不足时必须先要材料);需要自动批改学生手写照片(本技能只生成答案与评分规则,不做 OCR 判卷)。
输入
至少需要:
- 课时材料:PPTX / DOCX / PDF / 纯文本。优先使用教师本人的课件,因为词表、例句、课文顺序都以它为准。
- 班级学情摘要:只写人数、出勤人数、作业完成分布、已学语言点、常见错误。不要输入学生姓名、学号、手机号、成绩排名。
- 作业约束(可选):总时长、截止时间、是否需要录音、是否允许家长协助、是否使用英文指令。
如果用户只给课题,先要求补充课件或教材页;不要凭空编课文。
知识库
运行前必须读取:
references/teaching-profile.md:默认学情、分层定义、作业政策、纠错代码、禁用词规则。references/lesson-05-language-points.md:真实课例的语言点清单(可作为提取格式的样例,不可当作所有课时的内容)。references/quality-rubric.md:出题与质检标准。examples/lesson-05.spec.json:完整规格样例。examples/lesson-05.spec.v1.json:第一版反例,用来说明哪些做法会被质检拦截。
技能自带的是规则与模板;每课的事实来源必须是用户提供的课时材料。两者冲突时,以课时材料为准,并记录冲突。
工作流
第 0 步:建立可追溯的课时清单
从材料中抽取并编号:
- 课文段落与目标句
- 生词(汉字、拼音、词性、英文释义、一个课内例句)
- 语言点(结构、形式、意义、使用条件、课内原句)
- 文化/语境信息
- 原作业页(如果有)
写入 lesson-spec 的 source_map,每题后面必须能指回 source_map 的编号。不要用"常见 HSK 词表"替代本课词表。
第 1 步:先做"作业预算"
按下面的默认预算,除非教师另有要求:
| 任务 | 对象 | 时间 | 题量上限 |
|---|---|---|---|
| 必做基础 | 全体 | 10 分钟 | 12 小题 |
| 巩固运用(二选一) | 多数学生 | 12 分钟 | 8 小题 |
| 拓展挑战(二选一) | 学有余力 | 8 分钟 | 2 题 |
| 合计路径 | 必做 + 一个选做 | ≤ 22 分钟 | — |
硬规则:任何一条实际路径(必做+巩固,或必做+拓展)不得超过 30 分钟;一页不能塞超过 3 种题型;每个板块首页必须写清预计时间。
第 2 步:生成 spec.json
按 examples/lesson-05.spec.json 的结构写。每个 item 必须有:
no:题号,A/B/C 开头type:题型point:语言点代码(如V1、VOC、P1)minutes:预计分钟(整数)stem:题干(学生看得懂的中文,可加英文指令)options/lines/answer/explanation/rubric
答案不能写"略"。开放题必须给可观察的评分点和参考答案。
第 3 步:运行生成器
python3 scripts/build_pack.py \
--spec examples/lesson-05.spec.json \
--out out/lesson-05
生成:
第五课_分层作业.docx(学生版,无答案)第五课_答案与评分卡.docx(教师版)第五课_答案与评分卡.xlsx第五课_教师讲评单.md第五课_质量检查报告.jsonmanifest.json(SHA-256)
第 4 步:跑质检,不合格不交付
python3 scripts/validate_pack.py \
--spec examples/lesson-05.spec.json \
--out out/lesson-05
必须全部通过:
- 时间预算:每条实际路径 ≤ 30 分钟。
- 答案覆盖:100% 题目有答案/评分点。
- 语言点覆盖:本课每个核心语言点至少被 1 道题覆盖。
- 词表边界:题干和答案不出现
banned_words,不出现未教词(专有名词除外)。 - 同音难点:本课出现"站/蘸"时,必须有辨析题和
zhàn的读音/语境说明。 - 隐私:输出中不得出现学生姓名、学号;只允许聚合数字。
- 可打印:A4、每页有页脚、答题横线长度足够、答案不混入学生版。
任何一项失败:先修 spec.json,不要改质检脚本放行。
第 5 步:教师复核(人工,不可省)
交付前由教师本人做三件事:
- 朗读一遍题干,确认没有超出本课词表的表达。
- 做一遍答案,确认没有歧义、没有两个正确答案。
- 按班级实际把学生分到"基础/巩固/拓展"三条路径,只在教师版写组别,不在学生版写等级。
第 6 步:进入教学工作流
备课时:课件/教材 → 本技能 → 打印作业
课后:学生完成 → 教师用答案卡批改 → 按错误码记录 → 下次课前 10 分钟讲评
缺勤:用"必做基础 + 巩固运用"作为补学包,不额外加量
单元结束:把高频错误码回填到下一课的 constraints,形成循环
第 7 步:留痕
每次生成保留 spec.json、质检报告、manifest。改进技能时,用同一份输入重跑,比较题量、时长、答案覆盖率、教师复核问题数,而不是只凭感觉说"更好了"。
出题规则(必须遵守)
- 一课一清单:所有词汇、语法、课文事实来自本课材料;需要复现旧词时,在
source_map标注"复现"。 - 先保底,再拔高:基础题只考"识别—抄写—单句控制",不考开放式表达。
- 不考没教的:新词不超过本课词表;超纲词一律替换,不用"注释一下"来绕过。
- 每题一个主要目标:不要一道题同时考生词、量词、语法和文化。
- 答案可判定:填空必须有唯一答案或明确的可接受答案列表;开放题必须给评分维度。
- 难度靠支架,不靠加量:拓展题给句型框架、内容要点、词库,而不是把字数翻倍。
- 不公开分层标签:学生版用"必做/二选一";教师版才写 A/B/C 与建议名单。
- 保护隐私:不写学生姓名、学号、国籍组合;用"19/25 人有出勤记录"这样的聚合数据。
- 中文为主,英文为辅:指令可双语;生词给拼音;不把整道题翻成英文。
- 可打印:A4,正文不小于 10.5 pt,行距 1.3–1.5,答题线不少于 1.2 cm。
输出契约
学生版必须包含:封面(课题/课时/姓名空栏/预计时间)、使用说明、必做基础、二选一(巩固/拓展)、自评表、词库/句型卡。学生版不得出现答案、评分标准、组别。
教师版必须包含:答案速查表、逐题解析、开放题评分量表、建议分组、10 分钟讲评流程、错误码、缺勤补学建议、下次课前测 3 题。
质检报告必须是 JSON,包含 status、checks、metrics、errors、warnings、files。
失败处理
- 材料读不出:让教师导出为 PDF/图片或粘贴课文;不要猜。
- 课时语言点不清:先输出"待确认清单",确认后再生成。
- 词表与课件冲突:以课件为准,在
source_map记录冲突,不静默改词。 - 质检失败:修规格,不修改质检阈值。只有教师明确接受风险时,才允许
--allow-invalid,并在报告里标WAIVED。 - 生成器报错:保留原始
spec.json和错误日志,先修数据,不要手改 DOCX 掩盖问题。
快速命令
# 生成 + 质检
python3 scripts/build_pack.py --spec examples/lesson-05.spec.json --out out/lesson-05
python3 scripts/validate_pack.py --spec examples/lesson-05.spec.json --out out/lesson-05
# 只质检已有产物
python3 scripts/validate_pack.py --spec examples/lesson-05.spec.json --out out/lesson-05 --json
# 第一版反例(会被拦截,仅用于教研比较)
python3 scripts/build_pack.py --spec examples/lesson-05.spec.v1.json --out out/v1 --allow-invalid
版本记录
- 2.1.0:增加"每条实际路径 ≤30 分钟"硬校验;把 A 层开放题改为受控单句;增加同音辨析必检;输出隐私扫描。
- 2.0.0:脚本化 DOCX/XLSX 生成;答案覆盖率 100%;教师讲评单与错误码。
- 1.0.0:仅提示词模板,三档题量靠模型自由发挥,答案常写"略"。