Spaced Repetition Systems Help You Remember More in Less Time
How many flash cards could you memorize in half an hour a day? How many could you keep memorized for a year and a half? 100? 200? Maybe 500? How about 4,167? That’s how many flash cards a free software spaced repetition systems helps me keep memorized.
I don’t have to review four thousand flash cards everyday. I only need to review a handful, sometimes less than a dozen, because the program predicts when I’ll forget each flash card and makes me review it before I forget. How can a program predict when I’ll forget something? The program, or rather its author, knows about the forgetting curve, a principle that people forget new memories faster than they forget old memories. If you just learned the Pythagorean theorem today and you don’t review it again, you’ll probably forget it by next week, but if you remember it from High School, you’ll probably remember it for at least the next year.
You tell spaced repetition systems (SRS) how well you remember a fact each time you answer its flash card. You grade your memory. The program uses your grade to predict when you’ll forget that fact. Each time you remember something correctly, the program schedules it further away. For example, if you tell it you learned the Pythagorean theorem today, it makes you recall it tomorrow; if you answer correctly, it makes you recall it in six days; then in 12 days; then 20 days; then 30, 50, 100 days; continuing forever. Within the first 18 months, you may only need to review each card 12 times. For 4,167 flash cards, that’s 50,000 reviews — which sounds like a lot — but it’s an average of only 90 reviews a day to keep over 4,000 flash cards memorized.
That’s how I reviewed just three flash cards a minute, for thirty minutes a day, for 18 months, to memorize over 4,000 flash cards. I don’t intend to stop. In thirty years, with the same routine, I fully intend to memorize and keep memorized over 100,000 flash cards.
Dr. Piotr Woźniak wrote SuperMemo, the first commercial spaced repetition program in 1987, and he continues to develop and sell it for Microsoft Windows today. This article introduces two free software programs, Mnemosyne and Anki, that both use slightly modified versions of that 1987 SuperMemo algorithm.
Mnemosyne’s author named the program after the Greek goddess of memory and mother of the muses, but the name also belongs to a European species of butterfly which Mnemosyne uses as its mascot. Use your favorite package manager to install the “mnemosyne” package. If you don’t have a favorite package manger, use Synaptic in the System -> Administration menu.
Go to the Applications -> Education menu and click “Mnemosyne” to start the program or type Alt-F2 to open the application launcher and type in “mnemosyne”. Before you try Mnemosyne, you should read the following warning.
By default, Mnemosyne collects anonymous statistics about how effectively you memorize your flash cards. The program’s author, an associate professor at Ghent University in Belgium, plans to use these statistics to improve Mnemosyne’s card scheduling algorithm. I’ve looked at the statistics and they don’t include any material on your cards nor anything about you, the user, but you may prevent Mnemosyne from sending these statistics by going to the Settings menu and clicking the Configure Mnemosyne option.
In the configuration dialog, uncheck Upload Anonymous Logs if you want to stop the uploads. Investigate the other options while you’re there. I like the option to increase the font-size for characters that use a non-Latin (non-English) character set. Setting this option makes reading Japanese and Chinese flash cards much easier. In the Repetition Process section, the “number of grade zero cards to hold in your hand” sets the number of un-memorized cards you want to review over and over again until you memorize them. Click Ok to save your new settings and exit the configuration dialog.
Click Deck -> Add Cards to display the add cards dialog. The dialog has three fields: category, question, and answer. If you plan on entering cards from many different subjects, I suggest you enter each subject as a different category. Later, I’ll show you how to hide some categories and make a custom flash card deck. A checkmark box labeled “Add vice versa too” sits beneath the Answer field. Marking this box creates a second card for every card you enter. The second card’s question field contains the first card’s answer and its answer field contains the first card’s question. Complete the card by choosing its initial grade; I discuss grades in the next section. If you’re not sure, choose grade zero. You can tab between the text fields and press Ctrl+0 through Ctrl+5 to add the flash card with the corresponding grade.
Exit the Add Cards dialog to return to the default learning and review mode. In the learning mode, Mnemosyne displays questions, one after another, until you learn them all. When you know the answer or realize that you don’t know the answer, click the Show Answer button. Besides showing the answer, Mnemosyne also activates six buttons numbered zero through five below the answer. Buttons zero and one indicate that you didn’t remember the answer or got it wrong. If you select either, Mnemosyne will show you a few other unmemorized cards and then display this card again. Buttons two through five indicate how well you remembered the answers. If you select any of them, Mnemosyne won’t show you this card again until at least tomorrow. Mouse over the grading buttons to display a tool-tip describing what each button indicates.
You can focus your studying on one particular category or group of categories by going to Deck -> Activate Categories. By default, Mnemosyne activates all categories. You may not find this feature useful if you always memorize cards within minutes of entering them, but if you get a backlog of cards to memorize, this feature helps prioritize your study.
Mnemosyne and all spaced repetition systems predict when the you’ll forget the answer to a flash card and schedule a review of the question shortly before then. Mnemosyne schedules cards daily, so you should run it daily. Don’t worry if you miss a few days here and there — Mnemosyne adapts. Every day you start Mnemosyne, it first shows the questions it thinks you’ll forget in the order it thinks you’ll forget them. Answer each question the same way you did before. Each time you answer correctly, Mnemosyne schedules the next review of the question further into the future. After using Mnemosyne for over a year and a half, it schedules some of my cards over 500 days into the future.
As you continue using Mnemosyne, you’ll probably find mistakes in your cards or ways to make them easier to memorize. Edit the current card by going to Deck -> Edit Card. Find other cards by going to Deck -> Edit Deck. Delete the current card by pressing the delete key; Mnemosyne asks you to confirm the deletion and, if you do, it deletes the card permanently.
Mnemosyne doesn’t limit cards to question and answer pairs or plain text. When adding cards, right click on the question or answer field to bring up the context menu. In that menu, the three-sided option lets you make foreign-language flash cards with a written form, pronunciation, and translation. When you add a three-side flash card, Mnemosyne generates two real flash cards. Mark the vice versa checkbox to generate four flash cards. The Add image or Add Sound options do what you expect. In either the question or answer field, you can enter standard HTML markup including formatting and tables. You can also render mathematical formulas with LaTeX by enclosing the formula between “<>"and"</>”.
You can import flash cards in several formats: SuperMemo, CueCard, two text formats, and Mnemosyne XML. You can export your flash cards to text, CueCard, and the Mnemosyne XML format. You can upload and download flash cards formatted for Mnemosyne on the Mnemosyne website. To import or export flash cards, use the corresponding option in the File menu.
Mnemosyne displays text statistics about your deck and the current card when you go to Deck -> Show Statistics. Some people find flash card statistics motivating and some people use them to limit how much time they spend reviewing cards each day.
You can add new features to Mnemosyne using plugins downloaded from the Mnemosyne website. Most plugins come as zip files, so you need to unzip them and put them in the Mnemosyne plugin directory, .mnemosyne/plugins.
Anki’s author wrote Anki to help learn Japanese, so he gave it the name of the English pronunciation of the Japanese word for memorizing. Install the “anki” package using your favorite package manager. Start the program by selecting Anki from the Applications -> Education menu.
Anki doesn’t upload any statistics automatically, but you can optionally keep a copy of your deck on Anki’s online server. This makes it easy for you to use Anki on multiple computers and lets you use Anki’s online version. Start by setting up an account on the Anki website. Then go to Settings -> Preferences, click the Save & Sync tab, and enter your username and password.
You can change other settings in both the Preferences dialog and from the Settings menu. I suggest you restrict your changes to the Preferences and Font & Colors dialogs until you get used to Anki. We’ll adjust the Current Model settings later in this article.
Select Add Items from the Edit menu to start adding cards. In Anki, you don’t make flash cards directly. Instead, you enter facts and models, and Anki combines them to make flash cards. The Model drop-down selects the rules Anki follows to make your cards; the default, “Basic”, builds simple two-sided cards. The text fields let you enter facts. In the “Front” text field, enter the card’s question; in the “Back” field, enter the card’s answer. You can create a second card for every card you enter using the Cards drop-down. In Basic mode, this drop-down works exactly like Mnemosyne’s vice versa checkbox; in other modes, it does more.
In the final text field, enter zero, one, or more tags for this card separated by commas. Tags let you disable groups of cards. Click Add to add the card to your deck; you don’t need to choose an initial grade; all cards in Anki start out as unmemorized. You can tab through the fields and press Control+Enter to add the card to your deck. Icons above the text fields let you add formatting, audio, graphics, and LaTeX math formulas.
Close the Add Cards dialog to return to learning mode. Anki displays the word “Learning” in the bottom right corner of the screen. Read the question and click Show Answer when you know the answer; then grade the card. Unlike Mnemosyne, Anki has only four grades: Again, Hard, Good, Easy. Beneath each grade, Anki prints the amount of time until you’ll next see this card if you give it that grade.
You can focus your study by disactivating unimportant cards and prioritizing important cards. Go to the Deck Properties dialog in the Settings menu. The Suspend Cards field contains a list of tags. Anki hides any cards with these tags during learning and review. The three priority fields — Very High Priority, High Priority, and Low Priority — prioritize other tags. Anki shows cards with priority tags before other cards in the learning and review cycle.
By default, Anki only lets you learn 20 new cards each day. This prevents you from becoming overwhelmed tomorrow, but you can adjust the threshold in the Deck Properties menu. When you finish learning new cards, Anki tells you how long you have to wait until the next review. If you don’t finish learning all the cards, Anki interrupts your learning for the review. Anki schedules reviews in increments of minutes — not days like Mnemosyne — but you should still review your Anki cards at least once a day. When learning or reviewing cards, you can edit the current card by going to Edit -> Edit Current. You can also go to Edit -> Edit Deck to edit any card in the deck.
To get three-sided or even more advanced cards, edit Anki’s models. Add a new model in the Add Cards screen by pressing the green plus sign next to the Model drop-down. Anki comes with models for learning Japanese and two Chinese dialects, but you can add another Basic model and customize it. After adding the new Basic model, click the Edit Model icon next to the plus sign. Give the model a new name and set up the model’s parameters. On the Fields tab, setup the parameters of each fact; on the Cards tab, setup how Anki should generate cards using the facts. If this model accepts more than two facts for each question, extra fields appear on the Add Cards screen.
You can import cards as a tab or semicolon separated file, Mnemosyne deck, Cue card deck, or Anki deck. You can export cards or facts as a tab separated file or Anki deck.
Anki shows many more statistics than Mnemosyne and includes several graphs. You can access all of these statistics from the Tools menu. After you use Anki for several weeks, the graphs will clearly show you Anki’s use of the forgetting curve.
Contrast and Conclusion
I don’t think it matters which program you choose: both Mnemosyne and Anki help you memorize the greatest amount of information in the least amount of time. But both programs require a serious commitment. You can’t take advantage of the forgetting curve or the SuperMemo predictive algorithm unless you run the program everyday. If you make that commitment, even for just a few minutes everyday, you’ll soon have hundreds, then thousands, of new facts at your disposal.
David A. Harding began using Linux in 2001 and quickly became a Linux Professional Institute certified system administrator. His articles have appeared in over a dozen publications and he has given over 50 presentations about Linux—including two Software Freedom Day keynotes. Dave always loves to hear from readers at firstname.lastname@example.org.
To the extent possible under law, David A. Harding has waived all copyright and related or neighboring rights to this article. This work is published from the United States.