АВТОМАТИЗОВАНА СИСТЕМА ПЕРЕВІРКИ ЗАВДАНЬ ДЛЯ НАВЧАЛЬНИХ КУРСІВ ІЗ ПРОГРАМУВАННЯ

Ключові слова: GitHub, Kotlin, Gradle, Maven артефакт, автоматизована перевірка, дистанційна освіта, репозиторій

Анотація

Метою статті є представлення результатів розробки та впровадження автоматизованої системи перевірки завдань, яка допоможе викладачу організувати якісний, об'єктивний та ефективний навчальний процес в умовах асинхронного дистанційного навчання, зумовленого спочатку пандемією COVID-19, а згодом повномасштабною війною. Ручна перевірка великої кількості програмних робіт створює значне навантаження на викладачів, призводить до затримок у наданні зворотного зв’язку та вносить елементи суб’єктивності в оцінювання. Розроблена система є компонентом ширшої освітньої платформи, в якій завдання для студентів вже генеруються індивідуально. Запропонована архітектура перевірки базується на інтеграції інструментів контролю версій та безперервної інтеграції. Процес роботи організовано наступним чином: студент виконує завдання у своєму репозиторії та створює Pull Request для злиття змін. Ця дія автоматично запускає процес перевірки (GitHub Action), який компілює код та передає його валідатору. Валідатор генерує великий набір тестових даних, виконує на них як код студента, так і еталонну реалізацію (описану формалізованими формулами), а потім порівнює результати. У разі розбіжностей система миттєво надає студенту звіт про помилку з конкретним набором даних, що її спричинив. Це дозволяє викладачу зосередитись не на рутинній перевірці коректності, а на аналізі якості коду, архітектури та наданні змістовних коментарів. Система реалізована мовою Kotlin, використовує систему збірки Gradle та поширюється у вигляді бібліотеки (Maven артефакту), що підключається студентами до своїх проєктів. Апробація проводилась у межах дисципліни «Основи програмування на Kotlin» за участю 23 студентів. Впровадження системи довело свою ефективність у заощадженні часу викладача, забезпеченні об'єктивного оцінювання та підвищенні мотивації студентів до експериментів та самостійного виправлення помилок завдяки миттєвому зворотному зв’язку. Подальший розвиток системи передбачає інтеграцію модулів для оцінки якості коду.

Посилання

1. Gambo I., Abegunde F. J., Gambo O. et al. GRAD-AI: An automated grading tool for code assessment and feedback in programming course. Educ Inf Technol 30, 9859–9899 (2025). https://doi.org/10.1007/s10639-024-13218-5 (дата звернення: 23.10.2025).
2. Maguire Ph., Maguire R., Kelly R. Using automatic machine assessment to teach computer programming, Computer Science Education, 2017, Vol. 27, Issue 3-4, P. 197–214, URL: https://doi.org/10.1080/08993408.2018.1435113 (дата звернення: 23.10.2025).
3. Cisneros-González, J., Gordo-Herrera, N., Barcia-Santos, I. and Sánchez-Soriano, J., 2025. JorGPT: Instructor-aided grading of programming assignments with large language models (LLMs). Future Internet, 17(6), p. 265. https://doi.org/10.3390/fi17060265 (дата звернення: 23.10.2025).
4. Дьячук Т.С. Автоматизована система генерації завдань в навчальних курсах з програмування / Т.С. Дьячук, В.І Шкрябець, А.В. Тіменко, Т.В. Голуб. Вчені записки Таврійського національного університету імені В.І. Вернадського. Серія: Технічні науки, Видавничий дім «Гельветика», Том 35 (74) № 2 2024. С. 85–90, https://doi.org/10.32782/2663-5941/2024.2/12 (дата звернення: 23.10.2025).
5. DiachT/KotlinLabsNUZP – Головний репозиторій з кодом. URL: https://github.com/DiachT/KotlinLabsNUZP (дата звернення: 23.10.2025).
6. Data Science in 5 Minutes: What is One Hot Encoding? URL: https://www.educative.io/blog/one-hot-encoding (дата звернення: 23.10.2025).
7. Pierre-Yves Saumont. The Joy of Kotlin: Manning Publications, 2019 – 480p.
8. IntelliJ IDEA. URL: https://www.jetbrains.com/idea (дата звернення: 23.10.2025).
Опубліковано
2025-12-30
Як цитувати
Дьячук, Т. С., Скрупський, С. Ю., & Голуб, Т. В. (2025). АВТОМАТИЗОВАНА СИСТЕМА ПЕРЕВІРКИ ЗАВДАНЬ ДЛЯ НАВЧАЛЬНИХ КУРСІВ ІЗ ПРОГРАМУВАННЯ. Системи та технології, 70(2), 219-225. https://doi.org/10.32782/2521-6643-2025-2-70.24
Розділ
КОМП’ЮТЕРНА ІНЖЕНЕРІЯ