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

Вид материалаДоклад
Подобный материал:

УДК 004.4(06) Технологии разработки программных систем


С.В. ПУГАЧЁВ, Д.О. ЖУКОВ

Московский государственный университет приборостроения и информатики


ИСПОЛЬЗОВАНИЕ СОВРЕМЕННЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ПРИ РАЗРАБОТКЕ ИНТЕРНЕТ-СИСТЕМЫ ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ


В докладе обсуждаются вопросы применения современных технологий разработки программного обеспечения и программирования на примере автоматизированной интернет системой обучения программированию (доступной с 1 декабря 2007 года на сайте www.testor.ru), которая позволяет авторизованным пользователям решать задачи на языках программирования C#, Visual Basic и Pascal, проводить самостоятельное обучение, олимпиады, а также лабораторные работы по программированию.


Подход к тестированию, при котором студенту предлагается ответить на ряд вопросов и выбрать правильный ответ из нескольких предложенных вариантов не применим при обучении программированию. В случае, когда вопрос представляет собой проблему, ответом является исходный код на одном из языков программирования, и единственно правильного решения выделить нельзя. В этом случае надо, получив исходный код, “скомпилировать” и протестировать его на наборе тестов, заранее подготовленном преподавателем. При прохождении всех тестов в заданное время и не превышении отведённого лимита оперативной памяти – решение считается верным. По такому принципу работают системы проведения олимпиад по программированию, такие, как ejudge и некоторые другие. Однако системы тестируют скомпилированные программы, а не исходный код и алгоритмы, поэтому не могут быть использованы в обучении, поскольку отсутствует помощь студенту в решении задачи, не указываются ошибки, не оценивается качество оформления и комментирования исходного кода, не даются указания, как создать легко читаемые программы.

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

Система имеет web интерфейс, представляющий собой IDE с необходимыми для обучения возможностями. Благодаря этому студентам не требуется устанавливать какие-либо программы или среды разработки на свой компьютер, а можно сразу приступать к работе. Кроме того, нет необходимости обновлять версии и устанавливать ПО в компьютерных классах ВУЗов, что, безусловно, облегчает внедрение.

Система построена на основе трёхзвенной архитектуры. Пользовательский интерфейс выполнен в виде ASP.NET Web сайта, c использованием технологии AJAX. Что повышает уровень интерактивности и увеличивает скорость работы системы (концепция Web 2.0). Web сайт взаимодействует с сервером по бинарному протоколу или HTTP, в зависимости от настроек. Для обеспечения безопасности и исключения возможности перехвата данных применяются сертификаты и ассиметричное шифрование. Взаимодействие осуществляется при помощи сервисов Windows Communication Foundation. Серверная часть представляет собой Windows сервис, который работает под виртуальной машиной, в которой происходит загрузка, компиляция решений и прохождение решениями некоторого набора тестов. Что гарантирует повышенный уровень безопасности предсказуемость и полный контроль над средой исполнения. В качестве базы данных используется Microsoft SQL Server 2005 Express.

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

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


ISBN 978-5-7262-0883-1. НАУЧНАЯ СЕССИЯ МИФИ-2008. Том 11