Молодежный инновационный форум Приволжского федерального округа Конкурс научно-технического творчества молодежи (НТТМ) Интернет-сайт: http://ify.ulstu.ru. Ульяновск, 2015 год УДК 004.42 Средства сравнения решений в проектно-ориентированном обучении ФГБОУ ВПО «Ульяновский государственный технический университет» Фолунин Владимир Александрович, студент Негода Виктор Николаевич, д.т.н., доцент Учебный процесс ряда дисциплин направления «Информатика и вычислительная техника» предполагает выполнение студентами лабораторных и контрольных работ. Такие работы, как правило, подразумевают решение студентом тех или иных практических задач, теоретическое описание которых представлено в программе дисциплины. Специфика направления «Информатика и вычислительная техника» такова, что в подавляющем большинстве случаев решение задачи является программой для вычислительной машины (в частности – персонального компьютера). Эта особенность, в свою очередь, позволяет использовать системы автоматизированной проверки решений. Общие принципы работы этих систем изложены в работах [4, 5]. Большинство подобных систем изначально предназначены для организации соревнований по программированию, однако в последнее время они всё чаще используются и непосредственно в учебном процессе [1, 2, 6, 7, 10, 12]. Система автоматизированной проверки решений повышает эффективность работы преподавателя, который физически не способен обеспечить присущий ей уровень полноты проверки каждого решения при ручном тестировании, особенно в рамках учебного занятия. Возможность повторного использования комплектов задач, масштабируемость и сравнительная простота управления процессом проверки также положительным образом сказываются на эффективности обучения. Тем не менее, использование систем автоматизированной проверки решений в учебном процессе сопряжено с рядом трудностей, обусловленных изначальной ориентированностью данных систем на олимпиадные мероприятия. К подобным трудностям можно отнести: 1. Примитивный уровень управления компиляцией решений (набор компиляторов и опций компиляции, как правило, является фиксированным и общим для всех задач); 2. Общую ориентацию на проверку решений, представленных одним файлом исходного кода и транслирующихся в один исполняемый файл; 3. Отсутствие соглашений для разработчиков проверяющих программ влекущее необходимость адаптации для конкретной системы программ, разработанных ранее; 4. Невозможность указания взвешенных оценочных характеристик для отдельных тестов и охват ограничениями на время выполнения и используемую память всего набора тестов; Молодежный инновационный форум Приволжского федерального округа Конкурс научно-технического творчества молодежи (НТТМ) Интернет-сайт: http://ify.ulstu.ru. Ульяновск, 2015 год 5. Достаточно слабую поддержку так называемых интерактивных задач, в которых лицу, решающему задачу, изначально не доступен весь объём информации, позволяющий выделить корректное решение. Следует отметить, что приведённые ограничения в достаточно равной степени имеют место для распространённых на сегодняшний день систем автоматизированной проверки решений. В качестве типовой системы автоматизированной проверки может рассматриваться система [8]; опыт составления задач для данной системы суммирован в работе [9]. Целью настоящей работы является разработка средств сравнения программных решений, которые позволяют применять критерии оценки, не ограниченные одним конкретным форматом, и предоставляют автору задачи возможности по управлению процессом компиляции решений. В контексте данной работы под термином «задача» понимается некоторая проблема, предполагающая алгоритмическое решение, осуществляющее преобразование входных данных в выходные данные. Характер этого преобразования описывается в условии задачи, которое также содержит формализованное описание входных и выходных данных и указание лимитов задачи. Тестовые данные задачи представлены набором текстовых файлов. Каждый файл входных данных может сопровождаться соответствующим файлом выходных данных; в этом случае проверка корректности вывода решения участника может производиться путём сравнения файла, в котором сохранены выходные данные, сформированные решением участника, с файлом, содержащим образец корректного вывода. В некоторых случаях набор текстовых файлов, содержащих тестовые входные данные, может быть заменён вспомогательной программой, осуществляющей создание такого набора, – генератором тестов. Подробное рассмотрение прочих атрибутов задач представлено в работе [11]. Предполагается, что разрабатываемые средства сравнения решений будут функционировать в рамках системы организации проектноориентированного обучения. Для этой внешней системы можно определить два основных прецедента, при которых она обращается к разрабатываемой проверяющей системе: первый – подготовка задач к приёму и проверке решений, второй – собственно проверка и оценка решений задач. Среди действий, которые необходимо совершить системе организации соревнований в каждом из описанных выше случаев, можно выделить такие, которые относятся непосредственно к работе с материалами задачи и решения. Глобально их можно разделить на две группы: связанные с определением возможности компиляции и собственно компиляцией, а также связанные с проверкой и оценкой решения. Две указанные группы действий, с одной стороны, являются независимыми, а с другой стороны, каждая из них вовлекает достаточно большой комплекс взаимосвязанных сущностей и процессов. В связи с этим в составе разрабатываемой проверяющей системы выделяются две основные структурные части: подсистема компиляции и подсистема тестирования. Система управления проектно-ориентированным обучением обращается к подсистеме компиляции тогда, когда необходимо установить Молодежный инновационный форум Приволжского федерального округа Конкурс научно-технического творчества молодежи (НТТМ) Интернет-сайт: http://ify.ulstu.ru. Ульяновск, 2015 год возможность компиляции исходного кода в среде проверяющей системы и произвести саму эту компиляцию. Обращение к подсистеме тестирования происходит в тех случаях, когда требуется получить вердикт и протокол проверки решения. Центральную роль в работе подсистемы тестирования играют проверяющие модули. Проверяющий модуль – объект, инкапсулирующий функциональность оценки одного конкретного критериального параметра сравнения решений, к которому можно обращаться независимо от других. Один проверяющий модуль может контролировать отсутствие ошибок времени выполнения при запуске решения, другой – удовлетворение ограничений по времени выполнения, третий – корректность выходных данных. Во время обработки каждого тестового случая при проверке решения может быть задействован различный набор проверяющих модулей. Оценки различных проверяющих модулей являются независимыми (однако в некоторых случаях отрицательный результат проверки одного модуля может повлечь штраф применительно к тесту или всему процессу тестирования). Все характеристики проверяющих модулей описываются в JSON-файле, определяющем итоговый формат проверки. Таким образом, с введением проверяющих моделей процесс оценки решений, присущий тому или иному формату соревнования, теряет монолитный характер и приобретает гибкость. Этот факт является ключевым отличием разрабатываемой подсистемы тестирования от существующих на сегодняшний день аналогов. Подсистему тестирования в равной степени удобно использовать как для проведения проверок существующих форматов, так и при организации различных проверок, предполагающих ранее не применявшиеся способы сравнения решений и методы оценки. В рамках работы реализованы средства проверки, оценки и сравнения решений в проектно-ориентированном обучении. Модульная структура средств проверки отдельных критериев оценки позволяет описывать различные форматы сравнения решений, конструируя итоговые метрики из базовых проверяющих модулей. Разработанная проверяющая система успешно фиксирует различные виды ошибок в решениях задач. Вердикты разработанной системы, аналогичные вердиктам существующих систем проверки решений, позволяют сделать вывод о возможности применения разработанной системы для проверки и ранжирования решений. Вместе с тем, разработанные средства также предполагают возможность описания оригинальных форматов сравнения решений, не имеющих распространённых аналогов, за счёт добавления сторонних модулей проверки. Все виды описаний и спецификаций, используемых разработанными средствами сравнения решений в соревнованиях по программированию, представляются в текстовом формате, что упрощает их анализ и редактирование. Дальнейшее развитие настоящая работа может получить в рамках исследования, тематику которого предлагается связать с выявлением и Молодежный инновационный форум Приволжского федерального округа Конкурс научно-технического творчества молодежи (НТТМ) Интернет-сайт: http://ify.ulstu.ru. Ульяновск, 2015 год классификацией тех учебных задач образовательных дисциплин направления подготовки «Информатика и вычислительная техника», для которых возможна организация проверки и сравнения решений в формате некоторого соревнования по программированию. Подобное исследование позволит существенно расширить область применения разработанной системы проверки и сравнения решений. Cписок литературы 1. Audrito G, Demo G. B., Giovannetti E. The Role of Contests in Changing Informatics Education: A Local View // Olympiads in Informatics. — 2012. — №6. — Pp. 3-20. 2. Kiryukhin V. M. Mutual influence of the national educational standard and olympiad in informatics contents // Olympiads in Informatics. — 2010. — №4. — Pp. 15-29. 3. Kiryukhin V. M., Tsvetkova M. S. Strategy for ICT Skills Teachers and Informatics Olympiad Coaches Development // Olympiads in Informatics. — 2010. — №4. — Pp. 30-51. 4. Андреева Е. В. Принципы проверки учебных и олимпиадных задач по информатике // Информатика. — 2001. — № 34. — С. 5-10. 5. Кирюхин В. М. Методика проведения и подготовки к участию в олимпиадах по информатике. Всероссийская олимпиада школьников. — 2-е изд. — М.: БИНОМ. Лаборатория знаний, 2012. — 277 с. 6. Лапшов Ю. А., Негода В. Н., Фолунин В. А. Использование технологий проведения соревнований по программированию в учебном процессе // Всероссийская научно-практическая конференция «Электронное обучение в непрерывном образовании 2014»: сборник научных трудов. В 2 т. — Т. 1. — Ульяновск: УлГТУ, 2014. — 356 с. 7. Матюхин В. А. Преподавание программирования с использованием систем автоматической проверки решений // Информатика. — 2006. — № 18. — С. 27-29. 8. Система Contester [Электронный ресурс] // Contester. — Ковров, 2009. — Режим доступа: http://www.contester.ru/. — Загл. с экрана. 9. Фолунин В. А. Опыт подготовки соревнований по программированию формата ACM ICPC // Информатика, моделирование, автоматизация проектирования: сборник научных трудов / под ред. Н. Н. Войта. — Ульяновск: УлГТУ, 2011. — 416 с. 10. Фолунин В. А. Особенности применения средств автоматизированной проверки решений в проектноориентированном обучении // Информатика, моделирование, автоматизация проектирования: сборник научных трудов / под ред. П. И. Соснина. — Ульяновск: УлГТУ, 2013. — 227 с. 11. Фолунин В. А. О спецификации задач турниров по программированию, упрощающей повторное использование и управление комплектами задач // Информатика, моделирование, Молодежный инновационный форум Приволжского федерального округа Конкурс научно-технического творчества молодежи (НТТМ) Интернет-сайт: http://ify.ulstu.ru. Ульяновск, 2015 год автоматизация проектирования: сборник научных трудов / под ред. П. И. Соснина. — Ульяновск: УлГТУ, 2014 12. Фолунин В. А. Применение в учебном процессе заданий с автоматизированной проверкой на стороне клиента // Информатика и вычислительная техника: сборник научных трудов / под ред. П. И. Соснина. — Ульяновск: УлГТУ, 2014