Как работает Mathua
Техническое описание движка адаптивного обучения математике: граф концепций, модель студента, диагностика, выбор задач и система оценки.
privacy
Эта заметка участвует в semantic memory.
AI Summary
🚀 TL;DR: Mathua представляет математические знания как направленный ациклический граф из 1250 атомарных концепций (21 домен, от счёта до топологии), где рёбра — отношения «предпосылка». Каждый ученик имеет состояние по каждой концепции; система использует упрощённый SM-2 для интервального повторения и Computerised Adaptive Testing для начальной диагностики.
🔑 Ключевые факты: граф хранится в data/concepts.json и валидируется на PR; mastery_threshold задаётся парой (streak, avg_time_seconds); диагностика сокращает число вопросов на ~94 % за счёт информационного выигрыша; scheduler поддерживает баланс 70/30 между новым материалом и повторением; генераторы задач на Go, символьные ответы проверяются SymPy.
📌 Важные детали: приоритет задачи = 0.7 × days_since_last_seen + 0.3 × (1 − mastery_score) + бонусы; три жёстких правила (все предпосылки MASTERED, не повторять концепцию дважды подряд, 70 % новый материал); SymPy запускается как долгоживущий Python-подпроцесс, pinned-версия в образе; метрики (first-pass rate, second-pass rate, retention и др.) считаются только из сырых логов попыток без агрегации на запись.
💡 Вывод и значение: можно в любой момент пересдать диагностику — результат сливается с существующей оценкой, всегда берётся более оптимистичная; все генераторы параметризуются difficulty 0–1; для алгебры/анализа/тригонометрии нет fallback-оценки — только SymPy.