Good teaching has always been adaptive.

The best tutor you ever had did not run through a fixed script. They watched where you stumbled, and changed course. Long before anyone gave it a name, that was adaptive learning: tailoring the path to the learner, rather than the learner to the path.

It is 2015, and I am building a small version of that idea for first-year mathematics at the University of Cape Town. It is my final-year computer science project, running alongside my Master’s in neuroscience. The experience went beyond the typical curriculum, in more than one sense of the term.

First-year maths is a good place to start, because it has clearly defined rules. Get an answer wrong, and a symbolic algorithm can work backwards through your steps to find not just that you erred, but where. Then it does the tutor’s job: more explanation, more examples, more practice, aimed squarely at the concept you missed.

Take $2 + 2 \times 4$ (not, admittedly, a first-year problem). Answer $16$, and I know you computed $(2 + 2) \times 4$. The order of operations says otherwise: $2 + (2 \times 4) = 10$. So the system leans in on order of operations, where you actually got lost, rather than drilling you evenly on everything. I built it mostly for calculus and λ calculus, with a scattering of linear algebra.

The itch was older than that. My final-year high-school project, back in 2010, had the same shape, just cruder: a hand-built question-and-answer database that chose the next question from your last answer. It reached further across subjects than the university version, into English and biology and not only maths, but it leaned entirely on that custom database. Cruder, yes. Still, it taught me early how much power sits in the right data.

Today the ceiling is much higher. Large language and multimodal models can play the role my brittle symbolic engine once did, but for long-form questions and fuzzy, human answers, the kind that don’t reduce to a misplaced bracket. And there is a second shift, quieter and more interesting than the first.

In my old systems, the content adapted to the student. What can adapt now is the teaching itself. With reinforcement learning, a system can begin to learn which next step is most informative for this particular learner: not just what to show you, but how best to bring you along. To find the content with the highest entropy, in the information theory sense: information that is most informative. The adaptation itself becomes adaptive. Adaptive, adaptive learning.

It is tempting to call that the finish line. It is more complicated than that™. A system optimised to smooth your path can, if we are not careful, optimise away the very friction that teaches. We learn a surprising amount from being stuck, from the productive struggle of getting it wrong before getting it right. You learn more from failure than from success because of the unexpectedness! The goal was never a frictionless path; it was the right friction, at the right time, for this person. That is a much harder thing to optimise for, and a much more human one.

So the frontier I am most curious about is not how well a model can generate the next explanation. That problem is mostly solved. It is whether it can learn when to step back and let you struggle. Get that right, and adaptive learning stops imitating a good tutor and starts to resemble a good mentor: someone who adapts not to keep you comfortable, but to help you grow.

Read more about the shift from Generation Generation to Curation Generation in The Generation Generation is over.