多项选择题的低调力量
如何充分利用多选题的教育潜力
我过去以为选择题是教学中的廉价座位。
适合检查某人是否记住了术语。不适合判断他们是否真的会用这个概念。标准化考试还行,但应付学习的混乱过程就不太行了。
后来我开始设计编程测验。
让我惊讶的不是选择题能规模化——这谁都知道。真正让我意外的是,一组好的选项本身就能在解释出现之前完成教学。
一道选择题最有用的部分往往不是正确答案。而是你故意选错的那些答案。
干扰项就是课程本身
大多数糟糕的选择题只有一个正确答案、一个接近正确的答案,以及两个明显是作者等咖啡时随手写的选项。
这浪费了这种题型。
在好的测验中,每个错误答案都代表一种真实的理解偏差:
- 从另一种语言借用的语法
- 旧代码中仍然存在的遗留模式
- 在某个条件下会失效的看似合理的心智模型
- 如果问题中某个词变了就会变成正确答案的选项
教学就发生在这里。学习者不仅仅是在选择一个选项。他们是在暴露自己正在使用哪种心智模型。
一道题,多重深度
以这个 PostgreSQL 问题为例:
在 PostgreSQL(v10+)中,自增 IDENTITY 列的(SQL 标准)语法是什么?
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY✅(正确)id SERIAL PRIMARY KEY(遗留语法)id INT IDENTITY(1,1)(SQL Server 语法)id INT AUTO_INCREMENT(MySQL 语法)id NUMBER GENERATED ALWAYS AS IDENTITY(Oracle 语法)
这道题在不同专业水平上服务于多个教学目的:
- 初学者关注基本的 PostgreSQL 语法,主要区分当前与遗留写法
- 中级学习者需要辨析相似语法之间的细微差异
- 高级从业者必须运用跨平台知识,同时保持对特定版本实现的精确把握
这道题不仅仅在询问语法。它是在区分心智模型。
选 SERIAL 的人很可能从较老的示例中学过 Postgres。选 IDENTITY(1,1) 的人带着 SQL Server 的肌肉记忆。选 AUTO_INCREMENT 的人知道概念但不熟悉方言。这些都是不同的教学时刻。
如果解释只说“A 是正确的”,那这道题就浪费了它最好的数据。
编写测验教会我的事
编写测验迫使我更精确地思考我真正希望读者学到什么。
一篇文章可以把模糊的解释藏在流畅的散文中。测验不行。错误的答案会暴露出这个概念是否有真正的边界。
现在当我写一道编程题时,我会问:
- 一个聪明人如果只理解了一半,会选什么?
- 在邻近的生态系统中,哪个答案会是正确的?
- 哪个答案保留了常见的误解?
- 是哪个微小的条件让正确答案成为正确的?
这些问题让教学更锐利。它们也让文章更锐利,因为测验变成了对解释本身的测试。如果我写不出四个可信的选项,那我很可能还没有找到真正的概念。
反馈循环才是关键
多选题在大规模上是有用的,是的。评分是自动的。模式变得可见。你可以看出哪些题太简单、太模糊,或者不小心在考冷知识。
但更好的反馈循环发生在学习者点击之前。
作者必须建模学习者可能犯的错误。这意味着作者必须尊重学习者。一个懒惰的错误答案说:“我需要填充物。”一个有力的错误答案说:“我确切知道这个想法会如何偏离轨道。”
这就是为什么我一直在本站使用多选题。不是因为它们高效——虽然它们确实高效——而是因为它们迫使一种仅靠散文可以回避的教学诚实。
下次你写一道题时,不要从正确答案开始。从误解开始。正确答案会有一个更好的立足之地。