Interactive story·7 min read
Mapping the French Curriculum: 6,051 Ideas and What They Stand On
France writes down everything a child is meant to learn, year by year. It never writes down how any of it connects. This is that missing structure, and the whole graph is waiting at the end of the page.
Scroll to begin ↓
Chapter 1
One hundred and twenty-seven documents, and no map
France writes down what every child is supposed to learn, year by year, from the first term of nursery school to the last exam of lycée. It writes it down thoroughly: 127 official documents on éduscol, education.gouv.fr and the Bulletin officiel, catalogued and individually verified, pinned to the texts in force at the rentrée 2025 for the voie générale, PS to Terminale.
What it does not write down is how any of it connects. A programme will tell you that a pupil in CM1 works on fractions. It will not tell you which of the things a six-year-old did four years earlier that skill is standing on. Every experienced teacher carries some of that map in their head. Nobody had written it down as a structure you can hold in your hands and turn over.
That structure is what this is: 6,051 individual teachable ideas, joined by 10,050 verified prerequisite links.
Chapter 2
What a micro-topic is
A programme heading is not a teachable thing. "Nombres et calculs" is a chapter of a document. Nobody teaches it on a Tuesday afternoon.
A micro-topic is the smallest unit that still is one thing: a single idea a teacher would introduce, and that a learner could be said to have got. "A repertoire of songs and rhymes" is one. "Attentive listening" is another. There are 6,051 of them, distilled from the 1,131 headings the official programmes actually use.
Each one carries four facts. A name in French, English and Italian. The age at which the programmes place it. The official French heading it came from, kept verbatim and always one hover away. And, most usefully, its mastery evidence: two or three concrete signs that a child has it. For attentive listening, those are "stays quiet and focused during listening", "names what helps listen carefully", and "reports precise details after listening".
That last field is what turns a curriculum from an administrative document into something a parent can actually check.
Chapter 3
Agents propose, code disposes
The extraction was done by fleets of AI agents, which is usually the sentence where a dataset like this stops being trustworthy. So the rule was fixed before any of it ran, and it is the only reason the numbers below mean anything: agents propose, code disposes. Every act of judgement happened inside a small unit that could be checked on its own. Every global property, coverage, deduplication, acyclicity, schema validity, was enforced by a program rather than asserted in a paragraph.
Agents pulled 14,549 requirements verbatim out of 91 source documents. A second, deliberately adversarial pass re-read every extraction unit against the original pages hunting for infidelity and omission: 229 units passed, 15 were repaired, none failed outright. Only then were the requirements distilled into micro-topics, with duplicates removed by an embedding gate, panels of judges and per-subject critics, and with exact accounting of which standard ended up where and which was discarded.
Roughly 1,700 agent runs over three days. The expensive part was never the extraction, it was the checking: an adversarial re-read costs about as much as the pass it is auditing, and the deduplication ran three independent mechanisms over the same 14,549 requirements because any one of them alone quietly loses material.
The official text is published by the Ministère de l'Éducation nationale under Licence Ouverte 2.0. The visualization concept is borrowed from Marble's os-taxonomy. 845 parent-friendly cluster summaries complete the dataset.
Chapter 4
How a prerequisite earns its edge
An edge in this graph is a claim, and a strong one: you cannot properly do B until you can do A. This is exactly where a generated dataset normally collapses into plausible-sounding nonsense, because "these two topics feel related" and "this one is load-bearing for that one" produce the same confident sentence.
10,880 edges were proposed under strict rules. Then 272 adversarial panels went through them looking for the weak ones, the pairs that were merely thematically adjacent rather than genuinely structural. 830 proposals did not survive that. What is left is 10,050.
After the panels, deterministic code took over and enforced the one property no panel can be trusted with: the graph has to be acyclic. If A requires B and B requires A, the curriculum has just told you to learn something before itself, and no amount of confident prose makes that true.
A cycle does not merely look wrong, it destroys the thing the graph is for. Click any dot in the viewer and it traces that topic's full lineage: everything underneath it a learner has to master first, followed transitively all the way down to nursery school. That trace only terminates if the graph is acyclic. One cycle anywhere and the lineage of every topic downstream of it becomes infinite.
So acyclicity was not checked at the end as a quality metric. It was enforced as a constraint, by code, on every edge before the dataset was allowed to exist.
Chapter 5
Reading the ladder: age bands and level codes
Height in the graph is age. Nursery school is at the bottom, Terminale at the top, and an edge always points upward, from what is already known toward what it unlocks.
The six age bands are Maternelle (ages 3 to 5), CP to CE2 (6 to 8), CM1 to 6e (9 to 11), 5e to 3e (12 to 14), 2nde (15), and 1re to Tle (16 to 18). Colour is subject: ten families, from mathematics and French to arts, citizenship and digital technology.
The French level codes are never translated. PS, CP, CM1, 5e, 2nde, Tle stay exactly as they are in all three languages, because they are the names of real years in a real system and a translated code is a code nobody can look up. Their meaning rides on a gloss instead: PS is petite section, the first year of nursery school; Tle is terminale, the last year of lycée. The same rule applies to the official programme headings, which are always shown in the original French next to their translation.
The whole graph is below. Click any dot, and it will show you everything that has to come first.
Your turn
Explore the whole graph
Drag to orbit, click a dot to trace its lineage
Loading the graph…