Spaced Repetition (SM-2)
Mastering the physics of memory using algorithmic review cues.
Spaced repetition leverages the spacing effect to improve memory retention. CrackCode implements the SuperMemo-2 (SM-2) algorithm to schedule problem reviews at the exact moment of maximum cognitive decay.
The Mathematical Mechanics of SM-2
For every problem solved, the system calculates your next review interval ($I$) and Ease Factor ($EF$) based on your feedback quality score ($q$) from 0 to 5:
- 5: Perfect response (solved without hesitation).
- 4: Correct response after brief recall delay.
- 3: Correct response with significant effort / minor bug fix.
- 2: Incorrect response, but re-reading solution made it clear.
- 1: Incorrect response; code logic was completely forgotten.
- 0: Total blackout; code logic is completely foreign.
Interval and Ease Factor Formulas
The values are updated according to the following formulas:
// 1. Ease Factor update (default EF starts at 2.5)
EF' = EF + (0.1 - (5 - q) * (0.08 + (5 - q) * 0.02))
EF' = Math.max(EF', 1.3) // Lower bound guard
// 2. Interval calculation (days to next review)
if n = 1: I = 1
if n = 2: I = 6
if n > 2: I = Math.round(I(n-1) * EF)
If $q < 3$, the repetition cycle count ($n$) resets to $0$ and the interval ($I$) is reset to $1$ day, returning the problem to your active daily queue immediately.
Structuring Daily Reviews
Commit to clearing your review queue before starting new problems:
- Open your Spaced Repetition page.
- Re-solve the scheduled challenges without looking at your past submissions.
- Evaluate your quality score honestly. If you struggled, rate it $3$ or lower so you can re-verify your logic soon.