Uploaded avatar of iHiD

Проєкт автоматизованої підтримки наставництва

@iHiD
Більше 7 років тому

Оновлення: ми раді повідомити, що Mozilla відзначила нас нагородою Open Source Support Award за цей проєкт. Докладніше читайте тут.

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

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

Чому автоматизована підтримка наставників?

Найбільша перешкода для Exercism - це вміння справлятися з масштабом.

Наші наставники-волонтери відіграють вирішальну роль в успіху Exercism. Вони переглядають рішення учнів, аналізують, чи відповідають вони критеріям успішного виконання вправи чи потребують доопрацювання, з розумінням ставляться до ходу думок учня, дають заохочувальний і корисний відгук і вчать людей ідіом мови. Сьогодні ми ледве встигаємо за попитом на наставництво. Якщо ми хочемо зростати, нам потрібна краща стратегія, ніж «додати більше наставників».

За нашими оцінками, для основних вправ, які формують основу мовного треку Exercism, близько 25% надісланих рішень достатньо хороші, щоб їх позначили як виконані з першої спроби. Ще 55% надісланих рішень мають проблеми, які належать до типових категорій, і на них можна відповісти, скопіювавши готові фрагменти відгуку. Лише близько 20% рішень вимагають від наставника винахідливості та вдумливості у відгуку.

Ті 80% рішень, які насправді не задіюють мозок наставника, - це прикра втрата часу для людей, готових безкорисливо допомагати іншим, і вони не дають змоги використати їхній досвід повною мірою.

Так само учень може чекати на відгук від одного дня до тижня і тим часом не може просуватися треком далі. Для тих, хто надіслав ітерацію, яка належить до тих 25% цілком слушних рішень, ця затримка особливо прикра. Для решти це в найкращому разі не оптимально. Через цю затримку учні часто втрачають запал і розчаровуються в процесі.

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

Як це працюватиме?

Наша довгострокова мета - розробити алгоритми глибинного навчання, які зможуть аналізувати абстрактні синтаксичні дерева (AST) майже мільйона рішень, надісланих відтоді, як Exercism уперше запустили 2013 року. Такий інструмент міг би виявляти типові закономірності та повʼязані з ними коментарі наставників. У найближчій перспективі наша мета - використовувати статичний аналіз, щоб визначити, який відгук можна дати на основі найпоширеніших повторюваних помилок, які бачать наставники.

Проєкт поділяється приблизно на такі напрями:

  1. Зміни в продукті: нам потрібно зʼясувати, як цей автоматизований аналіз поєднується з поточним інтерфейсом для наставництва, як ми передаємо цей відгук (системні повідомлення, «бот» тощо), а потім реалізувати це на сайті Exercism.
  2. Інфраструктура: ми спроєктуємо й побудуємо інфраструктуру, яка зможе ефективно підтримувати запуск статичного аналізу для багатьох мов.
  3. Прототип статичного аналізу: розробити зразковий аналізатор, який автоматично схвалюватиме добрі рішення для Ruby / Two-fer, і задокументувати цей процес, щоб ширша спільнота могла долучитися.

Ми прагнемо запустити початковий прототип до середини 2019 року. Щойно основи буде закладено, ми плануємо поширити це й на інші мови, крім Ruby, та інші вправи, крім Two Fer. Хоча framework для інтеграції інших мов і вправ у сайт зʼявиться лише після того, як ми просуватимемося з прототипом, якщо є бажання вже почати писати аналізатори для улюблених мов і вправ, немає жодної причини чекати! Створіть issue у репозиторії цього проєкту на GitHub і розкажіть нам, чим вам цікаво займатися.

Ми дуже раді співпрацювати з іншими людьми зі спільноти Exercism, які вже використовували статичний аналіз, щоб допомагати з наставництвом, зокрема з tehsphinx і bitfield, які розробили інструмент статичного аналізу для наставників на треку Go. Те, як він перетворив трек із величезною чергою завдань на один із найоперативніших мовних треків на Exercism, показує, наскільки потужною може бути автоматизована підтримка наставників.

Протягом наступних кількох тижнів ми докладніше розповімо про ці перші ключові кроки та про те, як усе працюватиме.

Із задоволенням відповімо на будь-які запитання в розділі коментарів нижче! :)

Translation missing: uk.number.nth.ordinalized Feb 2019 · Виявилося корисним?