- ведение справочника пользователей системы;
- ведение справочника задач олимпиады;
- ведение справочника языков программирования.
Для автоматической проверки решений данная информационная система должна поддерживать наиболее популярные языки программирования, используемые в олимпиадном программировании, например, такие как С, С++, Object Pascal (Delphi) и др. Для компиляции текста программ, написанных на перечисленных языках, можно воспользоваться следующими компиляторами: GCC (для языка программирования С), G++ (для языка С++) и DCC (для языка Object Pascal). Программы, написанные на других языках программирования, направляются на ручную проверку. Для этого необходимо, чтобы выбранный участником язык был включен в справочник языков программирования.
Модуль участника олимпиады должен выполнять следующие функции:
- выбор задач для выполнения;
- ввод решений задач;
- отправка решений на проверку;
- просмотр своих отправленных решений и сообщений компиляторов;
- просмотр личных результатов и статистики.
Модуль жюри олимпиады должен выполнять следующие функции:
- просмотр текста решений участников олимпиады;
- просмотр тестов и сообщений компиляторов;
- проверка / перепроверка заданий участников путем подтверждения, либо отклонения их решений;
- старт / стоп олимпиады (выполняется председателем жюри).
Модуль «Информационное табло» должен выполнять:
- вывод общей статистики выполнения задач и результатов олимпиады.
Варианты использования проектируемой системы приведены на рис. 3.
Представленная UML-диаграмма вариантов использования описывает функциональность информационной системы в целом, показывает, какие действия предоставляются каждому пользователю.
Проектирование базы данных информационной системы
Фундаментальной основой всех современных информационных систем является база данных. Все информационные системы так или иначе используют базы данных, так как предполагают использование большого количества данных, которые нужно хранить и обрабатывать.
Рис. 3. UML-диаграмма вариантов использования системы
Разрабатываемая информационная система не является исключением из данного правила.
Рис. 4. Логическая модель базы данных
В результате анализа предметной области были выделены следующие сущности и их атрибуты:
— пользователь (ФИО, логин, хэш пароля);
— роль (наименование);
— задачи (номер, краткое название, полная формулировка, максимальное количество баллов за успешное выполнение, максимальное количество штрафных баллов, максимальное количество попыток, тесты для автоматической проверки);
— задания участников (участник, задача, проверяющий, текст решения, номер попытки, количество баллов, сообщение);
— статус задачи (наименование);
— языки программирования (наименование).
Между выявленными сущностями были определены следующие связи (ER-модель):
— пользователь имеет роль;
— пользователь (участник) имеет задачи;
— пользователь (жюри) имеет задания участников;
— задание участника имеет статус задачи;
— задание участника имеет язык программирования;
— олимпиада имеет признак активности (определяется председателем жюри для объявления старта и завершения олимпиады).
В результате преобразования ER-модели в реляционную была разработана логическая модель базы данных проектируемой информационной системы, которая изображена на рис. 4.
Разработанная логическая модель представляет собой наиболее эффективную структуру данных для проектируемой информационной системы, обеспечивающую быстрый доступ к данным, исключение дублирования и целостность данных.
Рис. 5. Участник олимпиады - основное окно
Проектирование пользовательского интерфейса
Заключительным этапом проектирования информационной системы для проведения олимпиад по спортивному программированию является проектирование пользовательского интерфейса.
В данной информационной системе для модулей участника олимпиады и «Информационное табло» предлагается реализация в виде Web- приложения, так как они должны быть доступны большому числу пользователей.
На рис. 5 представлен пользовательский интерфейс модуля участника олимпиады, который разделен на две экранные области: «Задачи» и «Информация об участнике».
В области «Задачи» представлен перечень задач, входящих в состав текущей олимпиады. В данной области отображаются следующие сведения:
Рис. 6. Участник олимпиады - окна работы с заданием
— номер задачи;
— краткое название - краткое наименование задачи;
— количество баллов - текущее количество баллов за верное решение;
— штраф за попытку - текущее количество штрафных баллов за неверную попытку;
— доступно попыток - значение текущего доступного количества попыток для решения задачи;
— в работе - количество участников, которые выполняют данную задачу в настоящий момент;
— количество выполнений - количество успешных выполнений всеми участниками олимпиады.
Участник выбирает задачу, после чего последовательно открываются следующие модальные окна: окно подтверждения выбора задачи и предварительного просмотра задания, окно выбора языка программирования и ввода решения. Интерфейс указанных окон приведен на рис. 6.
Введенное участником олимпиады решение отправляется на проверку на сервер обработки решений по нажатии кнопки «Сдать». Каждое отправленное решение проходит автоматическую проверку на всех имеющихся тестах, введенных администратором системы. В случае неверного выполнения задания последнее отправленное на проверку решение может быть пересмотрено решением компетентного жюри.
В области «Информация об участнике» отражается количество выполненных участником задач, текущая сумма баллов и текущее занимаемое им место в олимпиаде. По нажатии на кнопку «Подробно» открывается окно статистики выполнения задач данным участником, в котором он может просматривать свои отправленные решения, а также сообщения компиляторов.
Для получения информации об общей статистике выполнения задач и результатах олимпиады служит дополнительное Web-приложение «Информационное табло», которое может быть выведено на интерактивную доску в аудиториях проведения олимпиады либо выставлено на общий сетевой ресурс, доступный всем пользователям системы.
Также для данной информационной системы необходимо реализовать еще два важных модуля: модуль администратора и модуль жюри. Данные модули не имеют специфических требований к интерфейсу и могут быть реализованы в виде Desktop или Web-приложений.
информационный олимпиада автоматизация интерфейс
Вывод
Представленная в данной статье информационная система отвечает всем необходимым требованиям для проведения олимпиад по спортивному программированию и обладает уникальным алгоритмом расчета баллов. Отличительная особенность данного алгоритма заключается в том, что начисленное количество баллов за успешное выполнение задач, а также количество штрафных баллов за их ошибочное выполнение непостоянно и динамически меняется в ходе проведения соревнования. Итоговый расчет баллов зависит от результатов выполнения задач всеми участниками олимпиады.
Спроектированная информационная система может быть рекомендована к использованию для проведения олимпиад по спортивному программированию на базе общеобразовательных школ, средних специальных и высших учебных заведений. Данная система позволяет получить дополнительный опыт и знания в сфере информационных технологий, имеет первостепенное значение при подготовке высококвалифицированных IT-специалистов и может быть использована для проверки знаний в области программирования не только школьников и студентов, но и профессиональных программистов.
Литература
1. «За время, которое обычный программист тратит на понимание задачи, спортивный ее уже решает». Как устроены международные олимпиады по информатике / / Индикатор. URL: https://indicator.ru/mathematics/ mezhdunarodnaya-olimpiada-po-informatike.htm (дата обращения: 20.01.2020).
2. Самощенко Ю.Ю. Исследование эффективности автоматизированной проверки решений при проведении олимпиад по программированию // Молодой ученый. 2016. № 11. С. 223--226.
3. Положение о проведении соревнований // Олимпиады по спортивному программированию. URL: https:// acmp.ru/asp/champ/index.asp?main=polog (дата обращения: 20.01.2020).
4. Беляев С.Н., Лалетин Н.В. Школа программиста (http://acmp.ru): образовательный интернет-ресурс олим- пиадного программирования для школьников // Вестник Адыгейского государственного университета. Сер. 3: Педагогика и психология. 2010. № 1. С. 130--135.
5. Timus Online Judge. URL: http://acm.timus.ru (дата обращения: 20.01.2020).
6. Кулябов Д.С., Королькова А.В. Введение в формальные методы описания бизнес-процессов : учеб. пособие. М. : РУДН, 2008. 173 с.
References
1. «Za vremya, kotoroe oby'chny'j programmist tratit na ponimanie zadachi, sportivny'j ee uzhe reshaet». Kak ustroeny' mezhdunarodny'e olimpiady' po informatike // Indikator. URL: https://indicator.ru/mathematics/mezhdunarodnaya- olimpiada-po-informatike.htm (data obrashheniya: 20.01.2020).
2. Samoshhenko Yu.Yu. Issledovanie e'ffektivnosti avtomatizirovannoj proverki reshenij pri provedenii olimpiad po programmirovaniyu // Molodoj ucheny'j. 2016. № 11. S. 223-226.
3. Polozhenie o provedenii sorevnovanij // Olimpiady' po sportivnomu programmirovaniyu. URL: https://acmp.ru/asp/ champ/index.asp?main=polog (data obrashheniya: 20.01.2020).
4. Belyaev S.N., Laletin N.V. Shkola programmista (http:// acmp.ru): obrazovatel'ny'j internet-resurs olimpiadnogo programmirovaniya dlya shkol'nikov // Vestnik Ady'gejskogo gosudarstvennogo universiteta. Ser. 3: Pedagogika i psixologiya. 2010. № 1. S. 130-135.
5. Timus Online Judge. URL: http://acm.timus.ru (data obrashheniya: 20.01.2020).
6. Kulyabov D.S., Korol'kova A.V. Vvedenie v formal'ny'e metody' opisaniya biznes-processov : ucheb. posobie. M. : RUDN, 2008. 173 s.