Вторая конференция "Свободное програмное обеспечение в высшей школе" (27-28 января 2007)
Эволюция систем проведения турниров по программированию
Виноградов Павел Анатольевич, Тарасов Владимир Георгиевич
Кафедра ПО Ижевского Государственного Технического Университета, Ижевск
В данном докладе дается краткий обзор развития систем
проведения турниров по программированию. Описываются их
основные возможности и перспективы развития. А также
описывается интеграция систем в процесс обучения в ВУЗ'ах.
Разработка олимпиадных систем в России ведется с середины
90ых годов. И за это время можно выделить 4 основных
этапа:
- Середина 90ых годов. Именно в это время встречаются
первые упоминания о попытках разработки автоматических
систем компиляции и проверки решений. Информация об этих
системах практически не сохранилась и в основном
существует в устной форме.
- Первые системы, пригодные для проведения турниров по
программированию, появились в 1999-2000 годах. В основном
они использовались внутри университетов для тренировок
команд.
- Следующим этапом развития можно считать запуск систем
проведения турниров по программированию через интернет.
Так, в 2000 году был запущен проект Timus Online Judge
(http://acm.timus.ru) Уральского Государственного
Университета, в 2002 Saratov Online Contester
(http://acm.sgu.ru), а в 2003 году стартовали Московские
студенческие олимпиады по программированию
(http://acm.msu.ru).
- В последние годы подобные системы рассматриваются не
только как база для проведения олимпиад по
программированию, но также как и база для проведения
практических занятий и интеграции с системами
дистанционного обучения.
В данный момент существует около 10ка различных систем,
имеющих общий функциональный базис, но различающихся
средствами реализации, форматами хранения и передачи
данных, поддерживаемыми компиляторами и доступностью для
свободного использования. Часть из них можно найти на
http://sf.net/,
но большинство из них давно заброшены и не
развиваются. Системы, разработанные в университетах,
обычно закрыты и недоступны для свободного использования.
Исключение из них составляет проект Ejudge
(http://www.ejudge.ru).
Проект Ejudge был разработан в МГУ им. Ломоносова и
применяется на таких известных порталах как
http://acm.msu.ru и
http://www.snarknews.info/. И
распространяется под лицензией GPL.
При этом, он как и большинство подобных систем
предоставляет схожий базовый функционал, который включает:
- Web-интерфейс для участника и администратора турниров
- Хранилище для задач, тестов и решений участников
- Сервер компиляции и проверки решений
- Систему генерации результатов и статистики
Сейчас развитие систем продолжается, отчетливо видны 4
основных направления:
- Улучшение пользовательского интерфейса
- Повышение модульности
- Интеграция с обучающими системами
- Расширение аналитических возможностей систем
Особый интерес представляют два последние направления
развития, т.к. они позволяют использовать системы не
только для подготовки команд по программированию, но и для
обучения в ВУЗе.
Программа конференции