Using flashcards to learn mathematics, computer programming, physics, or anything requiring more creative or analytical thought is not so useful. For these subjects the number of raw facts required is usually smaller, and the thought processes, concepts and problem solving ability are much more important.
My programming flash card usually consists of evaluating pieces of code like:
Question -->
Evaluate the following:
puts "Hello world"
Answer -->
Hello world
I cannot memorize the solution as if I memorize the answer to multiplication problems, which is just straight rote memorization. I memorize the process for code evaluation instead. In any case, I do not think anki and similar spaced repetition flash card software are in any way a replacement for actually just writing code and solving lot of different problems. They are always complementary to learning the materials in other ways.
The danger is that it's very possible to memorize 100s of answers like this without having any idea of how the code is working.
Imagine if instead of static flashcards there the SRS worked on items like:
- puts
- the '+' operator
- variables
- functions
Then an algorithm would generate problems incorporating those concepts. The exact same problem would never appear twice so you can't learn by rote and it ensures you actually learn the concepts. Your progress on each concept would be tracked by the SRS algorithm to help schedule your learning.
I think this would be a huge improvement on static flashcards.
But so far no one has stepped up and done the programming & card writing to demonstrate it, aside from perhaps Khan Academy (they generate questions, AFAIK, and are supposed to have incorporated spaced repetition at some point).
I am a co-founder of Lymboo Math (http://lymboo.com) We designed Lymboo Math to be a comprehensive, structured, and rigorous math enrichment program. While most programs focus only on short-term mastery of math concepts, Lymboo Math's emphasis is on both short-term proficiency and long-term retention. We do this by incorporating spiral reviews at periodic intervals. Our spiral reviews are 'spaced' both in time and in content, i.e., students are assessed on multiple topics in the same test. The mixed spiral reviews improve students' context switching skills and at the same time enhance retention of learned concepts.
My programming flash card usually consists of evaluating pieces of code like:
Question -->
Evaluate the following:
puts "Hello world"
Answer --> Hello world
I cannot memorize the solution as if I memorize the answer to multiplication problems, which is just straight rote memorization. I memorize the process for code evaluation instead. In any case, I do not think anki and similar spaced repetition flash card software are in any way a replacement for actually just writing code and solving lot of different problems. They are always complementary to learning the materials in other ways.