Files
Vincent Bourdon 9af114e391 Initial import
2026-06-09 16:14:55 +02:00

90 lines
2.9 KiB
Markdown

# Task 13 — Curriculum module 4 (2 qubits et intrication)
> **Index:** [README](README.md). **Spec:** [design](../../specs/2026-04-29-quantum-tutor-design.md).
## Goal
Append module 4 (3 exercises on Bell state and CNOT semantics) to `curriculum/curriculum.json`.
## Prerequisites
- Task 12 merged.
## Files
- Modify: `curriculum/curriculum.json`
## Steps
- [ ] **Step 1: Insert after module 3**
```json
,
{
"id": 4,
"title": "2 qubits et intrication",
"lessons": [
{
"id": 1,
"title": "Le circuit de Bell et l'intrication",
"concept": "Deux qubits peuvent être 'intriqués' : mesurer l'un détermine instantanément le résultat de l'autre. L'état de Bell est le prototype de l'intrication.",
"example_circuit": "OPENQASM 3.0;\ninclude \"stdgates.inc\";\nqubit[2] q;\nbit[2] c;\nh q[0];\ncx q[0], q[1];\nc = measure q;",
"what_to_observe": "Lance avec 1000 shots. Tu dois voir uniquement '00' et '11' en quantités égales — jamais '01' ou '10'.",
"exercises": [
{
"id": "4-1-a",
"prompt": "Crée un état de Bell entre 2 qubits : la mesure doit donner uniquement '00' ou '11'.",
"hint": "H sur q[0], puis CX q[0]→q[1].",
"criteria": {
"required_outcomes": [
{"bitstring": "00", "min_ratio": 0.4},
{"bitstring": "11", "min_ratio": 0.4}
],
"forbidden_outcomes": ["01", "10"]
},
"feedback_pass": "Excellent ! Tu as créé l'état de Bell.",
"feedback_fail": "Tu dois voir uniquement '00' et '11'. Utilise H q[0] puis CX q[0],q[1]."
},
{
"id": "4-1-b",
"prompt": "CNOT sans superposition : pars de |00⟩ et applique CX. Que vois-tu ?",
"hint": "Sans H, q[0] reste |0⟩.",
"criteria": {
"required_outcomes": [{"bitstring": "00", "min_ratio": 0.99}],
"forbidden_outcomes": ["01", "10", "11"]
},
"feedback_pass": "Correct ! CNOT avec contrôle=|0⟩ ne change rien.",
"feedback_fail": "Tu dois obtenir '00' systématiquement."
},
{
"id": "4-1-c",
"prompt": "Prépare q[0]=|1⟩ avec X, puis applique CX. Que voit-on sur q[1] ?",
"hint": "CNOT flip la cible quand le contrôle est |1⟩.",
"criteria": {
"required_outcomes": [{"bitstring": "11", "min_ratio": 0.99}],
"forbidden_outcomes": ["00", "01", "10"]
},
"feedback_pass": "Parfait ! |10⟩ devient |11⟩ après CX.",
"feedback_fail": "Avec q[0]=|1⟩, le CNOT doit flipper q[1]."
}
]
}
]
}
```
- [ ] **Step 2: Verify**
```bash
cargo test tutor::tests::curriculum_json_deserializes_with_module_1 2>&1 | grep "test result"
```
Expected: `test result: ok. 1 passed`.
- [ ] **Step 3: Commit**
```bash
git add curriculum/curriculum.json
git commit -m "feat: add curriculum module 4 (2 qubits et intrication)"
```