Designing learning systems with spaced repetition

Spaced repetition is a valuable technique for learning. The typical design of a spaced repetition system (SRS) presents users with a queue of all items that are due according to its scheduling algorithm1. The motivation behind this post is that the queue can quickly become overwhelming, and endless item review is frankly boring. Can we do better?


The SRS design is based several assumptions:

  1. The user wants to retain everything, all the time. SRS queues get big because they contain everything the user has thought to add to the system, whether or not they still want to know it. Sure, the user can delete things, but leaving this kind of maintenance work up to the user isn’t ideal.
  2. The user doesn’t review any item outside of your system. In a previous post, I talked about how spaced repetition occurs naturally when we attempt to learn something in a natural way. In other words, if you are actively engaged in learning Portguese in Portugal, your exposure to many words will be spaced and repeated. By assuming that users only learn in the system, you either drive them away from reviewing with more natural processes or your algorithm is based on poor assumptions. (When I was studying Chinese only in Skritter, it was spacing too far, so I’m guessing their parameters were adjusted for people who studied outside the system.)
  3. There’s only one way to review an item. In a typical SRS, all items are independent. But think about basic addition skills. Do you need to review them constantly? No, they come up all the time when you learn multiplication, division, and then any other topic involving math. In Learnstream Atomic, we attempted to break down physics questions into components and mark everything as reviewed. I think that was only the tip of the iceberg.

This sounds obvious, but one way to reconsider spaced repetition systems is to realize that they provide two values: spacing and repeating. The overwhelming queue is a design that favors repeating items more than spacing them, at least when you consider item review outside of a closed system. Imagine another system that take the opposite approach, favoring spacing: perhaps a website that has links to different items but warns you not to look at something that you’ve looked at recently.

If you’re considering implementing a spaced repetition system for a learning tool, consider carefully the assumptions made by existing systems and the two values provided by spaced repetition. What would you do differently?

[1] Every SRS I’m familiar with uses the SuperMemo algorithm, based on the idea of an exponential memory decay.