Концептуальні вправи


Концепт-вправи мають на меті навчити студента ключових навичок, потрібних для роботи певною мовою. Вони охоплюють як типові для цієї мови речі (наприклад, як працювати з рядками тексту (англ. string)), так і специфічніші (наприклад, монади, ООП, функції вищого порядку).

Концепт-вправи мають такі властивості:

  • Кожна з них має чітку навчальну мету.
  • Вони привʼязані до конкретної мови, а не загальні.
  • Заглушки та шаблонний код використовують, щоб студентові не доводилося вивчати чи писати зайвий код у вправах.

Концепції

Вправи розблоковуються на основі концепцій, яких навчають і які засвоєно. Кожна концепт-вправа повинна навчати однієї чи кількох концепцій. Вона також може мати передумови щодо концепцій, а це означає, що вона не розблокується, доки не завершать концепт-вправи, які навчають цих концепцій-передумов.

Складність

Концепт-вправи не повинні ставати складнішими самі по собі в міру просування по треку. Досвідчений розробник, який знає мову X, повинен мати змогу пройти всі концепт-вправи цього треку, витрачаючи на кожну не більше ніж 5-10 хвилин. Оскільки кожна вправа має бути зосереджена на тому, щоб людина вперше використала певну концепцію, а досвідчений розробник уже розуміє цю концепцію в мові X, вправа має здаватися йому доволі простою. Пізніші вправи можуть здаватися складнішими розробникові, незнайомому з мовою X, але лише тому, що така вправа навчає концепції, яка сама по собі складніша (наприклад, більшість погодиться, що вивчати рекурсію вперше складніше, ніж перенести цикл з однієї мови в іншу).

Зворотний звʼязок

Концепт-вправи не перевіряються наставниками. Коли студент надсилає рішення, у якому тести концепт-вправи проходять, ми перевіряємо, чи є для нього аналізатор або репрезентер, який дасть зворотний звʼязок. Якщо жодного не знайдено, рішення схвалюється. Це переносить тягар навчання на саму вправу, яка має забезпечити чіткий шлях до засвоєння концепції, якої вона навчає.