测验生成器 quiz-generator

测验生成器是一个用于创建高质量互动测验的工具,专门生成50道概念性题目,采用随机分批显示机制(每次15-20题),提供即时反馈和详细解释。适用于教育评估、在线学习平台、企业培训等场景,确保测验的科学性和公平性。关键词:互动测验生成、概念性评估、即时反馈、答案均匀分布、选项长度控制、教育技术工具、在线学习评估、测验质量保证

教育技术 0 次安装 0 次浏览 更新于 3/1/2026

name: quiz-generator description: | 使用Quiz组件生成50道题的互动测验,采用随机分批方式。 用于创建章节末评估。每次会话显示15-20道题,并提供即时反馈。不适用于静态Markdown测验。 version: “5.0.0” allowed_tools: [“Bash”, “Read”, “Write”] replaces: “quiz-answer-redistributor (v3.0.0)”

测验生成器

快速开始

# 1. 为章节生成50道题
# 重点放在概念性题目(75%以上为应用级别),而非记忆性题目

# 2. 均匀重新分配答案
python scripts/redistribute_answers_v2.py quiz.md A

# 3. 验证选项长度(每道题选项之间±3个单词)
# 手动统计所有50道题的单词数

角色定位

您生成大学级别的概念性测验,旨在测试理解而非记忆。您的目标是创建50道涵盖所有章节概念的综合性题目,并为每个答案提供即时反馈。

固定约束

question_count: 50  # 综合性题库
questions_per_batch: 15-20  # 每次会话显示数量
options_per_question: 4  # 始终为4个选项
correct_answer_distribution: ~12-13 per index (0-3)  # 每个索引约12-13个正确答案
feedback_timing: immediate  # 每个答案后立即反馈
passing_score: NONE  # 无通过分数阈值
file_naming: ##_chapter_##_quiz.md  # 文件命名

分析问题

1. 这是概念性的(而非记忆性的)吗?

类型 示例 有效?
记忆性 “什么是Python列表?”
概念性 “哪个操作揭示了可变性问题?”

目标:75%以上为应用级别或更高

2. 选项长度是否相等(±3个单词)?

选项 单词数 有效?
A: “是” / B: “它处理异步” 2 vs 4
A: “是” / B: “该框架异步处理请求” 2 vs 6

规则:所有选项长度在±3个单词内,以防止模式猜测

3. 答案是否均匀分布?

索引 数量 有效?
0 12-13
1 12-13
2 12-13
3 12-13

规则:无连续3个以上相同索引,无明显模式

原则

原则1:需要50道题

  • 全面覆盖(所有章节概念)
  • 间隔重复(每次重测显示不同题目)
  • 组件每次会话随机显示15-20道题

原则2:即时反馈

每个答案后显示(非结束时):

  • ✅ 正确答案高亮显示(绿色)
  • ❌ 错误原因(如果答错)
  • 解释(100-150字)

原则3:涵盖所有选项

每个解释必须包括:

  1. 为什么正确选项是正确的(2-3句)
  2. 为什么每个干扰项是错误的(1-2句 × 3)
  3. 现实世界联系(1-2句)

原则4:来源归属

source: "第1课:理解可变性"

将每个问题链接到特定课程以供复习。

测验组件格式

---
sidebar_position: 5
title: "第X章:[主题]测验"
---

# 第X章测验

简要介绍(1-2句)。

<Quiz
  title="第X章评估"
  questions={[
    {
      question: "概念性问题在此?",
      options: [
        "选项A(4-6个单词)",
        "选项B(4-6个单词)",
        "选项C(4-6个单词) ← 正确",
        "选项D(4-6个单词)"
      ],
      correctOption: 2,  // 索引0-3,非1-4!
      explanation: "为什么C正确(2-3句)。为什么A错误(1-2句)。为什么B错误。为什么D错误。现实世界联系。",
      source: "第1课:主题标题"
    },
    // ... 更多49道题(总计:50)
  ]}
  questionsPerBatch={18}
/>

答案重新分配

大语言模型难以实现均匀分布。生成后使用脚本:

python scripts/redistribute_answers_v2.py quiz.md A

序列A-H提供不同的分布(每个索引约12-13个)。

功能

  1. 解析测验问题
  2. 交换选项位置以匹配序列
  3. 更新解释以引用新位置
  4. 验证所有解释与正确答案匹配

选项长度验证(关键)

问题:长度不等的选项让学生通过选择最长/最短来猜测。

解决方案:手动统计每道题每个选项的单词数。

✅ 通过:4, 5, 4, 5个单词(全部在±3内)
❌ 失败:2, 4, 11, 3个单词(2到11 = 9个单词差异)

还需验证

  • 最长选项正确的比例约25%(无偏差)
  • 最短选项正确的比例约25%(无偏差)

常见陷阱

陷阱 错误 正确
问题数量 <50道题 恰好50道
索引值 correctOption: 4 correctOption: 3 (0-3)
缺少来源 无来源字段 source: "第N课:标题"
通过分数 passingScore={70} 无此属性(已移除)
记忆性问题 “什么是X?” “哪个揭示了X问题?”
弱解释 仅解释正确选项 涵盖所有4个选项
答案模式 0,1,2,3,0,1,2,3… 随机,每个索引约12-13个
选项长度 2 vs 11个单词 全部在±3个单词内

文件命名

模式##_chapter_##_quiz.md

章节 课程数 文件名
2 4 05_chapter_02_quiz.md
5 6 07_chapter_05_quiz.md
14 5 06_chapter_14_quiz.md

交接清单

内容

  • [ ] 50道题(不少于)
  • [ ] 75%以上为应用级别或更高
  • [ ] 涵盖所有主要主题
  • [ ] 无记忆性问题

分布

  • [ ] correctOption使用0-3(非1-4)
  • [ ] 每个索引约12-13个
  • [ ] 无连续3个以上相同索引

选项长度

  • [ ] 统计所有选项(所有50道题)
  • [ ] 全部在±3个单词内
  • [ ] 最长选项正确无偏差
  • [ ] 最短选项正确无偏差

解释

  • [ ] 每个100-150字
  • [ ] 解释为什么正确
  • [ ] 说明每个干扰项
  • [ ] 现实世界联系

格式

  • [ ] 有效的JSX语法
  • [ ] 每道题恰好4个选项
  • [ ] 所有50道题都有source字段
  • [ ] 无passingScore属性
  • [ ] 文件命名正确

如果验证失败

  1. 运行重新分配脚本:python scripts/redistribute_answers_v2.py quiz.md A
  2. 重新手动统计选项长度
  3. 检查解释引用是否与correctOption匹配
  4. 如果两次尝试后问题仍然存在,请停止并报告