Научная статья на тему 'Система проведения соревнований и проверки решений задач по программированию'

Система проведения соревнований и проверки решений задач по программированию Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
704
58
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТЕСТИРУЮЩАЯ СИСТЕМА / TESTING SYSTEM / ASSOCIATION FOR COMPUTING MACHINERY/INTERNATIONAL COLLEGIATE PROGRAMMING CONTEST / СПОРТИВНОЕ ПРОГРАММИРОВАНИЕ / SPORTS PROGRAMMING / TOPCODER / СИСТЕМА ПРОВЕДЕНИЯ СОРЕВНОВАНИЙ / SYSTEM OF HOLDING TOURNAMENTS / ACM ICPC

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ведерникова Татьяна Ивановна, Чепченко Константин Борисович

Статья посвящена описанию тестирующей системы «Contest Manager», обеспечивающей удобство и легкость организации турниров по программированию, а также развертывания системы независимо от аппаратных и программных средств (операционной системы, мощности компьютера и т. д.). Программа предназначена для организации соревнований различного уровня, имеет интуитивно понятный интерфейс, позволяет быстро настроить сервер системы, поддерживает разные форматы соревнований и популярные языки программирования, дает возможность экспортировать результаты соревнований в популярные программные средства. Система имеет сервис-ориентированную архитектуру, использует объектно-ориентированную базу данных «MongoDB». Для реализации клиента использована концепция Rich Internet Applicaition и платформа Silverlight. Тестирующая система успешно прошла апробацию при проведении молодежного компьютерного фестиваля по Иркутской области «Компьютерная галактика 2013» и традиционного конкурса для школьников г. Иркутска «Иркутская компьютериада» в 2014 и 2015 г. Программа «Contest Manager» может использоваться учебными учреждениями, занимающимися подготовкой специалистов в области информационных технологий, для проверки лабораторных работ по программированию.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ведерникова Татьяна Ивановна, Чепченко Константин Борисович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

System of holding tournaments and checking solutions of problems in programming

The article is devoted to description of the testing system «Contest Manager» which provides convenience and ease in holding tournaments in programming, as well as deployment of the system regardless of hardware and software (operating systems, computer power, etc.). The program is designed to organize tournaments of various levels, has an intuitively understandable interface, allows to quickly set the server of the system, supports various formats of tournaments and popular programming languages, gives an opportunity of exporting the tournament results and popular programming tools. The system has a server-oriented architecture, uses an object-oriented database «MongoDB». To realize the client, the system uses the Rich Internet Application concept and the Silverlight platform. The testing system successfully passed approbation while holding the youths computer festival «Computer galaxy 2013» in Irkutsk Oblast and the traditional contest «Irkutsk Olympiad» for Irkutsk school students in 2014 and 2015. The program «Contest Manager» can be used by educational institutions that train specialists in the field of information technologies, to check laboratory works in programming.

Текст научной работы на тему «Система проведения соревнований и проверки решений задач по программированию»

УДК 004.4

Т. И. Ведерникова

Байкальский государственный университет экономики и права,

г. Иркутск, Российская Федерация К. Б. Чепченко

Байкальский государственный университет экономики и права,

г. Иркутск, Российская Федерация

СИСТЕМА ПРОВЕДЕНИЯ СОРЕВНОВАНИЙ И ПРОВЕРКИ РЕШЕНИЙ ЗАДАЧ ПО ПРОГРАММИРОВАНИЮ

АННОТАЦИЯ. Статья посвящена описанию тестирующей системы «Contest Manager», обеспечивающей удобство и легкость организации турниров по программированию, а также развертывания системы независимо от аппаратных и программных средств (операционной системы, мощности компьютера и т. д.). Программа предназначена для организации соревнований различного уровня, имеет интуитивно понятный интерфейс, позволяет быстро настроить сервер системы, поддерживает разные форматы соревнований и популярные языки программирования, дает возможность экспортировать результаты соревнований в популярные программные средства. Система имеет сервис-ориентированную архитектуру, использует объектно-ориентированную базу данных «MongoDB». Для реализации клиента использована концепция Rich Internet Applicaition и платформа Silverlight. Тестирующая система успешно прошла апробацию при проведении молодежного компьютерного фестиваля по Иркутской области «Компьютерная галактика — 2013» и традиционного конкурса для школьников г. Иркутска «Иркутская компьютериада» в 2014 и 2015 г. Программа «Contest Manager» может использоваться учебными учреждениями, занимающимися подготовкой специалистов в области информационных технологий, для проверки лабораторных работ по программированию.

КЛЮЧЕВЫЕ СЛОВА. Тестирующая система; Association for Computing Machinery/International Collegiate Programming Contest; спортивное программирование; TopCoder; система проведения соревнований.

ИНФОРМАЦИЯ О СТАТЬЕ. Дата поступления 21 августа 2015 г.; дата принятия к печати 7 сентября 2015 г.; дата онлайн-размещения 30 сентября 2015 г.

T. I. Vedernikova

Baikal State University of Economics and Law, Irkutsk, Russian Federation K. B. Chepchenko

Baikal State University of Economics and Law, Irkutsk, Russian Federation

SYSTEM OF HOLDING TOURNAMENTS AND CHECKING SOLUTIONS OF PROBLEMS IN PROGRAMMING

ABSTRACT. The article is devoted to description of the testing system «Contest Manager» which provides convenience and ease in holding tournaments in programming, as well as deployment of the system regardless of hardware and software (operating systems, computer power, etc.). The program is designed to organize tournaments of various levels, has an intuitively understandable interface, allows to quickly set the server of the system, supports various formats of tournaments and popular programming languages, gives an opportunity of exporting the tournament results and popular programming tools. The system has a server-oriented architecture, uses an object-oriented database «MongoDB». To realize the client, the system uses the Rich Internet Application concept and the Sil-verlight platform. The testing system successfully passed approbation while holding the youth's computer festival «Computer galaxy — 2013» in Irkutsk Oblast and the traditional contest «Irkutsk Olympiad» for Irkutsk school students in 2014 and 2015. The program «Contest Manager» can be used by educational institutions that train specialists in the field of information technologies, to check laboratory works in programming.

© Т. И. Ведерникова, К. Б. Чепченко

Baikal Research Journal

электронный научный журнал Байкальского государственного университета экономики и права

KEYWORDS. Testing system; ACM ICPC; sports programming; TopCoder; system of holding tournaments.

ARTICLE INFO. Received August 21, 2015; accepted September 7, 2015; available online September 30, 2015.

Интеллектуальные соревнования по решению различных задач на ЭВМ, для решения которых необходимо придумать и применить какой-либо алгоритм и/или программу на одном из языков программирования, имеют большую популярность. Министерством образования и науки РФ ежегодно проводятся олимпиады для школьников1. Студенты и школьники России участвуют в различных международных турнирах: международная олимпиада школьников (International Olympiad in Informatics — IOI)2, командный чемпионат мира по программированию среди студентов (Association for Computing Machinery/International Collegiate Programming Contest — ACM/ICPC) [1], TopCoder Algorithm Competition3, Google Code Jam4 и др.

Для проведения соревнований по программированию используются специальные тестирующие системы. В настоящее время существует большое количество тестирующих систем, наиболее популярными из них являются: «eJudge»5, «Contester»6, «DOMJudge», «Executor», «PC2»7. Они отличаются разнообразием используемых технологий, интерфейсами, типами поддерживаемых задач и правилами проведения соревнований. Многие из тестирующих систем бесплатные, а некоторые из них еще с открытым исходным кодом. Большинство этих систем могут использоваться только при проведении соревнований по правилам ACM/ICPC. Однако в мире спортивного программирования существуют и другие форматы (правила) проведения соревнований8.

Основное назначение системы тестирования — проверка и оценивание работ (решений) участников. Помимо соревновательной части, большинство современных тестирующих систем обладают еще одним назначением: самосовершенствование программистов, т. е. проверка исходного кода не в рамках соревнований.

Принцип работы всех тестирующих систем во многом одинаков. Процесс проверки и оценивания можно разделить на следующие этапы:

1. Регистрация участника соревнований.

2. Отсылка решения участника на сервер тестирующей системы.

3. Проверка присланного решения.

4. Уведомление участника о результате проверки.

5. Завершение соревнований, блокировка возможности отправления решений.

6. Составление рейтинга участников (таблицы результатов).

В рамках одного соревнования п. 3 и 4 обычно повторяются неоднократно. В некоторых типах соревнований п. 4 отсутствует или идет после п. 5 (завершение соревнований). Недостатком существующих программ является сложная и длительная настройка системы проведения соревнований, что требует от организаторов больших временных затрат и приводит к возникновению непредвиденных ситуаций.

Новая тестирующая программа «Contest Manager» обеспечивает удобство и легкость организации турниров по программированию, быстро устанавливается независимо от аппаратных и программных средств (операционной системы, мощности компьютера и т. д.), что позволяет преподавателям, учителям и другим лицам, заинтересованным в развитии навыков программирования, проводить соревнования на локальном уровне (вуз, школа и т. д.) и тем самым развивать спортивное программирование в стране.

1 URL : http://sisobraz.shko.la/imc/talantlivaa-molodez/vserossijskaa-olimpiada-skolnikov.

2 URL : http://www.ioinformatics.org.

3 URL : http://community.topcoder.com/tc.

4 URL : http://code.google.com/codejam.

5 URL : http://eJudge.ru.

6 URL : http://www.contester.ru.

7 URL : http://www.ecs.csus.edu/pc2.

8 URL : http://ru.wikipedia.org/wiki/Олимпиады_по_программированию.

Baikal Research Journal

электронный научный журнал Байкальского государственного университета экономики и права

Тестирующая системы «Contest Manager» реализована с использованием следующих инструментов и технологий: Microsoft® Visual Studio 2012, Database .NET 8.3, MongoDB — Object Database (расширение MS Visual Studio 2012), Notepad++, Windows Communication Foundation (WCF) и Windows Presentation Foundation (WPF) [1-12].

Назначение и архитектура системы «Contest Manager». Тестирующая система «Contest Manager» предназначена для организации соревнований как локального уровня, так и соревнований форматов «TopCoder Algorithm Competition» и «Google Code Jam».

«Contest Manager» имеет интуитивно понятный интерфейс и позволяет быстро настроить сервер тестирующей системы, поддерживает разные форматы соревнований и популярные языки программирования, дает возможность экспортировать результаты соревнования в популярные форматы (Microsoft Excel, HTML и т. д.), содержит удобные средства написания «чекеров».

Система имеет сервис-ориентированную архитектуру (рис. 1), что определялось несколькими факторами:

- необходимостью наличия сервера и «тонкого» клиента;

- возможностью дальнейшего расширения функционала системы;

- максимально возможного отделения пользовательского интерфейса системы от бизнес-логики приложения, для повышения отказоустойчивости системы.

Рис. 1. Архитектура «Contest Manager»

Несмотря на широкую распространенность реляционных баз данных (БД), при разработке системы выбор был сделан в пользу объектно-ориентированной БД (в частности, MongoDB), что обусловлено следующими причинами:

- данные сильно документо-ориентированы и больше подходят для модели «ключ — значение», чем для реляционной модели;

- доменная модель сильно объектно-ориентирована, поэтому использование объектно-ориентированной БД (ООБД) уменьшит объем кода для преобразования данных;

- ООБД легко интегрируется с веб-сервисами;

- необходимость высокой масштабируемости по запросу [7].

Клиент «Contest Manager». Выбранная архитектура определила следующие свойства клиента «Contest Manager»:

- минималистичность и понятность интерфейса;

- небольшие требования к производительности рабочих станций;

- поддержка нескольких операционных систем.

Первое свойство зависит не от средств реализации, а от дизайна интерфейса, следовательно, никак не влияет на выбор технологии реализации клиентской части «Contest Manager». Второе и третье свойства полностью удовлетворяются использованием концепции Rich Internet Application (RIA) [5]. Как правило, приложение RIA: передает веб-клиенту необходимую часть пользовательского интерфейса, оставляя большую часть данных (ресурсы программы, данные и т. д.) на сервере; запускается в браузере и не требует дополнительной установки программного обеспечения; выполняется локально в среде безопасности, называемой «песочница» (виртуальная машина).

В настоящее время наиболее распространенными платформами для создания RIA являются Adobe Flash/Flex, JavaFX и Microsoft Silverlight1. Проведенный сравнительный анализ (табл.) показал, что наиболее приемлемой является Silverlight.

Сравнение платформ для создания приложений RIA

Возможности Silvelight Adobe Flash JavaFX

Многопоточность + - +

Трехмерная графика + + +

Поддержка сокетов + + +

Асинхронные HTTP запросы + + +

Синхронные HTTP запросы + - +

Модификация HTTP заголовков запроса + Частично +

Анализ HTTP заголовков ответа + Частично +

Поддержка cookie + + +

Таблицы стилей + + +

Поддержка доступа к DOM браузера + + -

Доступ к файловой системе + Частично +

Для входа в систему тестирования необходимо ввести свой логин и пароль, а также выбрать турнир (контест), в котором участвует пользователь. Для этого используется простая форма входа (рис. 2).

Рис. 2. Форма входа в «Contest Manager»

После успешного входа в систему участник попадает на страницу отправки решений — самое частое действие, которое совершает пользователь, там же имеются вкладки «История» и «Таблица результатов» (рис. 3). На вкладке «История» пользователь может увидеть все свои попытки решений, в том числе время, когда решения были отправлены на проверку, и результат проверки присланного решения.

Для отправки решения на проверку участнику нужно выбрать задачу и компилятор из выпадающих списков «Задача» и «Компилятор», соответственно. Затем нужно вставить исходный код решения в поле «Текст решения» и нажать кнопку «Отправить». Далее, если турнир проводится по правилам ACM/ICPC, участник получит уведомление с результатом проверки его решения. Если турнир проводится по правилам TopCoder, то пользователь получит уведомление о том, что его решение принято.

1 URL : https://ru.wikipedia.org/wiki/Rich_Internet_Application.

Baikal Research Journal

электронный научный журнал Байкальского государственного университета экономики и права

Рис. 3. Форма отправки решений

Апробация системы. Тестирующая система «ContestManager» успешно прошла апробацию при проведении молодежного компьютерного фестиваля «Компьютерная галактика — 2013» Иркутской области (номинация «Программист») и традиционного конкурса для школьников г. Иркутска «Иркутская компьютериада» в 2014 и 2015 г. (номинация «Программист-профи»).

Программа «Contest Manager» может использоваться не только для тестирования задач при проведении соревнований по спортивному программированию, но и может быть применима для проверки лабораторных работ по программированию — необходимо добавить методы оценки лабораторных работ и возможность проверки нескольких вариантов задания. Из системы «Contest Manager» можно получить систему проведения тестов (eTest, INDIGO, ИнфоТест, Opentest.ru и т. д.) или тестирующе-об-учающую систему (например, moodle) или систему дистанционного обучения. Для этого требуется заменить методы веб-службы «ContestManager», которые отвечают за проверку исходного кода.

Список использованной литературы

1. Гагарина Л. Г. Технология разработки программного обеспечения. / Л. Г. Гагарина, Е. В. Кокорева, Б. Д. Виснадул. — М. : Форум : Инфра-М, 2009. — 400 с.

2. Иванова Г. С. Технология программирования / Г. С. Иванова. — М. : Изд-во МГТУ им. Н. Э. Баумана, 2014. — 450 с.

3. Командный чемпионат мира по программированию ACM 2013/2014. Северо-Восточный Европейский регион / под ред. В. Н. Васильева, В. Г. Парфенова. — СПб. : С.-Петерб. гос. ун-т информ. технологий, механики и оптики, 2013. — 56 с.

4. Леве Дж. Programming WCF Services / Дж. Леве. — СПб. : Питер, 2008. — 592 с.

5. Соммервил И. Инженерия программного обеспечения / И. Соммервил. — 6-е изд. — М. : Вильямс, 2002. — 624 c.

6. Bank R. Visual Studio 2012 Cookbook / R. Bank. — Packt, 2012. — 272 р.

7. Harrington J. L. Object-oriented Database Design Clearly Explained / Jan L. Harrington. — Morgan Kaufmann, 2000. — 312 p.

8. Jones A. WPF Recipes in C# 2008: A Problem-Solution Approach (Recipes: A Problem-solution Approach) / A. Jones, S. Bourton, S. Noble. — Apress, 2008. — 764 р.

9. MacDonald M. Pro WPF 4.5 in C# 5.0: Windows Presentation Foundation in .NET 4.5 / M. MacDonald. — 4th ed. — APRESS, 2013. — 1112 р.

10. Professional WCF 4: Windows Communication Foundation with .NET 4 / P. Cibraro, K. Claeys, F. Cozzolino, J. Grabne. — Wrox, 2010. — 464 р.

11. Professional WPF Programming / C. Andrade, M. Meyers, C. Andrade, Sh. Livermore, S.Van Vliet. — Wrox Press, Inc, 2007. — 480 р.

12. Sur A. Visual Studio 2012 and .Net 4.5 Expert Development Cookbook / Abhishek Sur. — Packt, 2013. — 380 р.

References

1. Gagarina L. G., Kokoreva E. V., Visnadul B. D. Tekhnologiya razrabotkiprogrammnogo obe-specheniya [Technology of developing programming support]. Moscow, Forum Publ., Infra-M Publ., 2009. 400 p.

2. Ivanova G. S. Tekhnologiyaprogrammirovaniya [Technology of programming]. Bauman Moscow State echnical University Publ., 2014. 450 p.

3. Vasil'ev V. N., Parfenov V. G. (eds). Komandnyi chempionat mira po programmirovaniyu ACM 2013/2014. Severo-Vostochnyi Evropeiskii region [Team world championship in programming ACM 2013/2014. North Eastern European Region]. Saint Petersburg State University of Information Technologies, Mechanics and Optics Publ., 2013. 56 p.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Leve Dzh. Programming WCF Services. Saint Petersburg, Piter Publ., 2008. 592 p.

5. Sommerville Ian. Software Engineering. 6th ed. Addison-Wesley, 2000. (Russ. ed.: Sommer-ville I. Inzheneriyaprogrammnogo obespecheniya. 6th ed. Moscow, Vil'yams Publ., 2002. 624 p.).

6. Bank R. Visual Studio 2012 Cookbook. Packt, 2012. 272 р.

7. Harrington Jan L. Object-oriented Database Design Clearly Explained. Morgan Kaufmann Publ., 2000. 312 p.

8. Jones A., Bourton S., Noble S. WPF Recipes in C# 2008: A Problem-Solution Approach (Recipes: A Problem-solution Approach). Apress, 2008. 764 р.

9. MacDonald M. Pro WPF 4.5 in C# 5.0: Windows Presentation Foundation in .NET 4.5. 4th ed. Apress, 2013. 1112 р.

10. Cibraro P., Claeys K., Cozzolino F., Grabne J. Professional WCF 4: Windows Communication Foundation with .NET 4. Wrox Press, Inc., 2010. 464 р.

11. Andrade C., Meyers M., Andrade C., Livermore Sh., Van Vliet S. Professional WPF Programming. Wrox Press, Inc., 2007. 480 р.

12. Sur Abhishek. Visual Studio 2012 and .Net 4.5 Expert Development Cookbook. Packt, 2013. 380 р.

Информация об авторах

Ведерникова Татьяна Ивановна — кандидат технических наук, доцент, кафедра информатики и кибернетики, Байкальский государственный университет экономики и права, 664003, г. Иркутск, ул. Ленина, 11, e-mail: [email protected].

Чепченко Константин Борисович — аспирант, кафедра информатики и кибернетики, Байкальский государственный университет экономики и права, 664003, г. Иркутск, ул. Ленина, 11, e-mail: [email protected].

Authors

Tatyaha. I. Vedernikova — PhD in Engineering, Assistant Professor, Chair of Computer Science and Cybernetics, Baikal State University of Economics and Law, 11 Lenin St., 664003, Irkutsk, Russian Federation; e-mail: [email protected].

Constantin B. Chepchenko — PhD Student, Chair of Computer Science and Cybernetics, Baikal State University of Economics and Law, 11 Lenin St., 664003, Irkutsk, Russian Federation; e-mail: [email protected].

Библиографическое описание статьи

Ведерникова Т. И. Система проведения соревнований и проверки решений задач по программированию / Т. И. Ведерникова, К. Б. Чепченко // Baikal Research Journal. — 2015. — Т. 6, № 5. — DOI : 10.17150/2411-6262.2015.6(5).8.

Reference to article

Vedernikova T. I., Chepchenko C. B. System of holding tournaments and checking solutions of problems in programming. Baikal Research Journal, 2015, vol. 6, no. 5. DOI: 10.17150/2411-6262.20.6(5).8. (In Russian).

i Надоели баннеры? Вы всегда можете отключить рекламу.