Skip to content

Swift implementation of an Anki-like spaced repetition scheduler

License

Notifications You must be signed in to change notification settings

bdewey/SpacedRepetitionScheduler

Repository files navigation

SpacedRepetitionScheduler

Implements an Anki-style spaced repetition scheduler for active recall prompts.

Overview

In a learning system that uses active recall, learners are presented with a prompt and rate their ability to recall the corresponding information. SpacedRepetitionScheduler recommends a time interval to wait before showing a learner the same prompt again, given his/her history of recalling the information associated with this prompt and how well he/she did recalling the associated information this time. The recommended time intervals for a given prompt will increase the more frequently the learner recalls the information associated with a prompt.

SpacedRepetitionScheduler considers a prompt to be in one of two modes when making time interval recommendations: learning or review.

  • In the learning mode, the learner must successfully recall the corresponding information a specific number of times with specific time intervals between recall attempts. After successfully recalling the associated information the specified number of times, the prompt graduates to the review state.
  • In the review mode, the amount of time between successive reviews of a prompt increases by a geometric progression with each successful recall.

Where to start in the code

Representing prompts

  • PromptSchedulingMetadata -- Information needed to determine the recommended time to review a prompt again.
  • PromptSchedulingMode -- Whether the prompt is in learning or review mode.

Scheduling parameters

  • RecallEase -- Rating for how easy it is to recall the information associated with a prompt.
  • SchedulingParameters -- Holds parameters used to determine the recommended time to schedule the next review of a prompt.

About

Swift implementation of an Anki-like spaced repetition scheduler

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages