Исследование возможности применения компьютерных игр для изучения формальных языков | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 января, печатный экземпляр отправим 8 января.

Опубликовать статью в журнале

Автор:

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

Опубликовано в Молодой учёный №51 (289) декабрь 2019 г.

Дата публикации: 21.12.2019

Статья просмотрена: 106 раз

Библиографическое описание:

Смирнова, А. Ю. Исследование возможности применения компьютерных игр для изучения формальных языков / А. Ю. Смирнова. — Текст : непосредственный // Молодой ученый. — 2019. — № 51 (289). — С. 39-41. — URL: https://moluch.ru/archive/289/65520/ (дата обращения: 22.12.2024).



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

Ключевые слова: язык, программный код, игра, программный продукт, язык программирования, формальный язык

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

Формальный язык — это математическая модель реального языка, записанная в виде множеств терминальных и нетерминальных символов, а также стартового символа и правил. [1]

Компьютерные игры прочно вошли в жизнь людей и являются одним из способов провождения свободного времени. Их популярность обусловлена тем, что игры позволяют «отвлечься от реальности», снять стресс и напряжение. Компьютерные игры могут применяться и для обучения, по аналогии с играми, при помощи которых обучают детей. На рынке игр сейчас представлено несколько продуктов, позволяющих писать программный код, некоторые из которых рассматриваются в данной статье.

  1. TIS-100. Цель данной игры состоит в том, чтобы починить компьютер модели TIS-100, который не может выполнить даже простейший тест диагностики. Пользователю необходимо написать программный код в специально отведённых сегментах памяти (некоторые сегменты не доступны для записи), на языке, представляющем собой некий аналог ассемблера. Важно отметить, что язык программирования в этой игре минималистичен (из-за чего порой неудобен) и многопоточен (код в блоках, отображающийся на экране, выполняется одновременно). После успешного решения любого задания показываются его характеристики и статистика друзей, которые уже играли в эту игру. [2] Это позволяет оценить качество решения и посоревноваться с друзьями в поисках наилучшего решения по следующим характеристикам: количество затрагиваемых сегментов, количество циклов прохождения и количество инструкций(строк) программного кода. Данный продукт позволяет весело провести время, но не подходит для изучения формальных языков, поскольку заточена больше под ассемблер, а команды языка сильно ограничены, что не отображая набор конструкций формального языка.
  2. while True: learn(). Цель в данной игры состоит в написании переводчика с кошачьего, т. к. в один прекрасный день главный герой игры обнаруживает, что кот справляется с написанием кода лучше его. Но есть одна маленькая проблема — кот не умеет разговаривать. Пользователю необходимо решать головоломки, и изучать принципы машинного обучения. [3] В основе игры лежат реальные принципы, применяемые в машинном обучения, в частности, нейросетей, а задания основываются на реальных проблемах, решаемые при помощи машинного обучения. Программный продукт позволяет почувствовать себя в роли специалиста по большим данным, но совершенно не подходит для изучения формальных языков.
  3. CodeCombat. Представляет собой многопользовательскую браузерную игру, цель которой писать программный код для захватывания земель и победы над врагами. Команды программного кода — это «заклиния» или «действие» игрока. Команды пишутся на одном из следующих языков: как JavaScript, Lua, Pythoon, есть возможность язык программирования в ходе игры. [4] Важно отметить, что в бесплатной версии доступен только основной путь игрока, а за все ответвления придётся платить дополнительно. Игровой процесс посмотрен от простого к сложному, позволяя играть в неё пользователю, который до этого никогда не занимался программированием. Данный продукт может использоваться для изучения формальных языков, т. к. несмотря на то, что выбирается конкретный язык программирования, пользователь может сменить его и посмотреть, как можно пройти уровень на другом языке.
  4. Human Resource Machine. Цель данной игры — программировать действия офисного работникам по заданиям, которые даёт босс. Сам офис представляет собой компьютер, где во время решения заданий необходимо взять числа(а иногда и буквы) с входа, а решения заданий отправить на выход. Пол офиса имитирует собой оперативную память, где можно сохранять входные данные и результаты, полученные в ходе вычислений. Пользователь начинает всего с 2 команд,но в процессе прохождения игры ему становится доступно всего 11 команд, однако, по утверждению создателей, их достаточно для моделирования практически любого алгоритма в мире. [5] Язык написания программы в данном случае так же представляет собой упрощенную версию ассемблера, а задания с каждым уровнем становятся сложнее. Данный программный продукт может частично использоваться для изучения формальных языков, т. к. даёт некоторое представление о конструкциях формальных языков. Однако, прототипом языка программирования здесь является ассемблер, что не позволяет получить полного представления о формальных конструкциях языков высокого уровня.
  5. 7 Billion Humans. Игра, от создателей Human Resource Machine. В отличии от предыдущего продукта, целью данной игры является программирование действий толп работников. Модель офиса остаётся прежней, однако в основе программирования уже лежит другой язык, не ассемблер. В игре появились подсказки и пропуск уровней, что может быть полезно при прохождении. Данный программный продукт больше подходит для изучения формальных языков, чем предыдущий, поскольку в псевдоязыке появились конструкции, больше похожие на те, что используются в формальных языках.
  6. Code Hunt. Это приложение, предназначение для обучения Java и C#, где пользователю самому нужно понять, что необходимо исправить в коде программы, чтобы уровень считался пройдённым. Игрок видит на входе несколько тестов, одни пройдены успешно, другие — нет. Написав программный код, пользователю необходимо сделать так, чтобы все тесты проходили. [6] Данный программный продукт, не совсем подходит для изучения формальных языков, т. к. не предоставляет чёткой информации о формальных конструкциях.
  7. Robocode. Цель данной игры заключается в создании боевых роботов -танков, написанных на Java или.NET. Основной движущий элемент в обучении это конкуренция. Цель игрока после создания робота — уничтожить абсолютно все другие танки на игровом поле. Танки обладают большим набором возможностей: движение по игровому полю, стрельба, они могут врезаться в стены или роботов, узнавать местоположение друг друга. Игра является кроссплатформенной и играть в неё можно на любых операционных системах. В игру встроенная собственная среда для разработки — Robot Editor. Данные продукт так же не подходит для изучения формальных языков, поскольку заточен под конкретные языки и не предоставляет чёткой информации о формальных конструкциях.

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

Литература:

  1. Formal language // Wikipedia. URL: https://en.wikipedia.org/wiki/Formal_language
  2. TIS-100 — паззл про многопоточный ассемблер, который никто не ждал // Хабр. URL: https://habr.com/ru/post/263445
  3. Создатель игры while True: learn() о программировании в геймдеве, проблемах с VR и симуляции ML // Хабр. URL: https://habr.com/ru/post/417107
  4. О нас // CodeCombat. URL: https://codecombat.com/about
  5. Human Resource Machine // Tomorrowcorporation. URL: https://tomorrowcorporation.com/humanresourcemachine
  6. Обучайтесь С# и Java вместе с Code Hunt // my-gamezone. URL: https://my-gamezone.ru/igry-dlja-programmistov/code-hunt-igrat-onlajn
Основные термины (генерируются автоматически): язык, программный код, игра, программный продукт, язык программирования, формальный язык, изучение, машинное обучение, наилучший образ, четкая информация.


Похожие статьи

Приложения компьютерной лингвистики

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

Игровые технологии формирования грамматических навыков в начальной школе на уроках английского языка (из опыта работы)

В статье рассмотрено использование игровых технологий как эффективной формы обучения всем аспектам иностранного языка ввиду своей увлекательности. Также представлены методические разработки нескольких грамматических игр и их использование на уроках а...

Проектирование баз знаний интеллектуальных обучающих систем, построенных на технологии OSTIS

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

Искусственный интеллект и машинное обучение в дизайне продуктов питания

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

Изучение алгоритмических конструкций и логики программирования действий при решении практических задач

В данной статье рассматривается применение методики Action Research для исследования алгоритмических конструкций и логики программирования действий при решении практических задач. В статье представлены результаты исследования, проведенного с использо...

Метод проектов как один из аспектов реализации личностно ориентированного подхода при обучении русскому языку

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

Python как основной язык программирования в средней школе

В статье рассматривается язык Python, его достоинства и недостатки, обосновывается выбор изучения языка Python в средней школе.

О применении конкретной информационной технологии в обучении студентов математическому анализу

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

Разработка алгоритма работы веб-модуля для структурирования знаний студента по дисциплине

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

Использование метода анализа иерархий при выборе антивирусного продукта

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

Похожие статьи

Приложения компьютерной лингвистики

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

Игровые технологии формирования грамматических навыков в начальной школе на уроках английского языка (из опыта работы)

В статье рассмотрено использование игровых технологий как эффективной формы обучения всем аспектам иностранного языка ввиду своей увлекательности. Также представлены методические разработки нескольких грамматических игр и их использование на уроках а...

Проектирование баз знаний интеллектуальных обучающих систем, построенных на технологии OSTIS

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

Искусственный интеллект и машинное обучение в дизайне продуктов питания

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

Изучение алгоритмических конструкций и логики программирования действий при решении практических задач

В данной статье рассматривается применение методики Action Research для исследования алгоритмических конструкций и логики программирования действий при решении практических задач. В статье представлены результаты исследования, проведенного с использо...

Метод проектов как один из аспектов реализации личностно ориентированного подхода при обучении русскому языку

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

Python как основной язык программирования в средней школе

В статье рассматривается язык Python, его достоинства и недостатки, обосновывается выбор изучения языка Python в средней школе.

О применении конкретной информационной технологии в обучении студентов математическому анализу

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

Разработка алгоритма работы веб-модуля для структурирования знаний студента по дисциплине

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

Использование метода анализа иерархий при выборе антивирусного продукта

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

Задать вопрос