Skip to content

Implement a "Spaced Repetition" system #24

@matthewl580

Description

@matthewl580

A clear and concise description of what you want to happen:

Implement a "Spaced Repetition" system: Categorize flashcards into three groups:
New: Cards the user has not yet encountered. These cards should have easier difficulty settings (e.g., more time, half credit for incorrect answers).
Attempted: Cards the user has seen before. Use the user's current game configuration for these cards.
Mastered: Cards the user has consistently answered correctly. These cards should have increased difficulty (e.g., less time, no half credit).
Interweave "Mastered" cards: When the user answers two consecutive questions incorrectly, introduce a question from the "Mastered" group to assess their retention of previously learned material.
Describe alternatives you've considered:

Single difficulty level: Maintaining a single difficulty level for all flashcards throughout the game.
Pros: Simpler implementation.
Cons: Less effective for long-term retention. May not be challenging enough for mastered concepts or too difficult for new concepts.
Manual difficulty adjustment: Allowing users to manually adjust difficulty levels for individual cards.
Pros: Provides greater user control.
Cons: Can be time-consuming and may not be optimal for learning.
Additional context:

This feature will significantly enhance the learning experience by:
Personalizing difficulty: Adapting to the user's progress and knowledge level.
Promoting long-term retention: Regularly reviewing previously mastered concepts to prevent forgetting.
Creating a more engaging and challenging learning experience.
Consider implementing visual cues (e.g., different card colors) to distinguish between the three groups.
Explore more sophisticated spaced repetition algorithms (e.g., Leitner system) for more advanced difficulty adjustments.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions