Orchestration graphs for an AI-native classroom
- Model. A lesson is a graph on a time × social-plane grid. Activities are nodes; operators are nodes that transform student products and social structure between activities. Live-class tools in 2026, Minerva's Forum included, treat a lesson as a sequence of independent steps.
- The missing join. Intelligent tutors (KLI, knowledge components, learning curves) and CSCL (scripts, orchestration) grew up as separate communities with separate venues. A student model built from practice before class can parameterise the operators in class, and the class's products can generate practice afterwards.
- What carries over from FROG. The data model (social structure as attributes, products partitioned by plane, flow rules), the activity contract and preview with simulated students. Not the Meteor/ShareDB implementation.
- What AI changes. Authoring becomes compilation from prose against a typed catalogue. Semantic operators (pairing on free text, clustering, generating splits) become routine. States encoded in language become detectable, which makes Dillenbourg's analytics layer feasible at scale.
1. The model
Dillenbourg (Orchestration Graphs, EPFL Press) puts time on the x-axis and social planes on the y-axis: individual, group, class, plus periphery, community and world. Each activity occupies exactly one plane. Edges carry operators, controls (branch, loop) and a pedagogical label. FROG made operators first-class nodes, because an operator on an edge cannot split, cannot run without a source, and produces three different random groupings when it feeds three activities. “Orchestration can be described as manipulating data structures. Each operator implements an orchestration act” (p. 101).
| Operator family (book ch. 3) | Book's operators | LLM-era version |
|---|---|---|
| social | group formation, class split, role assignment, role and group rotation, drop-out management, anonymisation | pair by semantic distance between free-text answers (feeds FROG's existing 2-opt pairing optimiser); group by complementary KC mastery; rerun on late join |
| distribution | broadcasting, user selection, sampling, splitting, conflicting, adapting | generate the split (SWISH, §4); give each group one example of every position except its own |
| aggregation | listing, classifying, sorting, synthesising, visualising | cluster 200 answers into 4–5 positions with reasons; pick the two most contrasting answers for the debrief |
| back-office | grading, feedback, translating, summarising, converting. Book: “as controversial as automatic translation” | per-student feedback written into the next activity's config (same hook as FROG's rule-based op-check-concepts); generate follow-up practice items |
| control | branching, looping; who decides is the “balance of control” (system, teacher, teacher plus analytics, learner) | branch on states read from text (impasse, groupthink) and on KC mastery, not only on a quiz score |
2. Compared with Minerva's Forum
Forum is the closest existing system, and the comparison is based on Stian's time at Minerva. Both start from the same premise: a live online class should be designed in detail beforehand, not improvised around a video call. Forum supports detailed lesson plans with timed interaction segments, breakouts with some configuration (such as students per room), a few student tools (polls, quizzes, workbooks) and teacher dashboards. The professor sends students to breakouts, brings them back and highlights the written work of different groups. What it lacks is the dataflow: each step stands alone, and nothing one activity produces decides who works with whom in the next.
| Capability | Forum | Orchestration graph |
|---|---|---|
| Lesson authoring | detailed timed plan of interaction segments | graph of typed activities, operators, edge labels and rationale |
| Individual step before group work | rare apart from polls and quizzes; students are not asked to commit to a written prediction before being grouped | π1 → π2 is the default: commit individually, then group on what was written |
| Group formation | size and count configurable; composition does not use prior answers | operator over products: max disagreement, complementary mastery, roles |
| Multi-step scenarios | none; each breakout is independent | products flow across steps; operators chain |
| Cross-group structures | no group reviewing another group's work; no jigsaw | group-to-group distribution, jigsaw via two grouping attributes, rotation |
| Student tools | limited set | open activity catalogue, generated activity types, AI participants |
| Bringing results back to the class | professor manually highlights selected written work | aggregation operators propose clusters, contrasts and distributions; the professor chooses |
| Async ↔ class | no easy way to bring artefacts made outside class in, or to take class work out into async work | pre-class products seed operators; plane-scoped pages; generated follow-up practice |
| Teacher view | dashboards | plus text summaries of group states and “can I move on?” |
3. Data model worth keeping
Social structure as attributes
// output of a social operator
{ group: { "1": ["ana","ben"], "2": ["cy","dee"] },
role: { skeptic: ["ana","cy"], scribe: [...] },
home: { "A": ["ana","dee"], "B": ["ben","cy"] } }
// each group activity declares: groupBy: "group"
Several attributes coexist on one student, so a single structure carries a full jigsaw.
Products partitioned by plane
| from → to | rule |
|---|---|
| group → individual | flows down to members |
| individual → group | only through an aggregating operator |
| class → any | broadcast |
| any → class | aggregate |
A pure-function validator rejects bad designs before class (for example a quiz on the class plane, which gives everyone one shared text box).
Activity contract: a JSON-Schema config, an initial document, a merge function that seeds each instance (per student, group or class) from incoming data, and a runner that changes state only through four verbs (listAppend, objInsert, numIncr, specialize), plus a product formatter, a dashboard and example data. The sync backend is therefore swappable (ShareDB → Yjs or Loro, one room per instance), and AI-generated activity types can be sandboxed behind a postMessage version of the verbs. Dataflow is lazy: an operator runs when its downstream activity opens, on a snapshot of what students had produced. Preview runs any graph with N simulated students.
4. The pedagogical layer FROG dropped
SWISH, “Split Where Interaction Should Happen” (Dillenbourg & Hong 2008): how information is split among members determines what they discuss when they recombine it. Didactic rubber band: the graph should slightly raise the effort needed to reach a shared answer, enough to force explanation and not enough to break the collaboration. In 2018 every good split was handmade. Drafting one from the week's readings is a well-posed task for a model, and the faculty member can check it in a minute. A split is a claim about the knowledge; a shared breakout prompt has no split.
Split by distance from the sea
Split by latitude
| Edge-label family | Labels (examples; 28 in the book) | Check a designer can run |
|---|---|---|
| Preparation | prerequisite, advance organiser, predicted failure | Is a productive-failure activity followed by the instruction it prepares for? |
| Set operations | aggregation, contrast, selection | Does every aggregation lead into a debrief that uses it? |
| Translation | proceduralisation, reframe, teach, repair | Does a teach-back step have an audience that lacks the information? |
| Generalisation | induction, deduction, transfer, synthesis | “Every edge this week is deduction; add an induction step.” |
FROG dropped the labels because the engine had no use for them. An AI designer can use them as machine-readable design rationale. Elasticity: an edge's value decays with the lag between its two activities; the ArgueGraph debrief “miserably failed” when it was postponed by a week.
5. What in-class activity is for
“Add a breakout” is not a purpose. Each script below targets a different learning process. KLI (Koedinger, Corbett & Perfetti 2012) distinguishes memory and fluency, induction and refinement, and understanding and sense-making. Its asymmetry hypothesis holds that simple knowledge components (KCs) gain most from practice and feedback, while complex ones with rationale gain from sense-making; its evidence map lists collaboration and accountable talk on the sense-making side. ICAP (Chi & Wylie 2014) ranks engagement passive < active < constructive < interactive, where interactive means both partners construct and build on each other.
| Purpose | KLI process · ICAP | Script pattern | Key operator | Data it yields |
|---|---|---|---|---|
| Check comprehension | diagnosis · active | hinge question with distractors built from known misconceptions; branch on the result | control: proceed / pair / reteach | per-KC class distribution in 60 s |
| Conceptual change | sense-making · interactive | predict → pair by divergent prediction → reconcile → observe data → re-predict (Peer Instruction, ArgueGraph) | social: max-distance pairing | before/after positions; who moved and why |
| Self-explanation | sense-making · constructive → interactive | explain a worked example to a partner who holds a different step; swap roles | distribution: split the steps | explanations, classifiable for gaps |
| Induction | induction · constructive | each group gets different contrasting cases; the class assembles the rule | distribution: contrasting cases | candidate rules per group |
| Perspective taking | sense-making · interactive | role jigsaw: expert groups, then mixed home groups that must agree | social: two attributes (home, expert) | positions by role; synthesis quality |
| Transfer | refinement · constructive | the same principle applied to cases split across groups; compare surface vs deep features | aggregation: compare across groups | which features drove the classification |
| Calibration | metacognition · active | answer with confidence; see the class's confidence/accuracy plot; revote | aggregation: calibration plot | per-student over- and underconfidence |
| Feedback on production | refinement · interactive | peer review matched by complementary strengths; AI checks the reviews' specificity | social: complementary matching | review quality; revision uptake |
6. Joining the tutor and the classroom
Intelligent tutors and CSCL have rarely been combined. They have different units (the knowledge component vs the group's discourse), methods (learning curves and A/B tests vs design-based research and interaction analysis) and venues (AIED/EDM/L@S vs CSCL/ICLS). The exceptions are instructive. Olsen, Aleven and Rummel built collaborative versions of a fractions Cognitive Tutor and found collaboration helped conceptual items while individual work helped procedural fluency, which is KLI's asymmetry applied to social planes; Jennifer Olsen later co-authored the FROG papers. Holstein, McLaren and Aleven's Lumilo gave teachers real-time tutor analytics in the room. Campus's own engineering post (From Sizzle AI to Campus, March 2026) names KLI and ICAP as guides, describes extracting KCs from course materials and composing a practice feed, lists instructor information and classroom interaction as directions, and notes that interactive learning remains unresolved. The orchestration graph is the missing piece: it decides which KCs are worked on in which plane, and it routes data in both directions.
Before class · individual, async
- Practice feed gives per-student KC mastery (BKT/AFM-style)
- Misconceptions from error patterns and free-text answers
- A short pre-class prompt yields each student's distinctive position or example
- Prerequisite gaps closed with targeted practice
In class · operators read the model
- Skip what 90% have mastered; spend time where the class is split
- Pair by divergent misconception or position, not at random
- Assign jigsaw expert roles by mastery (each student is an expert on something)
- Seed the discussion with students' own pre-class claims, anonymised
After class · individual and group
- Misconceptions surfaced in discussion become generated practice items
- Group products continue as async pages (FROG wiki: one per group)
- Each student answers a partner's strongest counter-argument
- Transcripts update the student model (for KCs that sense-making targets)
The carrier: Learning Items and plane-scoped pages. To move work between async and live, FROG (2018–19) used Learning Items: typed, addressable content units (an idea, an image, a rich-text document, a spreadsheet, even a whole embedded activity), each with its own edit history, that any activity can display and any operator can move. They can be dragged between activities and embedded inline in rich text. The wiki built on them gave pages a plane. A class page is one shared document; a group page is instantiated once per group; an individual page once per student, so the same “weekly reflection” link opens a different page for each student. A page can be pulled into a live session, its contents routed by operators, and the session's products written back. This is the missing async ↔ class link from the Forum comparison. In a rebuild it maps onto ProseMirror/Tiptap node views over Yjs or Loro.
Precedents from Stian's recent projects. Both are single-learner systems built around the same before-and-after loop. Alif, an Arabic reading trainer, keeps a word-level FSRS model and generates sentences and stories from words the learner already knows. Reading then exposes difficulties that become the next practice, so practice prepares a sustained encounter with a text and the encounter feeds practice. Petrarca, a reading tool, models what a reader knows at the level of claims, surfaces texts at about 70% novelty, and tracks a book chapter by chapter. Moved to a classroom, the claim-level model is what makes “unique points of view” computable: which claims a student holds that their classmates don't, and therefore whom they should talk to.
7. Scripts for specific Campus courses
Built from the 2026 catalogue descriptions. Notation: π1 individual, π2 group, π3 class; [S] social operator, [A] artefact operator. These are design sketches, not observed practice.
STAT.210 Statistics · confidence intervals
Conceptual change: “95% chance the true mean is in this interval”.
Before tutor KCs on standard error and the CLT; free-text interpretation of one interval → π1 hinge poll on interval meaning → [S] pair by divergent interpretation → π2 each member simulates samples at a different n (SWISH) and the pair predicts coverage → [A] pool 200 intervals on the projector; about 95% cover μ → π3 debrief on two contrasting pair explanations → π1 revote. After generated items targeting the persisting misconception.
ECON.130 Microeconomics · price controls
Perspective taking and transfer: rent control as a policy lab.
π1 predict the effect of a rent ceiling, with confidence → [S] expert groups of landlords, tenants on the waitlist, current tenants and the city council, each with role-specific data (vacancy rates, waitlist, maintenance spend) → [S] home groups with one of each role must recommend a policy and name who loses → [A] cluster the recommendations → π3 compare with the supply/demand diagram. AI participant: a devil's advocate voicing the absent stakeholder.
ENGL.125 Composition + ENGL.110 Studio
Feedback on production; the catalogue already specifies peer editing.
Before draft submitted; thesis, evidence and structure extracted per draft → [S] pair drafts with complementary profiles (strong evidence and weak organisation with the reverse) → π2 structured peer review against the rubric → [A] AI rates each review's specificity and returns it to the reviewer before release → π1 revision plan. After citation and grammar KCs routed to individual practice; organisation issues go to the Studio session.
LGL.105 Ethical Practice · AI and confidentiality
Argumentation with rules: a dilemma under ABA Formal Opinion 512.
π1 a supervising attorney wants client documents summarised with a public AI tool; the student rules on it and justifies → [A] cluster positions (permit, permit with safeguards, refuse) → [S] trios with one of each position → π2 must agree on a ruling that cites the specific rule (consensus gate) → π3 distribution before and after, plus the strongest argument from each cluster. After individual memo that answers the trio's best objection.
CYB.280 Ethical Hacking · attack reconstruction
Induction across complementary evidence.
[S] pairs of red team and blue team → [A] red gets the reconnaissance and exploit notes, blue gets the SIEM logs from the same incident (SWISH) → π2 reconstruct one timeline; neither can finish alone → [A] compare timelines across pairs → π3 where did detection fail? Before tutor KCs on log formats decide who needs a scaffold card.
SCI.125 Environmental Science · systems thinking
Synthesis: the catalogue's “systems thinking” made concrete.
[S] jigsaw on a watershed case: hydrology, agriculture, municipal budget and public health experts → π2 home groups build one causal-loop diagram; an AI facilitator flags unconnected nodes → [A] overlay all groups' diagrams; disagreement on an edge becomes the debrief → π3 vote on the intervention point. After each group's diagram continues as a group page.
8. Authoring as compilation
The FROG record on authoring is unambiguous. In an external usability test (Jan 2018) no participant managed to create a chat activity. The most committed outside teacher sent a ten-step list and concluded: “Building successful graphs is difficult.” The working pipeline was teacher prose → Stian compiles the graph → walkthrough video. That compile step is now the model's job, and the 2016 functional spec already listed “AI modules to distil educational scenaria… from informal teacher lesson plans”.
9. The analytics layer nobody built
States. Each activity has learner states, by default {fine, active, lost, drop} plus a library indexed by plane (table). States are hidden and behaviour is observed (an HMM). “Don't diagnose what you can't treat” (Self 1990).
Transitions. Each edge carries a matrix Mij (state after ai → state after aj), learned with Bayesian priors. The edge weight is
ωij = (1 − H′(Mij)) · U(Mij) ∈ [−1, 1]
where H′ is the normalised row entropy and U is “utopy”, the improvement minus the degradation across the diagonal. +1 means critical, 0 skippable, −1 detrimental: a principled answer to “what can I cut?”.
| Modelled at | States (book Table 21) |
|---|---|
| individual | active/passive, disoriented, impasse, trapped, deep/surface, gaming, late-comer |
| indiv. in team | free-rider, social loafing, leader, on/off-role |
| indiv. in class | with-me, central, isolated, bridge |
| team | cognitive vs emotional conflict, misunderstanding, groupthink, distributed |
| class | slow, split (bimodal), homogeneous |
- Why now. Most of these states show up only in language (free-riding, groupthink, a misunderstanding repaired in dialogue), and LLM classifiers make them observable. KC mastery from the tutor gives the matrices a prior state on entry. Estimating the matrices needs the same graph run on many students, which an institution with shared course designs and quarterly terms has.
- Experiments embedded in graphs (book point 39). Swap one node or operator, keep the rest, and compare transitions and downstream KC learning curves: random vs disagreement pairing, AI facilitator vs none, split vs shared prompt.
- Timing. Faucon, Olsen, Håklev & Dillenbourg, JLA 2020: real-time prediction of activity completion. “Do I close for 20% of the learners? Should 80% wait?”
- Repair economy (ch. 6). Drift (time), heterogeneity (social) and uncertainty (diagnosis) each trigger graph modification above a threshold. An assistant proposes the repair and faculty accept or bypass: “design for what cannot be anticipated”.
10. Where AI sits
| Location | Function | FROG precursor | Evidence / guardrail |
|---|---|---|---|
| authoring | compile prose to graph; critique; write labels and rationale; generate the faculty guide | makeTemplate (graph from a form) | validator + simulation; faculty locks the graph |
| operator | semantic and KC-aware grouping, clustering, split generation, feedback, debrief selection, state routing | external Python operators over Redis (spaCy semantic jigsaw, 2018) | pure function of (config, input) with logged output; teacher override |
| dashboard | text about class state: “groups 3 and 5 stuck on the definition; 7 done”; “can I move on?” | completion prediction; progress bar | orchestration load (book pt. 41); Lantern cut team waiting time 62% → 6% |
| participant | AI in a group activity with a per-node role: devil's advocate, facilitator, Socratic tutor. Its transcript becomes a product | ac-chat “robot prompt” hook | Bastani et al., PNAS 2025: an unguarded tutor raised practice scores and lowered exam scores, a guardrailed one largely did not. Alsobay et al., 2025: an AI facilitator increased information sharing, not decision quality |
| bridge | pre-class prompts; post-class practice generated from in-class products | Learning Items; plane-scoped wiki pages | KC map shared by tutor and graph |
Engine requirements from FROG's failures: operators must rerun when a student joins late (FROG's ran once); activities need per-group pacing (lockstep was never solved); the teacher always controls advancing (teachers rejected a timeline that advanced itself); mobile first; one phone per group can turn a transcribed discussion or a photographed worksheet into a product.
11. Open questions
- Can a course design carry typed activities with data passing between them, plus edge labels and rationale, rather than timed segments?
- Which KCs belong in class at all? KLI's asymmetry suggests sense-making KCs in class and procedural KCs in the tutor. How would that allocation be tested?
- What counts as evidence that a session worked: its products, the transitions into the next activity, or downstream KC learning curves and assessment?
- How much routing should be automatic and how much proposed to faculty (the balance of control)?
FROG running, 2019 prototype
- Introduction to ChiliFROG (Sep 2019)
- ChiliFROG Wiki (Dec 2019)
- Rich text with Learning Items (Jan 2019)
- EPFL LEARN talk (Jan 2019): the canonical talk, with Dillenbourg's animated graph slides
Current test bed: Tadpole, a live layer for Slidev talks (QR join, polls, pairs, quizzes, AI views). The next step is activities that read each other's products, starting with pairing by disagreement.