Skip to content

Glossary

flowchart TB
subgraph pred["Prediction"]
PL(["P(L) — skill mastered?"])
PS(["P(solve) — solves task?"])
end
subgraph params["Four parameters"]
PL0["P(L₀)"]
PT["P(T)"]
PSl["P(S)"]
PG["P(G)"]
end
subgraph ui["Product"]
SEL["Task selector"]
HM["Class heatmap"]
EXP["Explainability"]
end
PL --> PS
PL0 --> PL
PT --> PL
PSl --> PS
PG --> PS
PS --> SEL
PL --> HM
SEL --> EXP
TermDefinition
BKTBayesian Knowledge Tracing — tracks, per (student, micro-skill), the probability the skill is mastered; updates after each response via Bayes + a learning step (P(T)).
Micro-skillSmallest useful unit of competence (e.g. “expand brackets”); each gets its own BKT state.
(P(L))Probability the student has mastered the skill right now (latent state).
(P(L_0))Initial (P(L)) before the first attempt on that skill (prior).
(P(T))Probability of learning in one attempt after working a problem (transit).
(P(S))Slip — “knows the skill but answered wrong” (careless error).
(P(G))Guess — “doesn’t know but picks the right answer”.
(P(solve))Probability of solving the current problem given (P(L)): (P(L)(1-P(S))+(1-P(L))P(G)).
ZPDZone of Proximal Development — “hard but doable”; selector targets (P(solve) \approx 0.7).
Selectorrecommend() — ranks pool tasks by closeness to target (P(solve)) plus a weak-skill bonus.
Geom. mean across skillsFor multi-skill tasks, joint (P(solve)) is the geometric mean per skill — weak links dominate vs arithmetic mean.
Class heatmapStudents × skills matrix coloured by (P(L)).
ExplainabilityTeacher-facing “why this task” text from templates + BKT numbers (facts not LLM-guessed).
JupyterLiteIn-browser Jupyter (Pyodide/WASM); deployed here at /lab/.
IRTItem Response Theory — models item difficulty and ability (\theta); great for tests, weaker than BKT for learning over time.
EM / Baum–WelchFits BKT parameters from answer sequences (HMM-style).