Вход на сайт

Участие

  • обсуждение
  • участие в секции
  • мастер-классы
  • видео

Кто на сайте

Сейчас на сайте 124 гостя и нет пользователей

Грачев Д.А., Лаптев В.В. ОБУЧАЮЩАЯ СИСТЕМА ПО ПРОГРАММИРОВАНИЮ

Оцените материал
(0 голосов)

Грачев Д.А., Лаптев В.В.
ОБУЧАЮЩАЯ СИСТЕМА ПО ПРОГРАММИРОВАНИЮ

ФГБОУ ВПО «Астраханский государственный технический университет»,
 г. Астрахань

Концепции разработки

В работе [1] сформулированы требования к учебному языку и обучающей системе по программированию. В работе [2] описан учебный язык программирования Semantic Language и его интерпретатор. Разработка программ на учебном языке должна осуществляться в интегрированной среде, которая является частью обучающей системы и должна обеспечивать процесс обучения.

Б. Страуструп отмечал [3], что главным препятствием на пути развития языка С++ являются символьно-ориентированные инструменты (в частности, текстовый редактор кода). Более перспективный и интересный подход – отказаться от текстового представления программы и реализовать среду на основе семантических понятий языка программирования. В этом случае синтаксис языка программирования представляет собой интерфейс между программой и пользователем (программистом). И как всякий интерфейс, его можно заменять, не изменяя базовой семантики языка.

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

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

В настоящее время практически все эти концепции реализованы в рамках интегрированной среды Semantic IDE.

Редактирование кода

Редактор кода – это не традиционный текстовый редактор. В Semantic IDE реализован семантический редактор, который оперирует не символами, а операторами учебного языка и объектами программы. Поэтому, во-первых, большинство элементов оператора сразу вставляются в код в правильном виде, и во-вторых, полностью исчезают ошибки набора ключевых слов. Редактор разрешает символьный ввод только в строго определенных позициях оператора.

Редактор следит за действиями программиста и сообщает об ошибках в момент набора программы. Пока ввод оператора не завершен, в окне ошибок «вывешены» все сообщения об ошибках, которые возникают по мере ввода составных частей оператора.

Синтаксис как интерфейс

Редактор кода в соответствии с действиями программиста строит внутреннее представление программы – семантическое дерево с вершинами сложной структуры. Каждая вершина – это отдельный оператор программы, в котором сохраняется полная информация о его семантике.

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

Представление программы в виде семантического дерева позволяет реализовать идею сменяемого синтаксиса. Каждый синтаксис определяется грамматикой представления в формате РБНФ. Грамматика не используется для синтаксического анализа программы и нужна только для определения внешнего представления программы в окне редактора кода.

В Semantic IDE помимо синтаксиса учебного языка Semantic Language реализованы Си-подобный, Pascal-подобный и Basic-подобный синтаксисы. Кроме того, каждое из представлений может быть показано либо в русской лексике, либо в английской. Среда позволяет без особых проблем подключить новый синтаксис представления (например, Python-подобный).

Обучающий режим

Способность редактора следить за действиями программиста позволила реализовать специальные режимы работы обучающей системы:

-       институциональный – система управляет действиями обучаемого;

-       тренирующий – обучаемый может совершать действия в пределах выделенного системой ресурса доступных операций; при исчерпании доступных операций система переключается в институциональный режим;

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

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

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

Подготовка методических материалов

В любом месте кода программы (а также перед и после кода) можно вставить оператор-комментарий. Разрешается создавать последовательность комментариев вообще без программного кода.

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

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

Литература

  1. 1.Лаптев В.В. Требования к современной обучающей среде по программированию // Объектные системы-2010 (Зимняя сессия): материалы II Международной научно-практической конференции. Россия, Ростов-на-Дону, 10-12 ноября 2010 г. / Под общ. Ред. П.П. Олейника. – Ростов-на-Дону, 2010. – 134 с., с. 104-110.
  2. 2.Грачёв А.Д., Лаптев В.В. Разработка учебного языка программирования и интерпретатора для обучающей среды // Объектные системы-2012: материалы VI Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2012г.) / Под общ. ред. П.П. Олейника. – Ростов-на-Дону: ШИ ЮРГТУ (НПИ), 2012. – 110 с., с. 92-101.
  3. 3.Страуструп Б. Дизайн и эволюция С++. – М.: ДМК Пресс; СПб.: Питер, 2006. – 448 с.

 

Прочитано 1410 раз

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

Убедитесь, что Вы ввели всю требуемую информацию, в поля, помеченные звёздочкой (*). HTML код не допустим.