MrWalshyType2 / Noting

Note app with study features written in C# with ASP.NET 5.
0 stars 0 forks source link

Implement custom Leitner Spaced repetition model #14

Open MrWalshyType2 opened 3 years ago

MrWalshyType2 commented 3 years ago

Try to make it modular so the spaced repetition model is interchangeable

Spaced Repetition Objects

Spaced repetition system will use the 'Leitner System'.

The aim of spaced repetition is to increase the solidification of 'desired' long-term memories through the technique of recall. Hermann Ebbinghaus laid the ground research for Spaced Repetition suggesting a forgetting curve associated with memory, the memories access and precision decrease with time. The active recall of a memory using questions posed at calculated time intervals negates this effect.

Why the Leitner System

For now, it is a simple algorithm to replicate, and I wish to slightly modify it.

The Leitner System was proposed by Sebastian Leitner, a simpler implementation of spaced repetition. Flashcards in the Leitner system are grouped, according to how well they are known, in labelled Leitner's learning boxes. If the solution is correctly recalled, the card will be moved to the next box (longer time period). Should the solution not be recalled, the card is moved to the first box which has the shortest amount of time until it has to be answered again. Leitner's original method scheduled repetition by the partition sizing in the learning box (1, 2, 5, 8, and 14cm). Leitner proposed that each partition should only be reviewed upon it becoming full.

My solution - The Five Box Solution

I will use a 'five box' solution, see Three Boxes for inspiration.

Each box will be a derived class, with a custom name indicating its level/grouping. Box implementations will have 5 levels and will likely be named something like LearningBoxOne, LearningBoxLevelFive for example. The time implementation for each box will be changed with experience:

Cards will be demoted to Level 1 if the solution is not recalled correctly, or go up one level unless in Level 5 if recalled correctly.

MrWalshyType2 commented 3 years ago

Commit 46131b6 gives an index page that indicates a notes title, what box said note is in, and some navigational buttons for the note.

Add an Attempt route for getting a past attempt, and a Post route for posting an attempt. Add a Start route for starting a new attempt. Add a History route to view a full history