2.9 KiB
2.9 KiB
Task 13 — Curriculum module 4 (2 qubits et intrication)
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
,
{
"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
cargo test tutor::tests::curriculum_json_deserializes_with_module_1 2>&1 | grep "test result"
Expected: test result: ok. 1 passed.
- Step 3: Commit
git add curriculum/curriculum.json
git commit -m "feat: add curriculum module 4 (2 qubits et intrication)"