Алгоритм изучения слов

Основная идея

Интервальные повторения

Кривая забывания

Алгоритм

Для раздела "Словарь"

У каждого слова есть три параметра:

  • сorrectAnswersNumber - Количество верных ответов на механики, где можно ошибиться
  • trainingIntervalsNumber - Текущий номер интервала
  • trainedAt - Время последнего повторения слова

При помощи кнопки сброса прогресса пользователь может сбросить в 0 все три параметра.

Все слова, на которые было дано 6 или больше правильных ответов считаются выученными.

Соответственно, у невыученных слов 6 делений прогресса, которые можно увидеть в интерфейсе.

Если пользователь дает неправильный ответ, то это же слово будет показано ему через одну карточку и неправильный ответ не засчитается. Количество таких попыток ограничено, если пользователь допускает 3 ошибки подряд в одном слове, то trainingIntervalsNumber уменьшается на 1. Этот параметр отвечает за то, когда слово будет показано в следующий раз (см. таблицу ниже).

Прогресс слова при этом никогда не может уменьшиться - он всегда может только расти.

Интервалы имеют следующую длительность (в секундах):

Тренировки могут быть 3-х типов: на изучение новых слов, на повторение уже изученных слов, автоматические. На изучение новых слов должны попадать слова с сorrectAnswersNumber < 6, в повторение с сorrectAnswersNumber >= 6 соответственно. При автоматическом выборе тренеровки чередуются, т.е. если последней была тренировка на изучение новых слов, то будет выбрана тренировка на повторение,если это возможно, и наоборот.

Статьи, которые могут быть полезны:
Настройки приложения
Отмена/Перенос урока
Словарь и работа со списком слов на iOS
Словарь и работа со списком слов на Android