The erasers are essential. The knowledge particles wiped off the greyboard are physically transferred to the student, and are then absorbed through the skin. The knowledge slowly decomposes, releasing about a microsatori of electromemetic radiation, and the waste metabolites are exhaled into the room to create an atmosphere of learning.
Needless to say, I will never be permitted to design a school program from the ground up.
An often reasonable way to ensure that you can mechanically apply a problem solving technique (which is related to, but absolutely not the same thing as understanding the maths) is to make a program that does it. Trying to learn maths by programming it is a terrible idea.
Just this morning I've been looking at Riemann's geometry; learning that through the medium of writing a program to "do it" would be painful. I don't even know what it would mean to write a program that "does" Riemann's geometry. I suppose I could write a program to apply some equations, but that's not learning the maths at all. That's automating some equation solving and it teaches me nothing about the maths.
What "problem solving technique"? There's no algorithm you can mindlessly remember and use it to create algorithms. Making a program that solves the problem is the highest possible understanding.
>I don't even know what it would mean to write a program that "does" Riemann's geometry
That's because it's an abstraction, not a problem to be solved. In the same way you can't write a program that 'does' functional programming, you can only program in a functional way.
Well, I guess writing an AI which can solve problems in Haskell would be an exception. I bet you couldn't remember its code and execute it in your head, though.