Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXXI Международной научно-практической конференции «Естественные и математические науки в современном мире» (Россия, г. Новосибирск, 03 июня 2015 г.)

Наука: Информационные технологии

Секция: Автоматизация и управление технологическими процессами и производствами

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Фролов Д.А., Балашов А.Д. ПРОЕКТИРОВАНИЕ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ПРОВЕРКИ ОЛИМПИАДНЫХ ЗАДАНИЙ ПО ПРОГРАММИРОВАНИЮ // Естественные и математические науки в современном мире: сб. ст. по матер. XXXI междунар. науч.-практ. конф. № 6(30). – Новосибирск: СибАК, 2015.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

 

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

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

ассистент  кафедры  «Информационные  системы  и  технологии»

БИТТиУ  (филиал)  СГТУ  имени  Гагарина  Ю.А.,  РФ,  г.  Балаково

Email kafist@bittu.org.ru

Балашов  Андрей  Дмитриевич

студент  кафедры  «Информационные  системы  и  технологии»

БИТТиУ  (филиал)  СГТУ  имени  Гагарина  Ю.А.,  РФ,  г.  Балаково

Email: 

 

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.Алгоритм;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Рисунок  1.  Контекстная  диаграмма  IDEF 0

 

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

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

 

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

 

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

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

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

 

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

 

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

 

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

 

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

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

 

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

 

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

Ниже  приведен  список  популярных  автоматизированных  систем,  которые  распространяются  бесплатно  или  условно-бесплатно  (данные  на  май  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.

Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий