Orchestration graphs for an AI-native classroom

Written by Claude from Stian Håklev's FROG archive (code, about 4,900 emails 2016–19, papers, Dillenbourg's book and course), his notes and public Campus material · October 2026

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).

Class Group Individual Buy 3 tickets in 4 interfaces Rank them, justify Pair agrees one ranking in chat Debrief on the class's data Pair revises (group → own) time & error logs S pair by max A aggregate to class disagreement
ArgueGraph, run in Dillenbourg's EPFL HCI course (about 140 students, 2018 and 2019). S social operator, A artefact operator. The pair must submit identical rankings before it can continue. Olsen's analysis: rankings moved toward the class data more than chance predicts, without copying it, and evidence-based justifications increased. Breakout composition and contents are computed from products created minutes earlier.
Operator family (book ch. 3)Book's operatorsLLM-era version
socialgroup formation, class split, role assignment, role and group rotation, drop-out management, anonymisationpair by semantic distance between free-text answers (feeds FROG's existing 2-opt pairing optimiser); group by complementary KC mastery; rerun on late join
distributionbroadcasting, user selection, sampling, splitting, conflicting, adaptinggenerate the split (SWISH, §4); give each group one example of every position except its own
aggregationlisting, classifying, sorting, synthesising, visualisingcluster 200 answers into 4–5 positions with reasons; pick the two most contrasting answers for the debrief
back-officegrading, 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
controlbranching, 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.

CapabilityForumOrchestration graph
Lesson authoringdetailed timed plan of interaction segmentsgraph of typed activities, operators, edge labels and rationale
Individual step before group workrare 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 formationsize and count configurable; composition does not use prior answersoperator over products: max disagreement, complementary mastery, roles
Multi-step scenariosnone; each breakout is independentproducts flow across steps; operators chain
Cross-group structuresno group reviewing another group's work; no jigsawgroup-to-group distribution, jigsaw via two grouping attributes, rotation
Student toolslimited setopen activity catalogue, generated activity types, AI participants
Bringing results back to the classprofessor manually highlights selected written workaggregation operators propose clusters, contrasts and distributions; the professor chooses
Async ↔ classno easy way to bring artefacts made outside class in, or to take class work out into async workpre-class products seed operators; plane-scoped pages; generated follow-up practice
Teacher viewdashboardsplus 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 → torule
group → individualflows down to members
individual → grouponly through an aggregating operator
class → anybroadcast
any → classaggregate

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

ASeattle · San Diego
BWinnipeg · Oklahoma City
→ why winters differ

Split by latitude

ASeattle · Winnipeg
BSan Diego · Oklahoma City
→ latitude
Dillenbourg's course example: same cities, same task, different discussion.
Edge-label familyLabels (examples; 28 in the book)Check a designer can run
Preparationprerequisite, advance organiser, predicted failureIs a productive-failure activity followed by the instruction it prepares for?
Set operationsaggregation, contrast, selectionDoes every aggregation lead into a debrief that uses it?
Translationproceduralisation, reframe, teach, repairDoes a teach-back step have an audience that lacks the information?
Generalisationinduction, 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.

PurposeKLI process · ICAPScript patternKey operatorData it yields
Check comprehensiondiagnosis · activehinge question with distractors built from known misconceptions; branch on the resultcontrol: proceed / pair / reteachper-KC class distribution in 60 s
Conceptual changesense-making · interactivepredict → pair by divergent prediction → reconcile → observe data → re-predict (Peer Instruction, ArgueGraph)social: max-distance pairingbefore/after positions; who moved and why
Self-explanationsense-making · constructive → interactiveexplain a worked example to a partner who holds a different step; swap rolesdistribution: split the stepsexplanations, classifiable for gaps
Inductioninduction · constructiveeach group gets different contrasting cases; the class assembles the ruledistribution: contrasting casescandidate rules per group
Perspective takingsense-making · interactiverole jigsaw: expert groups, then mixed home groups that must agreesocial: two attributes (home, expert)positions by role; synthesis quality
Transferrefinement · constructivethe same principle applied to cases split across groups; compare surface vs deep featuresaggregation: compare across groupswhich features drove the classification
Calibrationmetacognition · activeanswer with confidence; see the class's confidence/accuracy plot; revoteaggregation: calibration plotper-student over- and underconfidence
Feedback on productionrefinement · interactivepeer review matched by complementary strengths; AI checks the reviews' specificitysocial: complementary matchingreview 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 student model and the KC map carry over to the next session
Before → during → after. The tutor supplies the state; the graph decides how the class uses it; the class's products generate the next round of individual work.

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”.

Inputfaculty prose, last term's plan, readings, outcomes, KC map
Draftactivities, planes, operators, labels, rationale, against a typed catalogue
Validateschemas and plane-flow rules: green means it won't crash in class
Simulatepreview with 30 synthetic students, including late joiners
Critiquedesign rules (below), returned as plain-language steps
Paired members hold identical information: nothing to negotiate
No induction step in the week (kaleidoscope)
Debrief lag exceeds edge elasticity
Poll split 30–70%: insert peer discussion (Peer Instruction)
Procedural KC scheduled for group work: move it to individual practice
Script over-constrains a short task (Dillenbourg 2002, over-scripting)
The checks encode Dillenbourg 1999 (collaboration has no effect by itself; effects depend on group composition, task, scripting and monitoring), KLI's asymmetry, the book's libraries and FROG's classroom record. Rules can propose inserting a collaborative step where the material and class state call for one.

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 atStates (book Table 21)
individualactive/passive, disoriented, impasse, trapped, deep/surface, gaming, late-comer
indiv. in teamfree-rider, social loafing, leader, on/off-role
indiv. in classwith-me, central, isolated, bridge
teamcognitive vs emotional conflict, misunderstanding, groupthink, distributed
classslow, split (bimodal), homogeneous
Rows: state after ai; columns: state after aj. Illustrative values. Left: low entropy and movement toward better states, so the edge is critical. Right: near-uniform, so the edge can be skipped.

10. Where AI sits

LocationFunctionFROG precursorEvidence / guardrail
authoringcompile prose to graph; critique; write labels and rationale; generate the faculty guidemakeTemplate (graph from a form)validator + simulation; faculty locks the graph
operatorsemantic and KC-aware grouping, clustering, split generation, feedback, debrief selection, state routingexternal Python operators over Redis (spaCy semantic jigsaw, 2018)pure function of (config, input) with logged output; teacher override
dashboardtext about class state: “groups 3 and 5 stuck on the definition; 7 done”; “can I move on?”completion prediction; progress barorchestration load (book pt. 41); Lantern cut team waiting time 62% → 6%
participantAI in a group activity with a per-node role: devil's advocate, facilitator, Socratic tutor. Its transcript becomes a productac-chat “robot prompt” hookBastani 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
bridgepre-class prompts; post-class practice generated from in-class productsLearning Items; plane-scoped wiki pagesKC 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

  1. Can a course design carry typed activities with data passing between them, plus edge labels and rationale, rather than timed segments?
  2. 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?
  3. What counts as evidence that a session worked: its products, the transitions into the next activity, or downstream KC learning curves and assessment?
  4. How much routing should be automatic and how much proposed to faculty (the balance of control)?

FROG running, 2019 prototype

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.