1. Назначение
MILA Learning использует ядро MILA как структуру самообъяснения и восстановления решения.
Главный вопрос:
Стал ли код частью модели учащегося или остаётся только узнаваемым готовым ответом?
RECALL относится к обучению, а не к обязательным свойствам production-кода.
2. Учебная модель
WHAT
[TYPE]
WHY
EDGE
HOW
EDGE → TEST
закрыть источник
→ RECALL
→ TRANSFER3. Уровни обучения
- Полный пример — показаны все слои.
- Скрыт HOW — реализация пишется по WHY и EDGE.
- Скрыт EDGE — граница обнаруживается самостоятельно.
- Скрыты TYPE, WHY, EDGE и HOW — дано только бизнес-требование.
- Контрастные решения — сравниваются анонимные варианты.
- RECALL — решение восстанавливается без исходного примера.
- TRANSFER — принцип применяется к другой задаче.
4. RECALL
RECALL не требует дословного запоминания кода.
Нужно восстановить:
- WHAT;
- важную часть TYPE;
- WHY;
- EDGE;
- основной HOW;
- различающие тесты.
Immediate Recall
Через 2–10 минут:
- закрыть пример;
- объяснить WHY;
- назвать EDGE;
- восстановить условие;
- назвать тест.
Delayed Recall
Через 24 часа или несколько дней:
- показать только бизнес-требование;
- определить TYPE;
- написать WHY и EDGE;
- восстановить HOW;
- создать матрицу тестов.
Transfer Recall
Дать похожую задачу в другом предметном контексте.
Исходная задача:
кредитный лимит
Новая задача:
максимальный складской остаток5. Пример RECALL
Изученный код:
СкидкаПредоставляется
// WHY: скидка действует начиная с установленной суммы заказа
// EDGE: заказ ровно на 100000 уже получает скидку
= СуммаЗаказа >= 100000;Через день показывается только требование:
Скидка действует начиная со 100000 включительно.Ожидаемое восстановление:
СкидкаПредоставляется
// WHY: определяется право на пороговую скидку
// EDGE: 100000 включается
= СуммаЗаказа >= 100000;99999.99 → Ложь
100000.00 → Истина
100000.01 → Истина6. Ноль и отсутствие
Требование:
Различать:
лимита нет
лимит равен 0
лимит положительныйОжидаемая модель:
КредитныйЛимит = Неопределено;
ЛимитОпределен
// WHY: наличие настройки отделяется от значения
// EDGE: нулевой лимит является настроенным лимитом
= Настройки.Свойство(
"КредитныйЛимит",
КредитныйЛимит);Ошибка:
ЛимитОпределен = КредитныйЛимит <> 0;Она показывает, что различие «ноль ≠ отсутствие» не усвоено.
7. Задания с пропусками
A. Скрыт HOW
ЛимитПревышен
// WHY: проверяется прогнозный долг
// EDGE: равенство разрешено
= /* HOW */;B. Скрыт EDGE
ЛимитПревышен
// WHY: проверяется прогнозный долг
// EDGE: /* EDGE */
= ДолгПослеЗаказа > Лимит;C. Скрыта модель
ЛимитПревышен
// WHY: /* WHY */
// EDGE: /* EDGE */
= /* HOW */;8. Оценивание
| Критерий | 0 | 1 | 2 |
|---|---|---|---|
| WHAT | потерян | приблизительный | точный |
| TYPE | отсутствует | языковой тип | важные состояния |
| WHY | отсутствует | пересказ кода | основание решения |
| EDGE | отсутствует | общий риск | точная граница |
| HOW | неверен | частично верен | соответствует модели |
| TEST | отсутствует | типовой | ниже / граница / выше |
Максимум: 12.
10–12
модель усвоена
7–9
основа усвоена, часть границ потеряна
4–6
код узнаётся, но плохо восстанавливается
0–3
понимание преимущественно пассивное9. Учебный цикл
10 минут — воспроизведение прошлого материала
15 минут — новый пример
20 минут — самостоятельные WHY и EDGE
20 минут — HOW и тесты
15 минут — сравнение решений или рефакторинг
5 минут — фиксация выводов10. Правила Learning
- Собственная попытка предшествует готовому решению.
- Готовые WHY и EDGE не показываются до первой попытки.
- RECALL проверяет смысл, а не форматирование.
- TRANSFER важнее дословного воспроизведения.
- Ошибки на границе являются учебным материалом.
- Прогресс оценивается по модели и тестам, а не по числу комментариев.