Vocabulary Tutor

by Melinda Green

For the old Windows general-purpose flashcard implementation you will find it here.

I developed the Vocabulary Tutor to help teach me German. Flashcards are helpful, but they are ineffecient since words repeated too soon are wasted, and too late, don't reenforce new memories. People have developed what are called "spaced repetition" techniques which is the right idea, but still does not account for the individual learner's experience with each word and the resulting importance of the word both for the learner at each moment, and in the language to be learned. My solution is a probabilistic algorithm in which every word has a chance of being the next one flashed, but its probability adapts to the user's experience with it, called it's importance. The initial importance of each word is based on it's importance in the language to be learned, but goes up each time the user gets it wrong, and goes down when they get it right. This way the user is always working with a roughly small set of words at any time, and should never get overwelmed. The size of that set also adapts to the user's abilities at the moment and gets larger and more challenging when they are getting most of them right, and gets smaller and easier as they get lots of them wrong. In this way it follows the knife's edge to get the maximum learning value from each flash. It turns out that there are lots of fascenating and nonobvious corner cases and optimization opportunities to make this work well, and I am convinced that this is by far the best flashcard engine in the world. And best of all, I am making it all free.

You can find some Android apps I've created with the engine in the Google Play store here. The source code for the engine plus the base Android class are here. And the vocabulary files are here.

Return to the Superliminal home page