Вторая конференция "Свободное програмное обеспечение в высшей школе" (27-28 января 2007)

Эволюция систем проведения турниров по программированию

Виноградов Павел Анатольевич, Тарасов Владимир Георгиевич

Кафедра ПО Ижевского Государственного Технического Университета, Ижевск

В данном докладе дается краткий обзор развития систем проведения турниров по программированию. Описываются их основные возможности и перспективы развития. А также описывается интеграция систем в процесс обучения в ВУЗ'ах.

Разработка олимпиадных систем в России ведется с середины 90ых годов. И за это время можно выделить 4 основных этапа:

  1. Середина 90ых годов. Именно в это время встречаются первые упоминания о попытках разработки автоматических систем компиляции и проверки решений. Информация об этих системах практически не сохранилась и в основном существует в устной форме.
  2. Первые системы, пригодные для проведения турниров по программированию, появились в 1999-2000 годах. В основном они использовались внутри университетов для тренировок команд.
  3. Следующим этапом развития можно считать запуск систем проведения турниров по программированию через интернет. Так, в 2000 году был запущен проект Timus Online Judge (http://acm.timus.ru) Уральского Государственного Университета, в 2002 Saratov Online Contester (http://acm.sgu.ru), а в 2003 году стартовали Московские студенческие олимпиады по программированию (http://acm.msu.ru).
  4. В последние годы подобные системы рассматриваются не только как база для проведения олимпиад по программированию, но также как и база для проведения практических занятий и интеграции с системами дистанционного обучения.

В данный момент существует около 10ка различных систем, имеющих общий функциональный базис, но различающихся средствами реализации, форматами хранения и передачи данных, поддерживаемыми компиляторами и доступностью для свободного использования. Часть из них можно найти на http://sf.net/, но большинство из них давно заброшены и не развиваются. Системы, разработанные в университетах, обычно закрыты и недоступны для свободного использования. Исключение из них составляет проект Ejudge (http://www.ejudge.ru).

Проект Ejudge был разработан в МГУ им. Ломоносова и применяется на таких известных порталах как http://acm.msu.ru и http://www.snarknews.info/. И распространяется под лицензией GPL.

При этом, он как и большинство подобных систем предоставляет схожий базовый функционал, который включает:

  1. Web-интерфейс для участника и администратора турниров
  2. Хранилище для задач, тестов и решений участников
  3. Сервер компиляции и проверки решений
  4. Систему генерации результатов и статистики

Сейчас развитие систем продолжается, отчетливо видны 4 основных направления:

  1. Улучшение пользовательского интерфейса
  2. Повышение модульности
  3. Интеграция с обучающими системами
  4. Расширение аналитических возможностей систем

Особый интерес представляют два последние направления развития, т.к. они позволяют использовать системы не только для подготовки команд по программированию, но и для обучения в ВУЗе.

Программа конференции