Научная статья на тему 'Проектирование автоматизированной системы проверки олимпиадных заданий по программированию'

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

CC BY
169
79
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММИРОВАНИЕ / ЗАДАЧИ / ОЛИМПИАДА / PROGRAMMING / TASKS / OLYMPIAD

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фролов Дмитрий Александрович, Балашов Андрей Дмитриевич

Целью данной работы является проектирование автоматизированной системы проверки олимпиадных заданий по программированию. В ходе проектирования также был проведен краткий обзор существующих автоматизированных систем.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Фролов Дмитрий Александрович, Балашов Андрей Дмитриевич

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

DEVELOPMENT OF AUTOMATED VERIFICATION SYSTEM FOR PROGRAMMING OLYMPIAD TASKS

The aim of this work is to design an automated verification system for programming Olympiad tasks. During the designing was performed an overview of the existing automated systems.

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

ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ПРОВЕРКИ ОЛИМПИАДНЫХ ЗАДАНИЙ ПО ПРОГРАММИРОВАНИЮ

Фролов Дмитрий Александрович

ассистент кафедры «Информационные системы и технологии» БИТТиУ (филиал) СГТУ имени Гагарина Ю.А., РФ, г. Балаково

Email: kafist@bittu. org. ru Балашов Андрей Дмитриевич студент кафедры «Информационные системы и технологии» БИТТиУ (филиал) СГТУ имени Гагарина Ю.А., РФ, г. Балаково

Email: bal64rus@gmail.com

DEVELOPMENT OF AUTOMATED VERIFICATION SYSTEM FOR PROGRAMMING OLYMPIAD TASKS

Dmitry Frolov

assistant of the department "Information Systems and Technology" BITTiU (branch) Yuri Gagarin State Technical University of Saratov, Russia, Balakovo

Andrey Balashov

student of the department "Information Systems and Technology" BITTiU (branch) Yuri Gagarin State Technical University of Saratov, Russia, Balakovo

АННОТАЦИЯ

Целью данной работы является проектирование автоматизированной системы проверки олимпиадных заданий по программированию. В ходе проектирования также был проведен краткий обзор существующих автоматизированных систем.

ABSTARCT

The aim of this work is to design an automated verification system for programming Olympiad tasks. During the designing was performed an overview of the existing automated systems.

Ключевые слова: программирование; задачи; олимпиада.

Keywords: programming; tasks; Olympiad.

В последнее время появился такой термин, как «спортивное программирование». Спортивное программирование необязательно связано с образовательной и научной работой студентов напрямую, в нем могут принимать участие и профессиональные программисты [1]. Крупные IT-

компании регулярно проводят свои личные соревнования по программированию:

• Google — Google Code Jam;

• Yandex — Yandex. Алгоритм;

• 1С — открытая студенческая олимпиада.

Участникам предлагается придумать и реализовать алгоритм на одном из заданных языков программирования. Как правило, выдается комплект из нескольких задач. Успешная попытка засчитывается, когда составленный алгоритм правильно работает на заранее подготовленных, неизвестных участникам тестах. Характерной особенностью олимпиадных задач является оригинальность их условий. В условиях редко прямо говорится о структурах данных и алгоритмах решения. Чаще условие задачи представляет собой некий рассказ со своими сюжетами и героями. Тогда, чтобы решить олимпиадную задачу, нужно предварительно составить математическую модель событий и уже потом построить по ней искомый алгоритм. Алгоритм может оказаться как одним из уже известных в мире, так и оригинальным и непохожим на другие. В любом случае, он должен корректно считывать исходные данные указанного в условии формата из определенного входного потока, обрабатывать их и выводить в определенный выходной поток в указанном виде.

Решение любой задачи в такой ситуации представляет собой прохождение следующих этапов:

• начальная формализация задачи;

• построение алгоритма решения задачи;

• воплощение алгоритма на языке программирования;

• отладка и тестирование работы алгоритма на ЭВМ.

Эти этапы приходится рассматривать совместно, так как выбор языка предопределяет способ представления данных и методов и влияет на выбор будущего алгоритма.

Крупнейшей международной турнирной системой по программированию является ACM International Collegiate Programming Contest. Генеральными

спонсорами организации выступают гиганты IT-мира — Microsoft и IBM. Команды из России неоднократно становились победителями этого престижного соревнования и по итогам удостаивались встречи с Президентом РФ. Так, последние три года победителями становились команды Санкт-Петербургских высших учебных заведений.

В отборочных этапах соревнований по спортивному программированию могут принимать участие тысячи претендентов, из которых необходимо отобрать лучших для перехода на следующую стадию соревнования. Для автоматизации процесса проверки решений участников необходима информационная система. Проектируемая автоматизированная система предназначена для быстрой и надежной обработки поступающей информации, чтобы персонал не тратил время и избегал свойственных для ручной проверки задач ошибок. Поступающая информация включает в себя регистрацию участников с внесением сведений о них, создание и администрирование турниров, внесение условий заданий с контрольными данными. Таким образом, автоматизированная система будет работать не с одним однородным файлом данных. Разумным требованием к системе является возможность ее дальнейшего модульного расширения.

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

Основными компонентами, участвующими в проведении соревнований по информатике и программированию, являются задачи, метод тестирования и автоматическая система управления этим соревнованием.

Рассмотрим моделирование системы на функциональных языках и языках объектного моделирования. Разработка моделей системы на языках объектного моделирования требует предварительного функционального моделирования [2].

Функциональные модели созданы для строгой декомпозиции имеющихся в системе процессов по принципу «сверху-вниз», когда любой функциональный блок может быть разложен на множество подфункций, выполняя модульное проектирование ИС.

В IDEF0 система предстает как совокупность взаимодействующих работ либо функций, вне зависимости от объектов, которыми они оперируют. Методология IDEF0 позволяет четче смоделировать логику и взаимодействие процессов в системе.

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

Диаграмма проверки олимпиадных задач показывает потоки входных и выходных данных, которые обрабатываются в автоматизированной системе. Проверка решений производится на основании критериев проверки решений. При загрузке программного кода задачи и обработки всех данных и на выходе получаем результаты проверки.

Цель: моделирование процесса автоматизированной проверки решений олимпиадных задач

Точка зрения: Администратор

Критерии проверки решений

Программный код задачи

Проверка решений > олимпиадных задач

A0

Результат проверки

Участник Администратор Рисунок 1. Контекстная диаграмма IDEF0

Диаграммы потоков данных DFD иллюстрируют иерархию функциональных процессов, связанных потоками данных. Это представление отображает, как каждый процесс преобразует входные данные в выходные, а также обнаруживает отношения между этими процессами. Модель описывает процесс преобразования информации, начиная от ее ввода в систему и до выдачи в итоге пользователю. Внешние сущности в системе порождают информационные потоки данных, потоки переносят информацию к подсистемам, процессам или потребителям информации — внешним сущностям.

Диаграмма потоков данных DFD показывает организацию добавления задач, реализации их программного кода и их сравнений в автоматизированной системе. На ней отображены две сущности: Администратор и Участник. Участник загружает свой программный код решения задачи в автоматизированную систему, потом эта информация обрабатывается и добавляется в информационную базу. Информацию о задачах и контрольных решениях заносит Администратор, на основании чего производится сопоставление решений Участника с контрольными образцами.

¿j DociFreezer

created by free version of

Администратор I

Задачи

Контрольные пары

Добавление задач

A1

D1

Добавление контрольных пар

A2

Сформированная задача

Тестовые выходные данные

Участник

Добавление

Программный код программного

Г * кода

A3

D2

Программный код

Тестовые входные данные

Выполнение программы A4

Выходные данные

Сравнение A5

Результат сравнения

D3 Результаты

Рисунок 2. Диаграмма декомпозиции DFD

После рассмотрения функциональных моделей автоматизированной системы можно построить ее объектные модели на языке UML. Визуальное моделирование UML так же представляет процесс декомпозиции от общей концептуальной модели к логической, а потом и к физической модели системы.

Диаграмма вариантов использования в UML отображает отношения между актерами и прецедентами и позволяет обрисовать систему на концептуальном уровне. Актер обозначает набор ролей пользователей, работающих с системой. Актеры не могут быть связаны друг с другом. Прецедент — это перечень возможностей моделируемой системы, с помощью которого пользователь может получить нужный непосредственно ему результат. Прецедент определяет и описывает один из отдельных вариантов применения системы.

Часть дублирующейся информации в диаграмме вариантов использования устраняется с внедрением взаимосвязей между прецедентами: включение прецедента "include" и расширение прецедента "extend".

Участник

С_>'

Выбор задачи

Авторизация участника X

\

«included N

<<include>> / „

/ Выбор соревнования

<<include>>

Добавление задачи Добавление соревнования /

<<extend>>

/

/

/

Авторизация администратора

I

<<extend>>

I

Администратор

• «include»

<<include>> ^

Просмотра результата Добавление программного кода

Рисунок 3. Диаграмма вариантов использования UML

Диаграмма компонентов используется при моделировании физических качеств и организации объектно-ориентированной системы. Сюда относится моделирование физических сущностей, информационной базы, выполняемых программ, библиотек, таблиц, файлов и документов.

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

Рисунок 4. Диаграмма компонентов UML

IDEF1X подход к моделированию данных базируется на концепции «сущность-связь» и используется для анализа информационной структуры систем разной природы. Информационная модель изображает логическую структуру информации об объектах системы.

Сущность — некоторый обособленный объект или событие моделируемой системы, имеющий конкретный набор параметров - атрибутов.

Участник

Рисунок 5. Диаграмма IDEF1X автоматизированной системы

Концептуальная модель, построенная согласно со стандартом ГОЕБ1Х, является логической схемой базы данных для проектируемой автоматизированной системы. На этой диаграмме находятся сущности: Задача, Участник, Решение, Турнир, Учебное заведение, которые объединены между собой с помощью внешних ключей и образуют связи «один ко многим».

Ниже приведен список популярных автоматизированных систем, которые распространяются бесплатно или условно-бесплатно (данные на май 2015 года).

Таблица 1.

Название ОС Последняя версия

ejudge Linux 15.01.2015

PCMS2 Windows 17.11.2004

Contester Windows, Linux 07.11.2014

PC2 Windows, Linux 20.09.2014

DOMjudge Linux 27.10.2014

Как видно из таблицы, в настоящее время развитие большинства аналогичных автоматизированных систем прекращено, сохраняется необходимость повышения их качества, оптимизации работы под конкретное учреждение, обучение работы с ними персонала [3].

Основные сложности внедрения подобных автоматизированных систем в образовательных учреждениях связаны с отсутствием технических специалистов для сопровождения, несмотря на то, что основные правила ACM-соревнований утверждены. В большинстве случаев использование клиент-серверной модели с Web-сайтом для проведения олимпиад по программированию является оправданным, следует развивать и осваивать новые возможности именно в этом направлении.

Список литературы:

1. Виштак Н.М. Информационное обеспечение научно-исследовательской работы студентов / Н.М. Виштак // Научные труды SWorld. — 2013. — Т. 5. — № 2.

2. Виштак Н.М. Функционально-структурная модель интеллектуальной обучающей системы / Н.М. Виштак, Д.А. Фролов, Е.В. Варгина // Научный журнал «Фундаментальные исследования». М.: ИД «Академия естествознания», 2013. — С. 871—874.

3. Виштак О.В. Направления программной реализации электронных образовательных ресурсов / О.В. Виштак // Научные труды SWorld. — 2013. — Т. 5. — № 2. — С. 36—39.

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