| name | quiz-generation |
| description | Generate section-level quizzes (5-9 items) with Bloom balance, plausible distractors, LO mapping, and required explanations. Use when creating quiz.json after all classes in a section are complete. Triggered by the quiz-master agent. |
Quiz Generation โ Section-Level Assessment
์น์
๋์์ summative ํ๊ฐ๋ฅผ ์ํ. class ๋จ์๊ฐ ์๋ ์น์
๋จ์์ธ ์ด์ : class๋ formative(๋ฐฐ์ฐ๋ ์ค), section์ summative(๊ฐ๋
์ฐ๊ฒฐ ํ๊ฐ).
๋ฌธํญ ์
- 5~9๊ฐ, 10๊ฐ ์ ๋ ๊ธ์ง
- ๊ธฐ์ค ๊ณต์:
round(section_duration / 15), ์ต์ 5, ์ต๋ 9
- ๋์ผ LO์ 2๋ฌธํญ ํ์ฉ (๋ณต์ ๊ด์ ํ๊ฐ)
Bloom ๋ถํฌ (๋ฌธํญ ๋ฐฐ๋ถ)
| Section ์ ํ | Remember | Understand | Apply | Analyze | Evaluate | Create |
|---|
| ์
๋ฌธ ์น์
| 1~2 | 2 | 1~2 | 1 | - | - |
| ์ค๊ธ ์น์
| 0~1 | 1 | 2 | 2 | 1 | - |
| ๊ณ ๊ธ ์น์
| 0 | 0~1 | 1 | 2 | 1~2 | 1 |
ํ์: Apply+Analyze โฅ 2. ๋จ์ ์๊ธฐ ์์ฃผ ํ๊ฐ ๊ธ์ง.
๋ฌธํญ ํ์
mcq_single (๋จ์ผ ์ ํ)
- ์ ํ์ง 4๊ฐ ๊ณ ์
- ์ ๋ต ์ ํํ 1๊ฐ
- Bloom: Remember~Analyze ๋ชจ๋ ๊ฐ๋ฅ
{
"id":"S1.Q1", "type":"mcq_single",
"stem":"์๋ฒ ์ปดํฌ๋ํธ๊ฐ ํฌํจ๋์ง ์๋ ๋ฒ๋ค์?",
"choices":["์๋ฒ ๋ฒ๋ค","ํด๋ผ์ด์ธํธ ๋ฒ๋ค","Edge ๋ฐํ์","SSR ์ถ๋ ฅ"],
"correct":["B"],
"explanation":"์๋ฒ ์ปดํฌ๋ํธ๋ ์๋ฒ์์๋ง ์คํ๋๊ณ ํด๋ผ์ด์ธํธ ๋ฒ๋ค์ ์ง๋ ฌํ๋ ํ์ด๋ก๋๋ง ์ ๋ฌ๋ฉ๋๋ค.",
"distractor_rationales":{
"A":"์๋ฒ ๋ฒ๋ค์๋ ํฌํจ๋ฉ๋๋ค โ ์คํ๋ ค ๋น์ฐ",
"C":"Edge ๋ฐํ์๋ ์๋ฒ ํ๊ฒฝ์ ์ผ์ข
",
"D":"SSR ์ถ๋ ฅ์๋ RSC ๊ฒฐ๊ณผ๊ฐ ๋ค์ด๊ฐ๋๋ค"
},
"lo_ids":["LO-1.2"], "bloom":"Understand", "difficulty":3
}
mcq_multi (๋ณต์ ์ ํ)
- ์ ํ์ง 4~5๊ฐ
- ์ ๋ต 2~3๊ฐ, ์ ์ง๋ฌธ์ ์ ๋ต ์ ๋ช
์ ("๋ค์ ์ค ๋ง๋ ๊ฒ 2๊ฐ๋ฅผ ๊ณ ๋ฅด์์ค")
- ์ฑ์ : ๋ถ๋ถ์ ์ or ์ฌ์ค๋ซ์ฑ ๋ช
์
true_false
- ๊ฐ๋
์คํด ๊ต์ ์ฉ์ผ๋ก๋ง ์ฌ์ฉ
- stem์ ๊ต๊ณผ์์ ์ ๋ต์ด ์๋ ํ์ต์๊ฐ ํท๊ฐ๋ฆฌ๋ ๋ช
์
- Bloom์ Understand/Analyze์ ํ์ (Remember์๋ ๋ถ์ ํฉ โ ๋๋ฌด ์ฌ์)
short_answer
- ์๊ธฐ์ฑ์ ์ฉ, rubric ํ์
{
"type":"short_answer",
"stem":"์๋ฒ ์ปดํฌ๋ํธ์ SSR์ ์ฐจ์ด๋ฅผ 2๋ฌธ์ฅ์ผ๋ก ์ค๋ช
ํ์์ค.",
"rubric":[
"์๋ฒ ์ปดํฌ๋ํธ๋ ํด๋ผ์ด์ธํธ ๋ฒ๋ค ์ ์ธ (1pt)",
"SSR์ HTML ๋ฌธ์์ด์ ๋ ๋๋ง (1pt)",
"๋ ๊ธฐ์ ์ ๋์ ์ฌ์ฉ ๊ฐ๋ฅ (1pt)"
],
"lo_ids":["LO-1.3"], "bloom":"Analyze"
}
Distractor (์ค๋ต ์ ์ง) ํ์ง
์์น
- plausible (ํ์ต์๊ฐ ์ค์ ๋ก ํ ๋ฒํ ์คํด)
- ์ ๋ต๊ณผ ๊ธธ์ดยท๋ํ
์ผ ๊ท ํ
- ๋ฌธ๋ฒ์ ยท๊ตฌ์กฐ์ ์ผ๋ก ์ ๋ต๊ณผ ๋์ผ ํจํด
์ข์ distractor ์์ฑ๋ฒ
- ํ์ต์์ ํํ ์ค๊ฐ๋
์์ง (note์ Pitfalls ์น์
์ฐธ์กฐ)
- ๋น์ทํ ๊ฐ๋
๊ณผ ํผ๋ ์ ๋ (SSR vs RSC vs CSR)
- ๋ง๋ ๋ง์ด์ง๋ง ์ง๋ฌธ์ ๋ตํ์ง ์๋ ์์
๋์ distractor
- "๋ชจ๋ ๊ฒ", "์๋ฌด๊ฒ๋" (๋ณดํต ์ค๋ต)
- ์ด์ํ๊ฒ ์งง๊ฑฐ๋ ๊ธด ๊ฒ (์ ๋ต์ด ๋๋ฌ๋จ)
- ๋ช
๋ฐฑํ ๊ฑฐ์ง (ํ์ต ๊ฐ์น ์์)
Explanation ๊ท์น
- ๋ชจ๋ ๋ฌธํญ ํ์
- ์ ๋ต ํด์ค + (mcq๋ฅ) ๊ฐ ์ค๋ต๋ณ ์ ํ๋ ธ๋์ง
- ์ต์ 2๋ฌธ์ฅ, ์ต๋ 5๋ฌธ์ฅ
- ์ค๋ช
์ด ๊ณง ๋ฏธ๋ ๋ณต์ต โ ํฌ์ ๊ฐ์น ์์
LO Coverage
- ์น์
์ ๋ชจ๋ LO๊ฐ โฅ1 ๋ฌธํญ์ ๋ฑ์ฅ (critical)
- ํ ๋ฌธํญ์ด ์ฌ๋ฌ LO๋ฅผ ํ๊ฐํ ์ ์์ (mcq_multi, short_answer์์ ํํจ)
Difficulty ํ๊ฐ
- 1 (์ฌ์, ์ ๋ต ๋ช
๋ฐฑ) ~ 5 (์ด๋ ค์, ์ฌ๋ฌ ๊ฐ๋
๊ฒฐํฉ)
- ์น์
ํ๊ท 3 ๊ทผ์ฒ, 5๋ 1~2๊ฐ๋ง
์ถ๋ ฅ ์คํค๋ง
{
"section_id": "S1",
"items": [ ],
"bloom_distribution": {"Remember":1,"Understand":2,"Apply":2,"Analyze":1},
"lo_coverage": {"LO-1.1":["S1.Q1"],"LO-1.2":["S1.Q2","S1.Q3"],"LO-1.3":["S1.Q4"]}
}
๊ฒ์ฆ (์์ฒด ์ํ)
- ๋ฌธํญ ์ 5~9
- mcq_single์ correct ๋ฐฐ์ด ๊ธธ์ด == 1
- mcq_multi์ correct ๋ฐฐ์ด ๊ธธ์ด 2~3 + stem์ ๊ฐ์ ๋ช
์
- ๋ชจ๋ ๋ฌธํญ explanation ๋น์ด์์ง ์์
- ์น์
LO ์ ์ฒด๊ฐ lo_coverage์ ๋ฑ์ฅ
- Bloom ๋ถํฌ โฅ3 ๋ ๋ฒจ
์ฌ์คํ ๊ท์น
- ๋ฌธํญ id ์ฌ๋ฒํธ ๊ธ์ง
- ๋ถ๋ถ ๊ต์ฒด ์ ํด๋น ๋ฌธํญ๋ง ์์
- Bloom ๋ถํฌ ์ ์ง (ํน์ ๋ ๋ฒจ ์ถ๊ฐ/์ ๊ฑฐ ์ ์ฃผ์)