When trying to teach elementary mathematics, one can see all types of carelessness in the design of the educational materials.
Some examples are provided by John Mighton in his great book "The Myth of Ability".
For instance, exercises might suddenly pop up that are radically different in what procedures it requires on the part of the learner.
Sometimes this is intentional under the guise of "discovery based learning".
Sometimes it is unintentional, a product of carelessness.
I have thought a bit about this kind of things, and somewhere somehow I had the idea of a computer assisted standardization of educational materials.
The explanation is still a work in progress. One part of it is open standards of course. I don't know whether anyone has applied the philosophy of open standards in designing educational materials.
(I will be happy to know about similar endeavors in the Issues.)
Another part is applied Item Response Theory. The very choice of numbers in school math materials is just bad some times. There is no understanding of the difference in cognitive load required by different choices of numbers.
It is always better to start teaching a new procedural skill with small, easy to compute numbers.
There is some cognitive science bibliography to back this claim. Like this paper, where researhers explore how the interaction between executive control and long-term storage is essential in text comprehension tasks.
This can even be modelled by cognitive architectures like John Anderson's ACT-R. Those numbers that are not frequently encountered by students are less accessible, so using them in exercises while trying to teach a new concept is intimidating to the student. And unnecessarily so. Materials for graduate programmers for example are more straightforward with regard to this, by just using toy examples to make a point, and only complicate things later.
This program is the very basic implementation I came up to flesh out this ideas. The idea behind those is that when you draw a "bubble" on paper with two legs, it is the basis of any binary operation, which is most of what elementary mathematics instruction is about. They are also pretty much composable, so that you can write a "sum of two products" exercise without much more than what is already in the file.
There are some directions I want to take this project. I want this to help with designing a graphical interface with actual Bubbles and make some scripting provisions for adults writing practice drills and exercises for quizes.
Hopefully time will allow for these developments, because I would like to see it happen.