Выбор и адаптация тестирующей системы для проверки олимпиадных задач по программированию для ХТИ — филиала СФУ
Авторы: Ленцов Н. О., Кокова В. И.
Источник: Ленцов, Н. О., Кокова, В. И. Выбор и адаптация тестирующей системы для проверки олимпиадных задач по программированию для ХТИ — филиала СФУ [Электронный ресурс] : Электронный научный журнал «Дневник науки». – 2019. – Режим доступа: https://dnevniknauki.ru/images/publications/2019/5/technics/Lentsov_Kokova.pdf. – Загл. с экрана.
Аннотация
Проведен анализ и выбор тестирующей системы для проверки заданий с последующей адаптацией под олимпиадные задачи по программированию. Для каждой из четырех проанализированных систем определены сильные и слабые стороны их использования. Выбранная система ACM Server полностью адаптирована и готова к дальнейшему использованию в ХТИ — филиале СФУ.
Ключевые слова
тестирующая система, программирование, ACM ICPC, контекст, спортивное программирование, адаптация, информационные технологии, олимпиада
Введение
В настоящее время интерес к информационным технологиям постоянно возрастает и они во многом вытесняют ручной труд человека и обработку большого количества информации.
Большинство крупных IT-компаний заинтересовано в поиске новых решений для обыденных задач ЭВМ, поэтому они проводят олимпиады для поиска талантливых людей, увлеченных программированием и связанными с ним областями науки. Крупнейшими такими олимпиадами являются Google Code Jam, Яндекс. алгоритм и ACM ICPC. Последнее соревнование является самым крупнейшим по охвату стран и людей, и ежегодно организуется при поддержке фирм Microsoft и IBM [2]. Данные соревнования часто называются соревнованиями по спортивному программированию. Спортивное программирование — увлекательные интеллектуальные соревнования, где участникам предлагается с помощью компьютера решить одну или несколько алгоритмических задач за ограниченное время [1].
Общее о спортивном программировании
В спортивном программировании существует несколько дисциплин, но классической является стандарт ACM ICPC — формат командного соревнования. Команде из трех человек предоставляется один компьютер и комплект задач, которые она должна решить за 5 часов. Команда заранее не знает набор тестов, по которым будет проводиться тестирование созданной им программы.
Побеждает команда, которая решит как можно больше задач за минимальное время, потратив при этом наименьшее количество оперативной памяти компьютера. Чтобы участвовать в этих соревнованиях необходимо пройти несколько отборочных этапов, и первым из них является внутривузовский.
Спортивное программирование среди студентов ХТИ
Ежегодно на кафедре прикладной информатики, математики и естественнонаучных дисциплин проходит личное первенство по программированию среди студентов ХТИ — филиала СФУ. Данные соревнования можно считать отборочным этапом и помощью преподавателю выявлять студентов, умеющих находить решения для олимпиадных задач, которые отсутствуют в стандартах обучения программированию. Отличное знание языка программирования не всегда является гарантом успеха на данных соревнованиях.
В связи с возрастающим интересом к спортивному программированию в ХТИ — филиале СФУ возникает потребность автоматизировать систему проверки заданий и исключить человеческий фактор при определении самого эффективного решения. Для этого можно использовать тестирующие системы, доступные по системе Freesoftware. При поиске доступных систем для тестирования олимпиадных задач были отобраны самые распространенные, а именно: Ejudge, PCMS2, ACM Server, TSystem.
Ejudge — это система для проведения различных мероприятий, в которых необходима автоматическая проверка решений [3]. Является очень мощной системой, с большим количеством настроек для проведения олимпиад по программированию. Система имеет возможность проверки по стандартам ACM ICPC. Самым главным минусом для ее использования во внутривузовской олимпиаде является то, что она может использоваться только на OC Linux.
PCMS2 — разработка фирмы из Санкт-Петербурга, которая на данный момент не обновляется и не поддерживается, имеется достаточное количество проблем с сервером при большой нагрузке на него. Документация в свободном доступе отсутствует, что является ее главным минусом, так как настройка полностью ложится на плечи администратора и является довольно затруднительной.
ACM Server — самая простая в работе и настройке со стороны администратора программа, единственным минусом данной системы является то, что администратору приходится писать отдельный плагин для каждого контекста и заново закачивать задачи и тесты к ним.
TSystem — система, одна из старейших в этой области. Первоначальные исходники были написаны еще под систему DOS. Из-за этого система имеет слабую защиту и каждое задание приходится создавать в формате html страниц, что довольно затруднительно. Ну и главный минус данной системы — это отсутствие поддержки современных компиляторов для языков программирования.
Проанализировав самые распространенные бесплатные тестирующие системы, было обнаружено, что почти все системы на данный момент не обновляются и используются с версиями примерно от 2014–2015 годов, поэтому настройка таких систем ведется индивидуально под каждый ВУЗ.
Для проверки олимпиадных задач ХТИ — филиала СФУ было решено использовать систему ACM Server, как наиболее стабильную и простую в настройке.
Для использования системы ACM Server необходимо разработать и внедрить в данную систему компиляторы для языков программирования, которые допускаются на данной олимпиаде и настроить корректную работу по проверке заданий на выбранных языках программирования. При изучении данного вопроса было обнаружено, что в нем отсутствует поддержка компилятора для языка программирования Python, который был успешно внедрен для проверки решений олимпиадных задач от участников, применивших данный язык.
Данная система показала свою стабильность и многопоточность при проверке заданий олимпиад, проводимых в ХТИ — филиале СФУ.
Выводы
Таким образом, адаптированная система ACM Server упростила работу преподавателей ХТИ — филиала СФУ в части проверки олимпиадных задач. ACM Server может применяться для автоматической проверки олимпиадных заданий и по другим предметам, в которых можно дать ответ в строгой форме, который может проверить компьютер.
Литература
- 1. Информационные технологии в финансовой индустрии, раздел ЧОУ ДПО «Клуб программистов» [Электронный ресурс]. — Режим доступа – URL: https://itfi-school.com/programms/competitive-programming.html (Дата обращения 22.03.2019).
- 2. Фролов Д.А., Балашов А.Д. Проектирование автоматизированной системы проверки олимпиадных заданий по программированию / Д.А. Фролов, А.Д. Балашов // Естественные и математические науки в современном мире: сб. ст. по матер. XXXI междунар. науч. - практ. конф. – Новосибирск: СибАК. – 2015. – № 6 – С.50-59.
- 3. Челышкова М.Б. Теория и практика конструирования online тестов / М.Б. Челышкова. – М.: Информационно-издательский дом «Филинъ», 2014. – 204 с.