交错练习 从题型辨别到方法选择
先看案例与关系图,再把方法应用到自己的材料和记录。
章节速览7 节 · 展开选择
一道题如果放在“revert 练习”这一节,方法已经由标题给出。真正遇到问题时,情况往往不同:是想看内容差异,用新提交修订已共享修改,还是找回本机曾经指向的提交?知道每个术语的定义,还没有回答该选哪一种。
间隔复习讨论怎样提取、何时再练。本文再增加一个选择:同一次练习里,不同类型的题怎样排列,才能让方法选择本身也成为需要回答的问题。下面的 Git 卡片与时间表都是原创教学设计,没有收集学习者数据,也没有测量学习收益。
题目混排、时间间隔与闭卷回答各有含义。
说明条件,选择方法,解释为什么适用。
区分选错方法与执行出错,再换情境检查。
分块、交错、间隔与随机,分别改变什么
分块把同一类型的练习集中在一起,例如先做完三个 A,再做三个 B、三个 C。交错把不同类型穿插在同一序列中,使学习者较常重新判断当前面对什么问题。交错不要求严格的 ABC 循环,也不要求每一对相邻题都属于不同类型。
间隔关注同一内容或技能的两次学习之间隔了多久;交错关注期间穿插了哪些类型。混排往往也会改变同类题的间隔,所以仅比较两份普通题单,未必能把两个因素的作用分开。
| 安排 | 主要改变 | 一个例子 | 不能由此直接推出 |
|---|---|---|---|
| 分块练习 | 同类题连续出现 | AAA、BBB、CCC | 连做顺畅就能独立选方法 |
| 交错练习 | 不同类型的相邻关系 | ABC、BCA、CAB | 这种排列对所有任务都更好 |
| 间隔安排 | 两次学习的时间距离 | 今天练 A,几天后再练 A | 一定在同一次练习中混了题型 |
| 随机排列 | 用随机过程决定次序 | 一次洗牌恰好得到 AABCB BACC | 保证没有同类相邻或每类题数相等 |
| 提取练习 | 作答时是否先盖住答案 | 先说明方法与理由,再核对 | 已经跨天安排或已经交错 |
上表随机例子去掉空格后是 AABCBBACC,仍有 AA、BB、CC 相邻。只有先固定题库为每类三题,再做不放回洗牌,题数才会保持;如果每次独立抽一种题型,连每类三题也无法保证。随机是一种排题办法,交错描述的是安排特征,两者不能互相替代。
原始研究为什么要把间隔单独控制
Taylor 与 Rohrer(2010)比较儿童练习四类数学题的分块与交错安排,并固定同类题的间隔。交错组练习当时的表现较差,但次日测试较好;错误分析提示,差异涉及把题目与适当解法配对。USF 原始论文摘要与出版社发表信息可核对任务与结论,DOI 为 10.1002/acp.1598。
这说明讨论交错时,应检查方法选择与时间间隔,而不能只说“做题更费劲”。这是一项特定数学任务的结果,不能换算成本站 Git 练习的预期收益;本文也没有复现其材料、程序或测试。
Carvalho 与 Goldstone(2014)进一步用人工视觉类别检验边界。在其第一项实验中,类内与类间都高度相似的材料更有利于交错,类内与类间都低相似的材料则更有利于分块。原文的类别切换操作是两种不同概率,并非纯粹的 AAA 或 ABC 序列;共同特征与区分类别所需的线索会影响安排的结果。见作者实验室托管原论文与 DOI 10.3758/s13421-013-0371-0。
因此,先集中比较一类例子、寻找共同结构,也有自己的位置。本文建议先问“当前困难是还没看懂一种方法,还是看懂之后经常选错”,再设计练习;这是结合任务作出的教学建议,不是从上述实验得到的通用最优规则。类别相似度也不能凭文章标题或主观熟悉感直接量化。
把方法标题改成需要辨别的情境
下面以已经读过的三组 Git 内容为前提。A 对应差异审查,B 对应 revert,C 对应 reflog。每组各写三张变式卡;目标只是在给定条件下选择检查方向并解释理由,没有要求执行仓库操作。
| 备课编号 | 给学习者的情境 | 核对时检查的要点 |
|---|---|---|
| A1 | 同一文件暂存后又编辑,想知道尚未暂存的部分是什么。 | 差异审查;比较工作区与暂存区。 |
| A2 | 提交前想看下一次快照相对 HEAD 准备带走什么。 | 差异审查;比较暂存区与 HEAD。 |
| A3 | 两个已知提交都还在,想比较某文件在两个快照里的内容。 | 差异审查;明确两端提交与文件范围。 |
| B1 | 已共享提交 B 打开了错误功能,后续 C 只改独立说明;希望追加修订撤销 B 的修改。 | revert;在明确独立修改且成功应用的前提下,保留 C 的说明。 |
| B2 | 已知普通单父提交写错了一段文档,希望用新提交逆向修订并保留既有历史。 | revert;先确认目标提交与逆向补丁的适用性。 |
| B3 | 一次普通撤销已成功产生新提交,想解释原错误提交是否仍在祖先中。 | revert 的历史模型;逆向修改不等于移除原提交。 |
| C1 | 本机脱离分支时提交过,切回 main 后不在 main 的祖先里,想寻找曾经的位置。 | 先查本地 HEAD 引用日志,再核对完整对象身份;不保证记录仍存在。 |
| C2 | 本机一个仍存在的分支刚改变了指向,想查这个分支以前指到哪里。 | 先查该分支的本地引用日志;区别于只沿当前父关系向前走。 |
| C3 | 本地位置记录里同一对象出现多次,想判断这是否意味着产生了多个新提交。 | reflog 记录引用更新;同一提交可多次出现,条目数不是新增提交数。 |
这张表是备课与事后核对用的完整清单。练习时只展示第二列,并打散编号,盖住类别、答案与来源标题。如果题头直接写“请用 reflog 找回”,就主要在练执行或解释,没有独立检查能否先选对工具。
每题先写三句话:我需要得到什么信息;题目给出了哪些关键条件;为什么这个方向适用。方法名称可以随后写。A2 的核心是比较端点,B1 的核心是追加逆向修订,C1 的核心是本地引用过去的位置;这几件事也可能出现在同一真实工作流中。表中的类别只是当前小任务的核对约定,不表示三个工具在实际任务里互斥。
自检:C1 先用 reflog 找线索,是否就不再需要看 diff?
仍可能需要。找到候选位置后,要核对完整提交身份、内容与父关系;diff 可以帮助检查内容。这里先辨别的是“缺少哪一种信息”,不是从此只允许用一个命令。reflog 的本地记录也不保证一直保留,找不到条目不能证明提交从未存在。
相同九张卡片,预留相同二十六分钟
为了看清顺序究竟改了什么,先固定 A1 至 C3 这九张卡、每张两分钟预留,以及相同的准备和核对时间。分块顺序为 A1、A2、A3、B1、B2、B3、C1、C2、C3;本文交错示例为 A1、B1、C1、B2、C2、A2、C3、A3、B3。
| 阶段 | 示例时段 | 分块安排 | 交错安排 | 预留 |
|---|---|---|---|---|
| 准备 | 2026-10-28 19:30—19:34 | 确认已读三组材料,盖住答案 | 相同 | 4 分钟 |
| 作答 | 2026-10-28 19:34—19:52 | A1 A2 A3 B1 B2 B3 C1 C2 C3 | A1 B1 C1 B2 C2 A2 C3 A3 B3 | 9 × 2 = 18 分钟 |
| 核对 | 2026-10-28 19:52—19:56 | 按预先写好的要点检查并记错因 | 相同 | 4 分钟 |
两份安排都是每类三题、九题十八分钟,总预算 4 + 9 × 2 + 4 = 26 分钟。分块序列有两次类别切换,交错示例有八次。相同两分钟只是排程预算,题目的实际耗时不会自动相等;同类题之间的距离也发生了变化。因此,这份对照只能检查安排与预算,不能据此把个人表现差异归因于交错的独立作用。
两分钟用完仍没写清,就保留未完成回答并标注实际用时,核对阶段再回到来源。额外补读单独记账;不要偷偷延长一份安排,再声称两边时间相同。准备阶段若发现某种方法完全没读懂,应先补解释与例子,随后重新约一次练习。
图中的非循环顺序也只是一个示例,不是推荐的固定口诀。换一轮应调整题面与顺序,避免通过上一题的类别推断下一题;拿同一人先做分块再做完全相同的交错题单,还会受到重复作答、先后次序与额外练习的影响,不能当作严格效果比较。
flowchart TD A[先读懂每一种方法的例子] --> B[确定当前要辨别的条件] B --> C[选择相近任务并写核对要点] C --> D[盖住类别与答案后穿插提问] D --> E[先写目标与条件再选方法] E --> F[保留原回答与实际用时] F --> G[核对选型与解释]
把选错方法和解释出错分开记录
只写“九题对了几题”不容易指导下一次练习。有人选对 diff,却把比较端点写反;也有人熟悉 revert 的操作,但题目只是想查看变化,却一开始就选了修改历史内容的方向。前者偏向方法内的理解,后者先要检查任务辨别。
| 原回答暴露的问题 | 核对时保留什么 | 下一步可安排什么 |
|---|---|---|
| 从“看差异”误选成“撤销修改” | 原来的目标解释与选择理由 | 并排比较两个相近情境,圈出真正改变目标的条件 |
| 方法选对,但比较端点或祖先关系写错 | 错误关系与来源位置 | 回到该方法的一组例子,先补共同结构 |
| 只写名称,说不清理由 | 原回答与提示何时介入 | 补问为什么,另找时间无提示再答 |
| 当前题的目标、条件与理由完整 | 当前题面、实际日期和用时 | 换表述或新条件,再检查能否辨别 |
这里的记录栏是教学约定,不是心理测量量表。选对名称但理由错误,不应自动算作完整掌握;题面含糊、同时包含多个目标时,也应允许“先澄清问题”,不能为了凑三类而强迫唯一答案。
延迟与新情境,还要另行安排
可以暂定在 2026-10-30 用三道新题再检查,每题仍预留两分钟,共六分钟。这个日期距示例练习两天,六分钟不计入前面的二十六分钟,也没有研究证明它是 Git 知识的最优间隔。实际是否完成、是否看了提示、补读用了多久,应如实记录。
新题应保留需要辨别的结构,同时改变表面说法。比如把“同一文件暂存后又编辑”换成“界面显示两份不同的差异,应先说明各自比较哪两个位置”;把“找刚才的提交”补上“事情发生在另一台机器”,则应说出本地引用日志未必有那里的记录。新情境检查也可能暴露题面本身缺少条件,不能只按熟悉的关键词套名称。
flowchart LR
R[保存本次原回答] --> E{主要困难是什么}
E -- 辨别目标 --> C[比较相邻情境的差异]
E -- 方法内理解 --> W[集中补读一组例子]
E -- 当前题完整 --> N[准备不同表述的新题]
C --> P[记录下一次实际可执行时间]
W --> P
N --> P
P --> T[延迟后无提示尝试并核对]
自检:九题数量相同、时间预算相同,就能证明交错更有效吗?
不能。这只能说明题库与预留预算一致。两种顺序改变了同类题间隔;实际用时、先后次序、已有知识、题面线索与是否看提示等也可能不同。本文没有学习者数据,更没有控制这些因素的效果实验。要判断是否达到自己的目标,应另外用相应延迟和新任务核对表现,不能从八次切换推算收益。
给知识卡片补上一句“为什么此时用它”
从已经理解的两个相近任务开始,盖住方法标题,先解释目标、条件和选择理由。若还看不懂方法内部的共同结构,就回到一组例子;若定义会背但反复选错,再增加有依据的对照与穿插。需要回忆时,保留提取练习的原回答与核对记录;需要安排下一次时,把时间间隔单独记下来。
用知识地图连接不同方法,用引用溯源检查答案来路。交错不是把不相关的文章随意塞进一天,也不是追求最多切换次数;它为“看见条件后如何选方法”留出一个可以作答、可以核对的位置。本文内部核验见 tests/verify-interleaving-notes-article.cjs,只检查题库、排列、预算与图文一致性,不模拟人类记忆或测量学习效果。