вітаю! Мене звати Колін Фредерікс. Я працюю в HarvardX як старший керівник проекту, що означає, що більша частина моєї роботи полягає в тому, щоб допомагати професорам Гарварду створювати якісні курси. Однак протягом останніх кількох місяців я працював, переважно у вільний час, над додаванням частковий кредит на платформу Open edX.
Мені дуже подобається платформа Open edX, але я завжди дивувався, що не було можливості присудити частковий кредит. Оскільки я викладав у коледжі та середній школі, це здавалося настільки очевидним недоглядом, що я все очікував побачити його в списку «майбутніх функцій». Після трьох років очікування я нарешті вирішив взяти справу в свої руки.
Тепер я не професійний програміст. (Ви можете почути зловісну музику, яка грає у фоновому режимі. Ми називаємо це «передбаченням».) Я вивчив Applesoft BASIC у 4-му класі, програмування TI-82 у середній школі, C++ у коледжі, Python, коли працював у MIT, і Javascript, коли я був безробітний, але я ніколи раніше не брав участі в роботі з відкритим кодом. Я ніколи не писав тестовий код. Чорт, я ледве знав про існування цього тестового коду. (Тінь падає на камеру. Більше передчуття.) Я вирішив, що збираюся додати один вид часткової заслуги лише до одного типу проблеми, просто зробіть все просто, щоб я міг впоратися з цим за тиждень або два. (Це теж передвіщає.)
Це був початок квітня. Я досяг своєї початкової мети за два дні, а потім проект швидко роздувся до свого поточного стану. Я був переконаний розширити від одного типу проблеми до стількох, з якими я міг розумно впоратися, і написати a повноцінна пропозиція це закінчилося 16 сторінками.
Впроваджуючи цю функцію, я дізнався про цей «тестовий код», «перевірку якості коду» та інші речі, про які вони (розумно) не розповідають людям у Computer Science II. Я почав з Посібник розробника edX, як я найкраще зрозумів, зі своїм гарна блок-схема. Я відкрив a квиток пропозиції на JIRA, створив репозиторій github для свого власного коду, відкрив мій перший запит тягнути, зробив ще трохи розробки, отримав багато хороших відгуків (більшість з яких я включив), навчився правильно перебазовувати, відкрив новий і кращий запит на підключенняі ще трохи кодував. Нарешті, після приблизно 15 тижнів розробки, я з гордістю можу сказати, що цю функцію об’єднано в головну гілку edx-platform!
Частковий кредит: подробиці функції
Ось короткий виклад того, як зараз виглядає ця функція. Зауважте, що наразі автори можуть увімкнути лише часткову заслугу шляхом безпосереднього редагування визначення проблеми OLX.
Широкий вибір та Випадання проблеми мають один тип часткового кредиту: оцінювання за стилем «бали». Автор курсу перераховує певні варіанти, які варті часткового кредиту, і, за бажанням, встановлює, скільки кредитів вони варті (за умовчанням 50%). Як побічний ефект, проблеми зі спадним списком було оновлено, щоб більше ніж один варіант можна було позначити як правильний.
прапорець проблеми мають два (взаємовиключні) типи часткового кредиту: стиль «Наполовину», у якому ідеальна відповідь дає 100% кредиту, а кожна помилка скорочує кредит наполовину, і стиль «Кожне рішення має значення», у якому кожен прапорець фактично перетворюється у власне окреме питання істини/неправди.
Ось приклад того, як автор курсу ввімкне частковий кредит у стилі «Кожне рішення має значення» (або «EDC») у задачі Studio:

Ось як проблема постане перед учнями:

чисельний завдання також доступні двох типів: стиль «Список», де автор перераховує відповіді, які враховують частковий кредит (наприклад, у математичній задачі часткові відповіді на кредит можуть бути такими, що є результатом пропуску мінусового знака або інвертування дробу), і «Близький» стиль, який розширює заданий допуск, щоб дозволити підхід «підкови та ручні гранати». Оскільки два стилі сумісні, ви можете використовувати їх обидва в одній задачі, якщо хочете.
Ось як автор курсу може визначити числову задачу з частковим кредитом у стилі «список»:

Ось як проблема постане перед учнями:

Нарешті, Спеціальний Python проблеми тепер можуть повертати не лише значення балів, але індикатор того, чи вважається проблема повністю чи лише частково правильною.
Щоб дізнатися більше про те, як додати частковий кредит до своїх проблем, див часткова кредитна документація.
Я дуже задоволений тим, як все це вийшло. Проект зайняв більше часу, ніж я думав, але він також набагато потужніший. Він забезпечує структуру, яка полегшує часткове додавання кредиту до інших типів проблем у майбутньому, я справді сподіваюся, що люди скористаються цим.
Що буде у v2?
Ну, по-перше, у мене запланована версія 1.5, яка очищає деякі з оточуючих коду, щоб майбутні учасники модуля Capa не мали таких проблем, як я. Після цього – більше проблем, звичайно! Я також планую зробити цю функцію доступною для типових проблем без використання XML, тобто дати інструкторам можливість використовувати цю функцію з редактора розміток Studio. Існує додаткове узагальнення коду, яке можна зробити. Десь у майбутньому також з’явиться можливість додати оцінювання на основі спроб… але давайте розберемося поетапно.
Я не можу сказати достатньо про те, наскільки чудовими та корисними були всі люди в edX протягом цього процесу. Я прийшов із деякими знаннями Python і Javascript, а вийшов із набагато більшими навичками та розумінням того, що таке робити внесок у проект із відкритим кодом. Саріна Канелаке, Леслі Ґерхат, Пьотр Мітрос, Марк Садекі, Марко Моралес, Бен Паттерсон, Діана Хуанг, Марк Гобер та інші знайшли час у своїх напружених днях, щоб допомогти мені краще зрозуміти та відшліфувати свій код. Я не можу дочекатися, щоб побачити його використання в дикій природі.
Я ще не вважаю себе професійним програмістом, але завдяки цій роботі я наближаюся.
Колін Фредерікс є старшим керівником проекту в HarvardX. У решту вільного часу любить готувати, написання рольових ігорі дружити з усіма тваринами.
![]()