В данном исследовании акцентируется внимание на необходимости получения студентами IT-направлений подготовки опыта решения практических задач. Активное участие студентов в спортивном программировании вне зависимости от начальных навыков способствует получению такого опыта. Представлен подход к созданию состязаний с использованием библиотеки extit{testlib} на бесплатной российской платформе Яндекс.Контест. Программные модули платформы обеспечивают основные этапы жизненного цикла соревнования от генерации тестов к задачам до подведения итогов. Предоставлена возможность реализовать логику работы своей системы оценивания, учитывая набранные студентами баллы и штрафы. Используя настройки заданий можно ограничивать ресурсы памяти и время выполнения программного кода участников. Специальный модуль также формирует отдельный набор требований к способу решения задач, что является важным условием для проведения соревнований в рамках учебного процесса. Создавая банк заданий для соревнования с учётом пройденного материала и изучаемых курсов, можно «вшить» проведение соревнований в учебный процесс, чередуя индивидуальные и командные этапы. Предлагаемый подход апробирован на практике: два раза в семестр студенты младших курсов одного из институтов Алтайского госуниверситета участвуют в состязаниях, тренируя свои навыки быстрого и безошибочного написания программного кода. Опыт проведения подобных турниров показал готовность студентов и преподавателей осваивать новые формы учебных занятий. С. 82-95.
This study emphasizes the need for the IT students to gain experience in solving practical problems. Active participation in competitive programming, regardless of initial skills, helps students gain such experience. The article presents an approach to creating contests using Testlib library on the free domestic platform Yandex.Contest. The software modules cover the main stages of the competition life cycle, from generating tests for tasks to summarizing results. The use of a checker and postprocessor allows the implementation of the evaluation system logic, taking into account the points and penalties scored by the participants. The task configuration settings allow organizers to impose limits on memory usage and code execution time. The interactor program forms a separate set of requirements for the method of solving tasks, which is an important condition for holding competitions within the educational process. By creating a bank of tasks for competitions, taking into account the material covered and curriculum, it is possible to «integrate» competitions into the educational process, alternating between individual and team stages. The proposed approach has been tested in practice: twice a semester junior students from one of the institutes of Altai State University participate in a competition, honing their skills in writing program code quickly and accurately. Experience with such competitions has shown that students and teachers are willing to embrace new forms of learning.
Ключевые слова: соревнование по программированию, автоматизированная проверка кода, чекер, интерактор, постпроцессор, генерация тестов, штрафные очки, баллы за решение, монитор участников, банк заданий, тесты, программный код.
Keywords: programming competition, automated code review, checker, interactor, postprocessor, test generation, penalty points, solution points, participant monitor, task bank, tests, program code.