Notes / Schools
The boy the system marked complete
It has to track the child rather than the workbook number. In an ACE school there is no class moving together, so every record must carry the full context: this child, this subject, this grade band, this position within it. PACE numbers restart at each grade and repeat across subjects, so a bare number means almost nothing on its own, and any system that infers progress from it will quietly mark children complete when they are not.
Why software built for a class of thirty quietly breaks in a school where sixty children are each on a different workbook.
There is a boy in a school in Uganda, in what most systems would call Grade 9, whose record said he had completed Mathematics and Science.
He had not. He had finished the Grade 1 workbooks in those subjects and gone no further. The record was not lying on purpose. It had been built by software that did exactly what it was told, and what it was told was wrong at the root. To understand how a fourteen-year-old ends up marked complete at the level of a six-year-old, you have to understand what kind of school this is, because it is not the kind almost all school software was built for.
A different kind of school
This is an Accelerated Christian Education school, an ACE school. Children do not move together through a syllabus. Each child works alone through a series of workbooks, called PACEs, at their own speed. You finish a PACE when you can pass its test at eighty percent. You move to the next one when you are ready, not when the term ends. Credits build up, PACE by PACE, toward certificates. There is no class of thirty on the same page on the same day. There are sixty children, each on a different page, each on a different day.
Now hold that next to how ordinary school software thinks. It assumes a grade. It assumes a timetable. It assumes that if you are in Grade 9, you are doing Grade 9 work, and that the whole class is roughly together. Every one of those assumptions is false in an ACE school. And when a piece of software is built on assumptions that are false, it does not break loudly. It breaks quietly, and it keeps producing numbers that look fine.
How the number lied
Here is the specific trap that caught the boy.
In this curriculum, the workbooks are numbered, and the numbers restart at each grade. The Grade 1 mathematics workbooks might run one through twelve, and so might the Grade 2 workbooks, and the Grade 3, all the way up the school. Worse, across subjects the same numbers repeat: the Algebra workbook, the Biology workbook, and the English workbook can all carry the identical number, because the number is a position within a grade band, not a name for a unique booklet.
So the number, on its own, means almost nothing. It cannot tell you the grade. It cannot even tell you the subject. It only means something when you already know which child, which subject, and which grade you are looking at.
A system that follows the number instead of the child walks straight off a cliff. The boy had finished workbook twelve in Mathematics. The software looked for workbook thirteen, found none, because the numbers restart, and concluded he had reached the end. It marked him complete. He had reached the end of Grade 1, not the end of Mathematics. The number said twelve. The software believed the number. The child was lost inside it.
Track the child, not the number
The lesson underneath this is simple to say and easy to get wrong. In a self-paced school, you must track the child, not the number.
That means the system must always carry the full context with every record: this child, this subject, this grade band, this position within it. It must never read a bare workbook number and infer anything from it, because the number carries no meaning on its own. It must know that finishing the twelfth workbook of Grade 1 is not finishing the subject, and it must know this for every child independently, because no two children are in the same place.
This sounds obvious once it is said. It is anything but obvious when you are configuring software that was built, deep in its bones, to assume a class moving together. The assumption hides. It does not announce itself. It surfaces months later, as a boy marked complete when he has barely begun, or as a report that quietly tells a family the wrong thing about their child.
The insight
Software does not have to be broken to be wrong. The boy's record ran without error. Every function did what it was written to do. The wrongness was upstream of the code, in an assumption that a number could stand in for a child.
A school that runs on self-paced learning is not a normal school with a few unusual features. It is a different machine, and it needs software built around its actual unit, which is one child and one workbook, not thirty children and one lesson. Force it into software built for the ordinary case and it will run, produce clean-looking numbers, and slowly lie to you about the children it exists to serve. The most dangerous report is not the one that shows an error. It is the one that looks perfectly fine and is telling you a fourteen-year-old finished mathematics when he finished the first year of it.