Spaced repetition learning systems (SRS)

based on an article by Michael Mounteney

Computer-based spaced-repetition, or flashcard, software, can greatly assist in the rote-memorisation of information that is arranged in question-answer pairs; in the case of language study, the obvious application is memorisation of vocabulary.

The method varies in detail from one application to another but basic modus operandi is thus:

  1. Each day, run the software.
  2. It will present a question, typically the translation of a word or phrase. The translation can be active or passive (into, or from, the foreign language).
  3. You attempt to recall the answer from memory.
  4. Having made your best attempt to do so, you click a button to reveal the correct answer. You then score your answer by clicking a further button. Some systems such as FullRecall ( and Supermemo ( allow you score from 0 (no idea) to 5 (instant and correct recall), while others such as jMemorize ( only accept right/wrong.
    Some systems (e.g., Parley on KDE) make you type the answer and score what you type. This prevents unconscious cheating but prevents discretion in scoring, such as omission of a leading `the'.
  5. The software schedules the question to be asked again at some point in the future which it calculates from your scoring history to date, i.e., how well you answered this time plus how well you have answered the same question in the past. Different packages use different algorithms for calculating the scheduling.
  6. The above steps are repeated until all items scheduled for today have been reviewed or answered. Therefore, the items that are presented on any particular day are those items that have been scheduled on previous days' reviews.
  7. Items that you remember easily are scored more highly and are repeated less and less frequently, whereas items that are more difficult are repeated more frequently - hopefully until they are drilled-in and remembered. This is the key to spaced-repetition software: it automatically manages revision of your learning, so that you concentrate on items that are difficult to remember, and don't waste time reviewing items that you know very well.
  8. The obvious chicken-and-egg question is how items are started in the first place. Most systems have the idea of a queue of unlearnt items, that are in the database but have not yet entered the learning process. Generally, on any day, you would review the accumulated items from previous revisions, as above, then add some more items from the queue. Thus each day ones database of `learnt' items grows slightly.

Different packages have varying levels of sophistication and facilities.

Supermemo excels at statistical analysis of learning, and provides comprehensive management of items into categories and sub-categories. It is however rather idiosyncratic in its operation and its text handling is not simple Unicode, so learning data in non-Latin writing systems is sometimes inconvenient. Supermemo is moving towards another idea called `incremental reading' which involves harvesting pages of information off the Web and breaking it up into memorable pieces over time. It only runs under MS-Windows, although some users have had some success running it under WINE on GNU/Linux. It also offers comprehensive multimedia capabilities. Its database is proprietary and any editing thereof has to be through the program's own facilities, which are less than comprehensive.

FullRecall is much more straightforward in operation. It implements Unicode (UTF-8) character handling, so all writing systems are accommodated. Its spacing algorithm is intriguing - a `neural net' which supposedly mimics your personal `forgetting curve' (the rate at which your memory decays over time) based on your self-scoring during reviews. It is multi-platform. It is still in development, but that does not mean that it is unreliable; the development is of new features. It achieves portability by the use of the FOX toolkit, which, in the opinion of this author at least, is a rather simplistic and unaesthetic product. Its database is open, which allows some analysis and reporting by third-party tools.

jMemorize is a free (donations welcome) package written in Java. It implements the rather simple Leitner spacing algorithm, less sophisticated than either FullRecall or Supermemo. As it is written in Java, it runs on any machine which has a JRE - MacOS, GNU/Linux, Solaris, MS-Windows XP etc.

Mnemosyne is similar to SuperMemo and uses an early version of the SuperMemo algorithm, with some modifications that deal with early and late repetitions. It is written in Python and can be used on Windows, Linux, and Mac OS X. Users of the software usually make their own database of cards, although some pre-made databases are available.

Each day the software displays each card that is scheduled for repetition. The user then grades their recollection of the card's answer on a scale of 0-5. The software then schedules the next repetition of the card in accordance with the user's rating of that particular card and the database of cards as a whole. This produces an active, rather than passive, review process.

Expemo is a web-based flashcard application built with Flash and integrated with the language learning website Lingua house. Users of the system create and review their own knowledge collection from ready-made flashcard 'packages'. There are currently two main available sources of knowledge - English language learning resources and collections of phrases in several languages. All knowledge is broken down into a question-and-answer format and users grade their recollection of answers on a scale of 0 to 5. The platform uses a state-of-the-art algorithm for calculating the optimal repetition schedule for each user depending on their current progress with the material. Additional features include multimedia content, various analysis tools and personal review calendar customization. Future versions of the website will include additional languages and the possibility to work offline using laptops or mobile devices.


Further information about spaced repetition

Spaced repetition systems

Reviews of SRS

Language learning tips

Other articles


Green Web Hosting - Kualo

Why not share this page:

If you like this site and find it useful, you can support it by making a donation via PayPal or Patreon, or by contributing in other ways. Omniglot is how I make my living.


Note: all links on this site to, and are affiliate links. This means I earn a commission if you click on any of them and buy something. So by clicking on these links you can help to support this site.

Get a 30-day Free Trial of Amazon Prime (UK)