Adaptive Practice: Drilling the Weak Spots, Not the Whole Chapter
PDP Shikshya reads a student's own attempt history to find where recall is weakest, then generates fresh grade-calibrated practice concentrated there.
Ask a student to do fifty practice questions the night before an exam and most of that effort lands on ground they already own. They breeze through the first thirty because they can already do them, coast through familiarity, and then hit the handful that actually matter with a tired brain and no time. Uniform practice sets are democratic in the worst way: they spend the same minutes on what a learner has mastered and on what they cannot yet do. The minutes are not the same value.
At pdpspectra we build PDP Shikshya, an AI learning platform for Nepali schools, and one of its plainest, most useful features is practice that targets your weak spots. Instead of handing every student the same drill, it reads that student’s own history of struggle and generates fresh questions concentrated exactly where recall is weakest. This is an AI implementation story with a learning-design spine: the interesting part is not that an LLM writes questions — anything can do that now — but how the product decides which questions are worth a student’s time.
The waste we are actually attacking#
Learning science has been consistent on this for decades, and it is worth naming the ideas plainly because the feature is built on them.
- Deliberate practice is effortful work at the edge of your ability, not comfortable repetition of what you can already do. Re-drilling mastered material feels productive and mostly is not.
- The zone of proximal development is the band just beyond current mastery — hard enough to require effort, not so hard it collapses into guessing. Good practice lives in that band, and the band is different for every student.
- Mastery learning says a learner should keep working a topic until they can do it, then move on — rather than marching the whole cohort past a topic on the same day whether they have it or not.
The through-line is that the optimal next question is personal. A uniform worksheet cannot be personal by construction. Bloom’s famous “2 sigma” observation — that one-to-one tutoring lifts outcomes dramatically over group instruction — is really an observation about targeting: a tutor watching one student always knows what to ask next. The engineering problem is to approximate that targeting at the scale of a class, or a school, without a human tutor per child.
Weakness has to be observed, not guessed#
The naive version of adaptive practice keys off a single test score: you got 6 out of 10 on the fractions quiz, so here are more fractions. That is better than nothing and still crude. A score is one number from one moment; it hides how the student got there and says nothing about the topics they never happened to be tested on.
PDP Shikshya infers weakness from a much richer source: Proof-of-Thought telemetry. As a student works inside the AI tutor, the app logs small, typed events for the shape of their thinking — attempts, hints requested, struggles, breakthroughs, and escalations. These are emitted automatically as a by-product of normal use, not self-reported, which is exactly what keeps them honest. (We wrote up the telemetry layer in depth in Proof-of-Thought: making student thinking visible to teachers.)
For adaptive practice, the useful move is to attach those events to topics. A student who racked up three struggles and two hint requests working through photosynthesis, but sailed through cell structure with clean attempts and a breakthrough, has told the system — without filling in any form — where their recall is thin. Weakness inferred from real behaviour over many sessions is a far better signal than a weakness inferred from one test, because it captures the process, the repeated stumbles, and the topics a single quiz would have missed entirely.

From history to a practice set#
When a student opens the practice view at /app/practice, the backend does not reach for a generic bank. It works in a sequence that is deliberately legible:
- Read the attempt history. The service pulls the student’s recent telemetry and rolls it up by topic, so struggles, hints, and stalled attempts concentrate weight on the subjects and sub-topics where the student has been working hardest for the least reward.
- Rank the weak spots. Topics are ordered by how much difficulty the student has actually shown there, so the thinnest recall floats to the top. A topic the student breezes through drops down the list and does not eat practice minutes.
- Generate fresh questions on those topics. Rather than serving a fixed worksheet, the system asks the LLM for new items aimed at the ranked weak spots — practice the student has not already seen and memorised the answers to.
- Calibrate to the grade. Every generated item is produced for the student’s specific subject and grade, so a grade 9 learner and a grade 11 learner working the “same” subject get questions pitched at genuinely different levels.
The design intent maps straight back to the learning science above: rank by observed difficulty (find the zone of proximal development), generate rather than recycle (keep it deliberate practice, not memorised repetition), and keep going where the student is weak (mastery learning, one topic at a time).
Grade-calibrated quizzes, and why they are cached#
The question-generation itself is shared with the platform’s quiz engine, and it has two properties that matter for a real product rather than a demo.
Questions are grade-calibrated. Each generated quiz is a compact set — five multiple-choice questions — produced per subject and per grade, with instant feedback so the student learns in the loop rather than waiting for marking. Five well-aimed questions on a genuine weak spot are worth more than fifty scattered ones, which is the whole thesis of the feature.
Generated questions are cached and reused per subject-grade. Calling an LLM for every single practice request would be slow and expensive, and for a school platform cost discipline is not optional. So the first time the system needs questions for a given subject-and-grade slice, it generates them and keeps them; later requests draw from that pool. This is the unglamorous engineering that makes adaptive practice affordable at the scale of a whole school — the intelligence is in which cached-or-fresh questions get routed to which student based on their weak spots, not in paying the model tax on every keystroke.
There is a healthy tension here worth being honest about: caching for cost pulls toward reuse, while deliberate practice pulls toward novelty so students cannot simply memorise a fixed set. The product balances the two — pooling questions per grade-subject to keep costs sane, while the adaptive layer decides the mix and ordering each student actually sees, so two students with different weak spots working the same subject do not get the same session.

Built for this curriculum, in both languages#
Adaptive practice is only useful if the questions are right for the students actually using them, and “right” here is specific. PDP Shikshya is built for the Nepal curriculum — CDC for grades 9 and 10, NEB for 11 and 12, with broader coverage across grades 8 to 12 — so grade calibration means calibration to the syllabus a Nepali student is genuinely sitting, not a generic international proxy.
It is also bilingual, English and नेपाली. A weak spot in science does not become a weak spot in English comprehension just because that is the only language the tutor speaks. A student can practise in the language they think in, which keeps the difficulty where it belongs — on the topic — rather than smuggling in a second, unintended source of struggle.
Privacy is a design constraint, not an afterthought#
Any system that profiles a student’s weaknesses is handling sensitive information, and the honest answer to “is this surveillance?” has to live in the architecture, not the marketing.
- PII is stripped on-device before any text reaches the model. The weakness inference and question generation operate on the shape of the learning — topics, struggles, attempts — not on a named child’s identifiable record being shipped to an LLM.
- The model itself is swappable. All AI runs behind a single, swappable LLM client, so the platform is not welded to one vendor’s model or one vendor’s data-handling posture; the provider can change without touching the pedagogy.
The point of profiling weakness is to help the learner spend their time well, and a system built for that should be able to do its job without knowing, or leaking, who the learner is.
Why targeting is the whole game#
Strip the feature down and it is one claim: a student’s next twenty minutes should go where their recall is weakest, and a machine watching their actual work can find that place better than a fixed worksheet ever could. Uniform practice treats every minute as interchangeable. Adaptive practice treats attention as the scarce resource it really is — and spends it on the handful of topics that will still be wobbling on exam morning.
That is what AI implementation in education should look like in practice: not a chatbot bolted onto a textbook, but a quiet loop that observes real behaviour, infers where a learner is stuck, and puts fresh, grade-right, bilingual practice exactly there — cheaply enough to do it for a whole school.
Want adaptive learning that spends student attention where it counts? Talk to our engineers at pdpspectra.com/#contact, or see PDP Shikshya’s targeted practice live at pdpshikshya.com.