УДК 378.147 ВАК 05.13.10 РИНЦ 20.01.45
ПРИМЕНЕНИЕ КОМПЬЮТЕРНЫХ ИГР ДЛЯ ОБУЧЕНИЯ РАЗРАБОТКЕ ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ
О. А. Шабалина, к.т.н., доцент кафедры САПР Тел.: (8442) 24-81-00, e-mail: [email protected] Волгоградский государственный технический университет
http://www.vstu.ru
In the paper the authors consider different possibilities of using computer games for teaching software development, not only presenting learning material through computer games, but also as giving computer games development as assignments for students. Practical experience of using of this approach for teaching students in the technical university is described.
В данной статье автор рассматривает различные возможности применения компьютерных игр для обучения разработке программного обеспечения, в том числе не только для подачи обучающего материала в компьютерных играх, но и в качестве заданий студентам на разработку. Описан опыт применения данного подхода в процессе подготовки студентов во втузе.
Ключевые слова: электронное обучение, компьютерная игра, разработка программного обеспечения.
Keywords: eLearning, computer game, software development.
Введение
Изучение процесса разработки программного обеспечения (ПО) является трудной задачей. Сложность программных систем может быть сравнима со сложностью наиболее сложных из современных технических систем. Одним из наиболее серьезных недостатков в подготовке студентов является недостаточное понимание общих принципов создания ПО, технологий проектирования, опыта работы с реальными проектами.
Подавляющая часть современных программных систем разрабатывается в группах, и именно командная работа представляет наибольшие трудности для начинающих инженеров. Но работа над реальными проектами может потребовать нереально большого времени, кроме того, сбор и анализ требований к программной системе также является сложной задачей. Для этого необходимо организовывать реальные связи с заказчиками, и не всегда можно найти нужное число таких заказчиков. И главное, студенты вряд ли смогут довести свою работу до приемлемого уровня, так они еще не обладают достаточными навыками. Поэтому, как правило, в качестве заказчиков выступают сами преподаватели и проекты становятся условно реальными. При этом снижается эффективность работы студентов на этапе сбора и анализа требований, а мотивация такой работы часто оказывается недостаточной высокой.
Задания по проектированию, которые выполняют студенты в ходе обучения, как правило, уже формализованы и значительно менее сложны, чем реальные задачи. Для разработки современных программных систем требуется гораздо более высокий уровень квалификации, и только те студенты, которые много занимаются дополнительно и/или приобретают практический опыт, работая над реальными заказами, достигают такого уровня во время обучения в вузах.
В настоящее время разрабатываются новые эффективные подходы, позволяющие готовить высококвалифицированных специалистов, владеющих современными технологиями и средствами разработки. Одним из наиболее перспективных является использование компьютерных игр в качестве объектов проектирования в процессе обучения разработке ПО.
Использование процесса разработки игр для обучения разработке программного обеспечения
Проектирование ПО является основным курсом для разработчиков ПО. Процесс проекти-
рования ПО включает определенную последовательность стадий и этапов, регламентированных российскими и международными стандартами на проектирование автоматизированных систем [1, 2]. Проектирование игр требует умений анализа требований к программной системе, знания методологий проектирования ПО, навыков программирования, особенностей технических средств и сред разработки. Использование игр в качестве объекта проектирования позволяет изучить все этапы процесса проектирования ПО на реальных задачах и довести этот процесс до стадии реализации системы (см. таблицу).
Таблица
Этапы разработки игр как программного обеспечения
Разработка ПО Разработка игры
Поиск заказчика, анализ требований рынка программного обеспечения Выбор целевой аудитории, оценка нереализованного спроса на рынке игр, поиск оригинальной идеи
Анализ требований заказчика Анализ требований целевой аудитории (ЦА)
Формализация требований заказчика, разработка концепции и функциональной структуры системы Формализация требований ЦА, разработка game-концепта и feature-листа.
Разработка макетов экрана интерфейса Разработка скетчей персонажей и уровней игры
Документирование предпроектных исследований в виде ТЗ, проектирование системы и разработка ТП Проектирование игры, документирование идеи и проекта игры в дизайн-документе.
Прототипирование системы Стадия pre-production (разработка прототипа игры, вспомогательных утилит и средств разработки игры)
Разработка системы Стадия production (с использованием разработанных на стадии pre-production утилит)
Тестирование системы Выпуск альфа-версии и тестирование игры
Внедрение системы Бета-тестирование игры
Выпуск системы Релиз игры
Использование процесса разработки игр в обучении разработчиков ПО имеет ряд важных преимуществ в сравнении с другими подходами. Во-первых, цель разработки такого ПО понятна и близка большинству студентов. Во-вторых, многие из них хорошо знакомы с этой областью и могут сформулировать адекватные требования к таким программным системам. И также очень важно то, что разработка компьютерных игр требует командной работы, что в настоящее время является очень важным для разработчика ПО.
Компьютерные игры относятся к классу программных систем высокой сложности. Разработка игр требует высокой квалификации разработчиков и знаний, не входящих в общую программу обучения (или входящих, но в недостаточном объеме). Реализация компьютерных игр требует не только навыков программирования, но и знаний в области разработки интерактивных приложений, двумерной и трехмерной компьютерной графики, методов лексического и синтаксического анализа выражений на формальном языке, алгоритмов поиска пути в виртуальном пространстве, кросс-платформенного программирования.
В той или иной степени соответствующие разделы включены в образовательный стандарт и входят в программы изучения дисциплин «Программирование на языках высокого уровня», «Базы данных», «Искусственный интеллект», «Компьютерная графика», но этого объема недостаточно для разработки игр. Поэтому студенты, выполняющие проекты по разработке игр, самостоятельно осваивают дополнительный материал и таким образом существенно повышают свою квалификацию.
Обзор исследований
В настоящее время в некоторых университетах Европы и США для обучения студентов -будущих разработчиков ПО в качестве реальных проектов используются разрабатываемые студентами компьютерные игры.
В университете Ноттингема (Великобритания) в течение трех лет в рамках обучения разработчиков ПО в качестве студенческих проектов разрабатываются компьютерные игры для школьников [3]. Заказчиками таких игр выступают учителя школ. Студентам предоставляется возможность встречаться с реальными заказчиками и приобретать навыки сбора и анализа требований к программным системам.
В университете Цинциннати [4] создан и включен в программу подготовки проектировщиков ПО курс, в рамках которого студенты изучают процесс разработки игр. Цель этого курса -привить студентам навыки креативного мышления, научить использованию итеративных про-
ектных технологий и основам объектно-ориентированного проектирования и программирования. В рамках курса студенты разрабатывают игры для мобильных телефонов.
Анализ результатов обучения [5], в котором используется разработка игр, показывает, что такой подход повышает мотивацию студентов и позволяет повысить уровень подготовки разработчиков ПО.
Применение игрового подхода к обучению на кафедре САПР и ПК ВолгГТУ
В течение трех лет на кафедре САПР и ПК для обучения процессу проектирования ПО используются компьютерные игры. В качестве заданий по проектированию студенты разрабатывают не только обычные компьютерные игр, но также обучающие игры, которые потом будут внедрены в учебный процесс. Это позволяет организовать такие важные этапы процесса разработки ПО, как тестирование и внедрение. Обучающие игры различной сложности разрабатываются студентами в рамках выполнения семестровых заданий, курсовых проектов и бакалаврских работ.
Создание обучающих игр требует решения всех задач, возникающих в ходе разработки обычных игр, а также ряда специфических задач, требующих разработки методов интеграции обучающего курса в игру, развития навыков и организации тестирования в игровом контексте, а также оценки уровня знаний обучаемых. Чтобы сохранить привлекательность игры и не потерять при этом обучающую компоненту, необходимо обеспечить так называемое «неявное» обучение в игре. В то же время, чтобы успешно конкурировать в привлекательности с обычными играми, обучающие игры не должны уступать им по уровню графических и звуковых эффектов, проработанности сюжета и качеству реализации. Однако это является сложной задачей и в настоящее время не выработано единых методов для ее решения. В исследованиях по созданию таких методов принимают участие магистры и аспиранты кафедры.
Разработки кафедры ведутся по следующим направлениям: ролевые обучающие игры, игровые тренажеры, мобильные обучающие игры, компоненты для разработки игр (среды, библиотеки и утилиты).
Реализованные проекты по разработке игр
Проект «Компьютерная обучающая игра по программированию на C#»
Курсы по технологиям и языкам программирования являются базовыми для разработчиков программного обеспечения, студенты начинают их изучать уже на первом году обучения. При этом многие из них испытывают трудности при изучении этих курсов, так как они еще не обладают достаточным опытом и навыками обучения в вузе. Другой трудностью является то, что программирование требует практических навыков.
Для обучения объектно-ориентированной технологии проектирования и программирования (ООП) силами коллектива студентов и аспирантов была разработана обучающая игра «Камми» (проект выполнен при финансовой поддержке Фонда содействия развитию малых форм предприятий в научно-технической сфере). Игра представляет собой трехмерную компьютерную ролевую игру с красочной графикой [6]. В качестве языка программирования выбран язык С#, так как это один из самых распространенных современных языков программирования. С# - это язык платформы .NET Framework, который позиционируется Microsoft как основной язык для разработки Windows и веб-приложений. В то же время C# хорошо подходит для того, чтобы начать изучение программирования, так как позволяет сконцентрироваться на проектировании программ, избавляя разработчика от множества рутинных и низкоуровневых операций.
В игре реализован разработанный авторами 3/-подход к проектированию обучающих игр [7]. Основной идеей подхода является разработка виртуального мира, интерпретирующего обучающий курс, в котором должны существовать персонажи, способные развивать свои навыки. Главный персонаж игры - профессор Камаев (автор выражает глубокую благодарность зав. кафедрой САПР и ПК Волгоградского государственного технического университета профессору В. А. Камаеву за разрешение использовать его образ в качестве прототипа главного героя), сознание которого в результате неудачных опытов (см. рис. 1) переместилось в маленького робота, состоящего из 16 магнитов, - Камми. В своем новом состоянии профессор оказывается в мире больших вещей, о котором он ничего не знает и в котором он не умеет жить. Для того чтобы вернуть профессору его человеческий облик, игрок должен провести Камми до лаборатории и починить установку. Для этого ему предстоит освоиться в новом для него мире и выполнить множество игровых заданий.
Рис. 2. Экранные формы игры «Камми»
Для обучения ООП разработан виртуальный игровой мир, в котором базовые принципы ООП интерпретированы в виде аксиом, правил и ограничений этого мира. В процессе игры игрок, решая задания (см. рис. 2), создает и затем последовательно расширяет описание игрового мира, которое в контексте ООП представляется диаграммой классов его сущностей. Диаграмма классов, которую создает игрок в процессе игры, отображает упрощенный вариант множества отношений между классами, используемыми в самой игре. Так игрок может увидеть, как работает ООП и какие задачи можно решать с помощью этой технологии.
Для реализации игры разработан обучающий курс по языку C#. Были выделены основные разделы курса, для каждого раздела разработан набор заданий, и эти задания были соотнесены с проблемами игрового мира. Обучающий курс был протестирован на группе студентов первого курса, изучающих основы программирования, выявленные неясности и ошибки описания заданий были устранены.
Команда проекта состояла из четырех студентов: гейм-дизайнера А. Тарасенко (4 курс), художника Е. Руденко (3 курс) и программистов А. Катаева (4 курс) и П. Воробкалова (5 курс). Для разработки игры использовались языки программирования C++ и C#, в качестве основной среды программирования применялась Microsoft Visual Studio 2008. Трехмерная графика в игре реализована с помощью DirectX и OpenGL (используются две альтернативные подсистемы вывода графики). Участниками проекта приобретен опыт в использовании скриптовых языков
программирования и динамической компиляции кода. В результате была создана база компонентов, пригодная для использования в последующих разработках.
В настоящее время П. Воробкалов защитил кандидатскую диссертацию и продолжает работать на кафедре в качестве старшего преподавателя, А. Катаев готовится к защите диссертации, остальные учатся в магистратуре. Важным результатом работы является также то, что сформирован устойчивый коллектив, который продолжает работать над новыми проектами в области разработки игр. Все участники проекта в настоящее время руководят проектными работами студентов третьего, четвертого и пятого курсов по разработке мини-игр. Трехлетний опыт работы в области создания обучающих игр позволил накопить достаточный опыт проектирования и создать базу компонентов, пригодную для использования в последующих разработках.
Проект «Игровой тренажер для тренировки навыков программирования»
Так как почти все специальные дисциплины, включенные в образовательные стандарты подготовки разработчиков ПО, в большой степени требуют приобретения практических навыков, на кафедре проводится работа по созданию обучающих тренажеров, предназначенных именно для развития навыков, требуемых в том или ином курсе. Идея таких обучающих тренажеров основана на многократном повторении однотипных действий, что направлено на закрепление навыков использования приемов и методов. Для тренировки практических навыков функционально подходят мини-игры. В таких играх многократно выполняется одно задание, которое усложняется при переходе на следующий уровень. Мини-игры не требуют сложных действий от игрока, а освоение правил не занимает много времени. Кроме того, мини-игры значительно проще в разработке по сравнению с другими играми.
Для обучения навыкам программирования и тестирования студентом 4 курса кафедры САПР и ПК ВолгГТУ А. Чекуновым в рамках выполнения бакалаврской работы был разработан прототип игрового тренажера Snake++ (см. рис. 3). Игровой тренажер реализован на основе известной игры Snake, которая заключается в последовательном выборе игровых элементов в соответствии с правилами. Игрок должен принимать решения пошагово и в ограниченное время. В игровом тренажере в качестве объектов используются лексемы языка С+ + . Правила выбора лексемы на каждом шаге определяются заданием, требующим составления программного блока из лексем.
Рис. 3. Экранные формы тестовой версии игры Snake++
Игра реализована на языке программирования С# в среде Microsoft Visual Studio 2005. В процессе работы над проектом студент освоил такие разделы, как разработка интерактивных приложений, программирование интерфейса, двумерная компьютерная графика, значительно расширил знания по основам трансляции, разработке баз данных, теории графов.
Игра была протестирована на целевой группе студентов первого курса, изучающих программирование на языке C++. По результатам тестирования студентом четвертого курса А. Алимовым игра была доработана, был улучшен ее интерфейс (см. рис. 4). В настоящее время полнофункциональная версия игры размещена на сайте по адресу: http://www.casualandser ious.ru/snake.
Проект «Среда разработки игровых тренажеров»
Анализ процесса разработки игровых тренажеров на базе мини-игр показал, что для создания каждого тренажера необходима разработка ядра, инструментария для наполнения игрового контента (редактор уровней, редактор скриптов и т. д.), обучающего контента и модуля его наполнения. При этом ядро, редактор уровней и модуль наполнения курсов являются инвариант-
ными и необходимыми для разработки тренажеров по различным дисциплинам. Так появилась идея проекта создания среды разработки игровых тренажеров (проект поддержан Фондом содействия развитию малых форм предприятий в научно-технической сфере). Работа выполнялась группой из трех студентов 3 курса: А. Соловьевым, А. Алимовым и Д. Ересько. Студенты провели сбор и анализ требований к системе и спроектировали ее архитектуру. В настоящий момент реализовано игровое ядро и редактор уровней для создания 2,0-игр [8]. Экранные формы редактора показаны на рис. 5.
Рис. 4. Экранная форма полнофункциональной Рис. 5. Экранная форма среды разработки
версии игры Snake++ игровых тренажеров
При разработке ядра и редактора уровней студенты освоили технологии Microsoft .NET Framework, Microsoft XNA, скриптовый язык Lua. В рамках дальнейшей работы планируется реализация модуля наполнения обучающего курса, модуль проверки решения заданий, модуль оценки знаний и создание пилотного проекта на основе среды разработки.
Проект «Компьютерная игра для обучения алгоритмизации»
Студент 3 курса Д. Ересько предложил идею обучения алгоритмизации с помощью визуального программирования. В процессе работы было реализовано несколько проектных итераций, на каждой из которых проверялись предложенные идеи и выявлялись проблемы. Таким образом была реализована технология проектирования, основанная на каскадной модели жизненного цикла. Итерации проектирования включали в себя: прототипирование модуля визуального программирования, проектирование и реализацию среды разработки обучающих игр, интеграцию игры с модулем визуального программирования, реализацию прототипа игры (см. рис. 6 на 3-ей стр. обл.). В настоящее ведутся работы по созданию игры-стратегии на базе этого прототипа [9].
В процессе работы над проектом студент освоил платформу .NET, набор инструментов Microsoft XNA, скриптовый язык Lua, графические редакторы, технологии программирования. Такой выбор средств разработки позволяет реализовать игру для персональных компьютеров, консолей Microsoft Xbox 360 и мобильных устройств Microsoft Zune.
Проект «Компьютерная игра Magic Analysis»
Игра Magic Analysis была создана на основе идеи, предложенной студенткой третьего курса С. Кудиновой. Обучающая игра предназначена для поддержки процесса обучения студентов и развития практических навыков применения системного анализа для решения задач проектирования автоматизированных систем. В базе данных хранится набор иерархических описаний различных систем с точки зрения системного подхода. Для пополнения базы данных описаниями новых систем предусмотрен модуль редактирования. В процессе игры пользователь анализирует выбранную систему, последовательно декомпозируя ее. Для анализа используются вопросы с набором ответов в виде пиктограмм, из которых нужно выбрать правильный. В результате игрок получает функционально-структурные и потоковые диаграммы описания системы (рисунок). По этим диаграммам генерируются бизнес-модель системы в виде диаграмм IDEF0 и DFD, что является первым этапом процесса проектирования автоматизированной системы. Таким образом, игрок видит применение системного подхода в проектировании. Экранные формы обучающей игры показаны на рис. 7 (3-я стр. обл.).
Система реализована как веб-приложение на языке C#, в процессе ее разработки была использована технология ASP.NET, языки JavaScript и HTML.
Проект «Разработка мобильных обучающих игр»
В настоящее время активно развивается новое направление в области разработки эффективных подходов к обучению с помощью мобильных устройств mLearning (мобильное обучение). В качестве мобильных платформ могут быть использованы мобильные телефоны, смартфоны, коммуникаторы, КПК и планшеты. Разработка мобильных игр - это сложная техническая задача. Для обучения с помощью мобильных устройств требуется разработка обучающих игр, ориентированных на использование технологий ввода данных, специфичных для мобильных устройств.
В рамках проекта была создана программная библиотека отображения двумерной графики на мобильных устройствах, которая будет применяться при разработке мобильных обучающих игр. В библиотеке реализована технология оптимизации отрисовки двумерных анимаций, основанная на объединении различных кадров растровых анимаций в единую текстуру, хранимую в памяти мобильного устройства. Это позволяет минимизировать затраты ресурсов и максимально использовать возможности мобильного устройства.
На основе разработанной программной библиотеки студентами 4 курса А. Арсентьевым, А. Тарасенко, А. Романенко и Е. Руденко в рамках выполнения бакалаврских работ разработаны три игры для мобильных устройств (см. рис. 8 на 3-уй стр. обл.). Данные игры были спроектированы с учетом последующей интеграции в них обучающих компонентов. В настоящее время начата работа над комплексом обучающих мобильных игр для школьников младших классов.
В результате студенты изучили особенности разработки приложений под мобильные устройства, средства разработки игр для платформы iPhone, среду программирования XCode, освоили язык ObjectiveC, получили навыки проектирования и использования паттернов проектирования.
Выводы
Трехлетний опыт разработки проектов по созданию игровых приложений под различные платформы показал, что применение компьютерных игр для обучения разработчиков ПО является очень эффективным как с точки зрения повышения качества подготовки, так и повышения мотивации студентов к обучению. Студенты, принимавшие участие в проектах, отмечают, что в процессе работы они приобрели такие важные профессиональные навыки, как работа над реальными задачами, проектирование, тестирование, отладка и реализация программных систем, работа с чужим кодом, в том числе с открытыми библиотеками, работа с системами контроля версий и другими современными средствами разработки.
Не менее важным результатом выполнения проектов студенты считают такие важные в работе навыки, как умение работать в команде, управление командной разработкой, выставление приоритетов и планирование, решение конфликтных ситуаций. Опыт разработки игр показал, что оптимальным является состав команды из 3-4 человек: гейм-дизайнера, художника и программистов.
Разработанные в рамках проектов обучающие игры внедрены в учебный процесс и используются для обучения и тестирования студентов. Результаты обучения будут опубликованы в следующих статьях.
Литература
1. ГОСТ 34.601-90 Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания.
2. Процессы жизненного цикла программных средств. ИСО/МЭК 12207-99.
3. Blanchfield P. Using Educational Game Design to Teach Software Engineering // Proceedings of the 3rd European Conference on Games-Based Learning, Graz, Austria, 24-30 October 2009. - Graz: FH JOAN-NEUM University of Applied Science, 2009. P. 24-30.
4. Meyer B. Fort Ancient, Ohaio: a Curricular Approach to Developing Mobile Games for Tourists // Proceedings of the 3rd European Conference on Games-Based Learning, Graz, Austria, 24-30 October 2009. -Graz: FH JOANNEUM University of Applied Science, 2009. P. 256-263.
5. Overmars M. Teaching Computer Science through Game Design // IEEE Computer, 2004. Vol. 37. No. 4. P. 81-83.
6. Shabalina O., Vorobkalov P., Kataev A., Tarasenko A. Educational Games for Learning Programming Languages // Information Science & Computing: International Book Series. No. 6. Methodologies and Tools of the Modern (e-) Learning. Supplement to International Journal "Information Technologies and Knowledge", 2008. Vol. 2. - Sofia: ITHEA, 2008. P. 79-83.
7. Шабалина О. А., Воробкалов П. Н., Катаев А. В., Тарасенко А. В. 3I-Approach for IT Educational Games Development // Proceedings of the 3rd European Conference on Games-Based Learning, Graz, Austria, 24-30 October 2009. - Graz: FH JOANNEUM University of Applied Science, 2009. P. 339-344.
8. Соловьев А. С., Алимов А. А. Разработка игровых тренажеров для обучения программированию // Инфокоммуникационные технологии в науке, производстве и образовании (ИНФОКОМ-3): Третья международная научно-техническая конференция, Кисловодск, 1-5 мая 2008. - СевКавГТУ, филиал Ставропольского государственного технического университета, 2008. С. 255-267.
9. Eresko D., Shabalina O. Game for learning logical design // Proceedings of IADIS International Conference on Mobile Learning, Porto, Portugal, 19-21 March 2010. ISBN (Book): 978-972-8924-99-XX.
УДК 004.94+621.518.3 ББК 32.973-018
ПРИМЕНЕНИЕ ТЕХНОЛОГИИ ВИРТУАЛЬНЫХ ПРИБОРОВ ПРИ СОЗДАНИИ ЛАБОРАТОРНЫХ ПРАКТИКУМОВ ДЛЯ ИЗУЧЕНИЯ СЛОЖНЫХ ТЕХНИЧЕСКИХ ОБЪЕКТОВ
А. С. Бессонов, доцент кафедры информационных систем Тел.: (495) 434-94-45, e-mail: [email protected] Московский государственный институт радиотехники, электроники и автоматики
(технический университет) http://www.mirea.ru Ю. Ю. Колбас, директор Тел.: (495) 333-21-69, e-mail: [email protected] Закрытое акционерное общество «Объединение «Исток ЭОС» http://www.istok-eos.ru
The features of application of virtual instruments technology are considered at creation of laboratory practical works for studying complex technical objects on an example of the helium — neon ring laser. Advantages of this technology are emphasized both at use of a practical work, and at its creation. The basic development stages carried out by the authors of the article are described.
Рассмотрены особенности применения технологии виртуальных приборов при создании лабораторных практикумов для изучения сложных технических объектов на примере гелий-неонового кольцевого лазера. Отмечены преимущества этой технологии как при создании практикума, так и при его использовании. Описаны основные этапы разработки, проведенной авторами статьи.
Ключевые слова: электронные образовательные ресурсы, лабораторный практикум, технология виртуальных приборов, сложный технический объект, имитационное моделирование, виртуальная измерительная система, этапы разработки, кольцевой лазер.
Keywords: electronic educational resources, laboratory practical works, technology of virtual instruments, complex technical object, imitation modeling, automated measuring system, development stages, characteristics of the ring laser.
Введение
Использование в высших учебных заведениях электронных образовательных ресурсов (ЭОР) стало уже обычным явлением. Для создания ЭОР используются новейшие информационные технологии. В частности, при разработке лабораторных практикумов по естественнонаучным и техническим дисциплинам широко используется технология виртуальных приборов (ВП). Преимущества этой технологии существенны и проявляются как при использовании ЭОР, так и при их разработке.
В предлагаемой статье описывается подход к созданию лабораторных практикумов для