Программа
Self-engineering
Дайте мне шесть часов для того, чтобы срубить дерево, и я потрачу первые четыре часа на то, чтобы заточить топор.
Авраам Линкольн
Пожалуй одна из ключевых проблем классического образованию – это его дегуманизация, полная отстранённость от ученика как индивидуума, которого стоит подготовить к погружению в пучину знаний, заданий и социальных коммуникаций, "заточить его топор".
Что парадоксально, некоторые самые базовые вещи из области личного менеджмента и самоорганизации могут идеально подойти для объяснения наиболее сложных концепций в области информатики, таких как внутренняя организация СУБД, конкурентное, распределённое, асинхронное программирование и многих других.
Spaced repetition
Давайте представим, что на первом же занятии мы предложили ученикам некоторое определение. Скажем, "Информатика – это наука о формах и красоте". Согласно многим исследованиям, лучший способ запоминания – это повторение. Для этого на рынке существует немало программ, которые помогают в этом. В основном они представляют из себя простую концепцию карточек с одной стороны которых написан вопрос, например "Что такое информатика". А с другой – ответ на него.
Почему бы не взять за основу эту очень практичную задачу и непосредственно с неё не начать разработку XDE.app?
Для трека использующего веб-платформу и идея движения от markup-языков в Подготовке, мы можем взять текстовую форму определения и превратить его в HTML-разметку, например:
<dl>
<dt>Информатика</dt>
<dd>Наука о формах и красоте</dd>
</dl>
Предварить такую разметку мы можем простым объяснением. В стремлении сделать программу мы должны разделить фразу на две, по одной части для каждой стороны карточки. Мы можем попробовать в качестве разделителя выбрать "- это", но такое решение будет хрупким. Более надёжный вариант – это разметить определение с помощью тегов.
Далее, при наличии разметки мы можем начать её декорировать, делать простые запросы (скажем XPath), постепенно добавлять ECMAScript для интерактивности и даже задействовать встроенные в браузер хранилища (localStorage, IndexedDB), чтобы у учеников сохранялась их персональная статистика по ответам на вопросы.
На этом этапе мы можем вводить понятие спецификации и формализации требований, активно используя подход Specs.
TODO:Начать интеграцию идеи Specs можно с введения сэмплинга для тестов. А затем и самих тестов.
Привычки
TODO: Паттерны, как программные, так и когнитивные. В простом варианте можно рассмотреть как привычки. Поскольку Spaced repetition предполагает шедулинг карточек, то можно продемонстрировать принципы реюзинга и абстрагирования, расширив его и для работы с привычками, например простейшие фитнес-тренировки.
TODO:Ключевые пункты для реализации
- Spaced repetition.
- Работа с "генами", привычками.
- Тайм-менеджмент. Задачи, зависимости (межде задачами, npm, DI). Как у человека, так и у машины (ES promises, .NET Tasks, etc).
- Шедулинг. Приоритеты и матрица Эйзенхауэра. Почему просто линейные приоритеты не работают.