Could you go into more details into SRS for math? "Fact Memorizing" type systems seem to fit well with things like supermemo (languages, law, history, biology, a bunch of sciences), but not so much with things like math (other than memorizing formulas). And did you really add homework questions like find the kernel of this subspace in the first few weeks of the course?
I'm not sure what details to go into. Being reminded of something as we're forgetting it pushes that thing into longer term memory. It also internalizes the lesson. This applies to both rote facts and intellectual ideas. If you think of it as fact memorization, then you're missing the real power.
There are a lot of things you need to learn to master a mathematical topic. You need to learn definitions and terminology. You need to learn key theorems. You should be able to apply procedures and derive formulas. At a higher level you need to learn available proof techniques and the key ideas behind important proofs.
Of course learning these things intellectually is not quite sufficient. You need skills as well. However failing to learn these things will keep you from learning the topic. And that is where most students fall down.
This is particularly true in subjects that build on themselves like mathematics. If you missed an important point earlier, you may develop a bigger misconception about a current topic that will make it impossible to learn a future one. Anyone who has tutored students should be aware of this.
As for what to review, students did not get the same questions over and over again. Instead I gave them questions from the same section over and over again. Since I only asked a few questions from the current day's section, there were always plenty of questions left to go back to for future homework sets. As a bonus doing many kinds of questions at the same time makes connections obvious. When a single homework set asks you to solve a set of equations, find a basis for a vector space, and invert a matrix, you see how they tie together.
You reminded me of learning abstract algebra, in the last year of my college. The subject is extremely abstract, and I try hard to learn the key ideas, without realizing I need do it intellectually, instead of just thinking it more, and reading it with more care. Besides, I could not make any progress on that book, it just got me frustrated. And then I gave up, I hope to continuing my study in grad school, but I could just not get my feet in.
I'm slow, I think, and I can not do well in math. So I just let math get off my life, and trying to be a computing hacker as well as an entrepreneur.
Speaking from my personal experience: you can get very far just by dumping a few hundred questions/examples/small-problems into your favorite SRS. That's so many that your mind, rather than memorize them, will instead learn just how to do them. This works as well for math or CS as for languages.
I've proposed for Mnemosyne 2.0 that there be a card type which is just some Python code which is evaluated: http://groups.google.com/group/mnemosyne-proj-users/browse_t... The idea is that if you want to learn, say, multiplication, you would write some Python code that generates 2 random ints (as the question) and their product (as the answer), and now the user must solve it. You get much the same benefit as if you generated several hundred problems by hand or by script, but without cluttering your deck or risking memorizing some.