Skip to main content
DoneThat

AI Adoption GuideEducationTeach

Knowledge Graph from Syllabus

An LLM constructs a concept dependency graph from the syllabus and surfaces prerequisite gaps for each student before each module.

Education processRecruitAdmitEnrollTeachAssessCredentialGraduateAdvance

By Don, DoneThat’s AI coach · updated

What a cited concept graph is allowed to output

The model is a reader of the syllabus, not a second curriculum committee. Accept only a graph of concepts with cites to syllabus lines, plus a gap note for a given student that cites the missing prior module. If the syllabus has no prerequisite language, the gap note stays empty. Do not invent a prerequisite. Faculty still owns the sequence.

A node is a concept the syllabus names: a learning outcome, a module or week title, a stated skill. An edge is a dependency the syllabus states, in language such as "this week assumes," "building on Module 2," or "complete X before Y." Each edge carries a cite: document version, section or week, and the line or bullet that supports it. A gap note is not a judgment of ability. It is a comparison. An upcoming module cites a prior module, and the student's completion record does not show that prior module as complete.

Keep that contract when the same nodes are later reused by an adaptive learning path engine or an intelligent tutoring system. Those systems can suggest practice. They cannot quietly rewrite which week comes first.

Parse the syllabus before any student record is opened

Start with the document faculty published for this term, not with a transcript. Pull that file or page from the learning management system (Canvas, Blackboard, Moodle, or the campus equivalent) or from the upload faculty designated as the student-facing syllabus. The version students can open is canonical. A prior-year PDF in a shared drive is not the graph.

Parse structure before semantics. Capture course identifier, term, the module or week list, learning outcomes, scheduled topics, stated course-level and module-level prerequisites, required prior skills, and any explicit "you will need X before Y" language, including tables and "before you begin" boxes. Preserve location for every extracted span. A concept without a heading, week, or bullet cite is not extractable. If the parser cannot attach a location, leave the node out.

Do not enrich from a catalog description, a textbook table of contents, or a departmental typical-sequence memo unless that text appears in the syllabus students received. Catalog and program rules belong in course placement recommendation and graduation requirement gap alerts. This workflow reads one course's teaching document.

If the syllabus is a thin week list with no dependency language, stop after the node list. An empty edge set is a valid parse. Filling it with "obvious" writing or mathematics prerequisites is the first failure mode: inventing a prerequisite that is not in the syllabus.

Confirm the parse against faculty intent in one pass: missing weeks, merged modules, and extra-credit items that are not required. Required versus optional matters later, when completion is checked. Get it wrong here and every gap note will cite the wrong item.

Extract dependencies only where the syllabus names them

With locations attached, extract candidate edges from clauses faculty already wrote. Prefer "assumes," "requires," "review," "building on," "you should be able to," and "we will use X to do Y." Map each clause to a from-concept and a to-concept, both grounded in named modules or outcomes. Put the supporting line on the edge. Topic similarity is not a cite. Two weeks that both mention "means" do not create a dependency.

Illustrative example. An introductory statistics syllabus lists Week 2 as "Sampling distributions" and Week 5 as "Hypothesis tests for a mean." Week 5 includes this sentence: "You will use the sampling distribution of the sample mean from Week 2; complete that module before attempting the lab." The graph may include an edge from sampling distributions to hypothesis tests for a mean, cited to that sentence. A student whose completion record does not show Week 2 complete receives a gap note that names Week 5, names Week 2 as the missing prior module, and repeats that cite. If the sentence is absent and the syllabus never otherwise gates Week 5, the model adds no edge and does not tell the student they are unprepared or blocked.

Course-level lines on page one ("MATH 110 or equivalent") are entry rules for the course, not edges between weeks, unless the syllabus maps them onto specific modules. Copying the entire prior course into every node recreates the catalog inside the graph. That is the failure mode of treating the graph as the catalog.

When extraction finishes, faculty reviews edges, not a narrative summary. Accept, drop, or rewrite each one. Do not publish an unreviewed graph into student-facing views. An instructor who teaches a parallel section needs that section's syllabus, not a copy from the coordinator unless they share one document.

Compare the graph to completed work, then write the gap note

Open student data only after the cited graph exists. Module and item completion usually live in the same learning management system as the syllabus (Canvas, Blackboard, Moodle). Prior-course and enrollment facts may live in the student information system (Ellucian, Anthology, or the campus equivalent). Use completion as the syllabus defines it: a required item marked complete, a module finished, a score at the threshold faculty set. Do not substitute a competency mastery inference for that record unless faculty has named the inference as the gate.

For each upcoming module, collect incoming edges. For each edge, check whether the cited prior module or required item is complete for that student. If it is complete, write no gap note. If it is not complete, write a gap note that names the upcoming module, names the missing prior module, and repeats the syllabus cite. If there are no incoming edges, the note is empty. Empty is correct when faculty did not write a gate.

Surface the note before the module, to faculty first, and to the student only if faculty opts in, as information. Do not turn the note into an LMS lock unless the syllabus, or a faculty-configured rule that mirrors it, already withholds the module. Blocking a student from a module the faculty did not gate is the second failure mode. A gap note is a warning with a cite. A lock is a policy decision.

Follow the syllabus on incomplete, late, and excused work. An extension that still counts as complete is complete. A skipped lab the syllabus calls required is a gap. When the completion record is missing, say the record is missing. Do not infer that the student probably completed the work in another section, another term, or another system.

Recompute when completion changes and when the next module is about to open. A note that fires after the lab is due is not a before-module gap note.

Keep the graph off the catalog and off the lock

The graph is a reading of one syllabus for one term. It is not the degree audit, not placement, and not permission for an adaptive engine to reorder the course. Downstream tools may consume the same nodes. They still take faculty-owned sequence as the constraint.

Match review cadence to syllabus changes. If a midterm revision drops the "complete Week 2 first" sentence, drop the edge and clear related gap notes. A new instructor's document replaces last term's graph even when the catalog number is unchanged.

Faculty still decides which concepts are in scope, which dependencies are real, what complete means, whether a gap is informational or blocking, and whether students see any of it. The model owns the cites and the empty state. If it cannot point to a line, it stays quiet.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first