Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021) — различия между версиями

Материал из 0x1.tv

(не показано 7 промежуточных версий этого же участника)
;{{SpeakerInfo}}: {{Speaker|Валерий Лаптев}}
<blockquote>
Описывается разработка среды Drakon IDE, предназначенная для обучения алгоритмизации на графическом языке ДРАКОН. 
Сформулированы требования к среде, определён минимальный набор икон и разработан интерпретатор дракон-схем типа
«Примитив». Разработка осуществляется на языке Dart. 
</blockquote>

{{VideoSection}}
{{vimeoembed|581910391|800|450}}
{{youtubelink|}}

{{SlidesSection}}
[[File:Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

На кафедре АСОИУ Астраханского технического университета возникла потребность в реализации специализированной интегрированной среды для обучения начинающих программистов алгоритмизации. В качестве визуального алгоритмического языка выбран язык ДРАКОН [1]. Этот язык был выбран по нескольким причинам. Во-первых, он близок к блок-схемам, с которыми знакомы почти все студенты, поступившие на ИТ-направления. Во-вторых, Дракон-схемы, в отличие от блок-схем, строятся по строгим правилам. В-третьих, ДРАКОН является российской разработкой.

===  Требования к интегрированной среде  ===

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

* работа с проектами;
* работа со схемами;
* накопление компонентов схем в библиотеке;
* выполнение схемы;
* конвертирование схемы в программу на языке программирования.

Проект может содержать одну или несколько схем. Типичные действия с проектами: создать проект, добавить/удалить схему, сохранить проект, открыть/закрыть проект.

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

Среда должна обеспечивать накопление библиотеки стандартных алгоритмов и элементов алгоритмов.

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

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

Интегрированная среда также должна иметь современный, наглядный и информативный пользовательский интерфейс.

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

===  Описание модели схемы  ===

Для работы со схемами разработана модель. Каждой иконе в схеме соответствует объект-икона в модели, которая содержит полную информацию, необходимая для изображения, интерпретации и конвертации иконы. Все иконы, кроме иконы «Вопрос», имеют один вход и один выход. Икона «Вопрос» имеет один вход и два выхода.

Дракон-схемы бывают двух видов: схемы типа «примитив» и схемы типа «силуэт». Модель примитива представляет собой последовательность объектов-икон. Схема типа «силуэт» имеет ветки, которые делят схему на смысловые части. Модель ветки  это последовательность объектов-икон, а весь силуэт представляет собой последовательность веток (последовательность последовательностей икон).

===  Разработка интерпретатора Дракон-схем  ===

Разработка среды началась с разработки первой версии интерпретатора. Был определён минимальный набор икон для интерпретации схем типа «Примитив»:

* икона «Заголовок»;
* икона «Действие»;
* икона «Вопрос»;
* икона «Полка»;
* икона «Конец».

Для каждой иконы было определены допустимые операции в иконах.

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

Иконы «Действие», «Вопрос» и «Полка» могут содержать только по одному выражению.

Икона «Действие» содержит выражение присваивания переменным Дракон-схемы некоторого значения. Преобразования типов не выполняется.

Икона «Вопрос» служит для сравнения значений двух переменных. Результатом операции сравнения является значение логического типа: истина (true, да, верно) или ложь (false, нет, неверно).

Икона «Полка» содержит выражение с арифметической операцией с двумя переменными. Результат вычисления операции присваивается переменной. Преобразования типов не выполняется.

Для отладки первой версии интерпретатора было разработано текстовое представление икон и схемы типа «Примитив». На рисунке 1 показана дракон-схема и её текстовое представление.

[[File:laptev-img001-oseduconf2021.png|thumb||800px|center|alt=Дракон-схема и её текстовое представление|Дракон-схема и её текстовое представление]]

===  Текущее состояние проекта  ===

Первоначальная версия интерпретатора разрабатывалась на языке С++ с использованием библиотеки Qt. Однако в результате более глубокого анализа функционала разрабатываемой среды было принято решение переписать интерпретатор на языке программирования Dart с использованием Flutter SDK. В настоящее время первая версия интерпретатора полностью реализована.

На этом же инструментарии в настоящее время выполняется разработка специализированного графического редактора (см. рис. 1), а также конвертера в учебный язык программирования Slang. Рассматривается разработка конвертеров в промышленные языки программирования, в частности, в С++ и Оберон.

После завершения разработки первой версии среды исходный код будет размещён на github.
{{----}}
[[File:{{#setmainimage:Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

{{fblink|2960996094153392}}                                          
<references/>
{{stats|disqus_comments=0|refresh_time=2021-08-31T16:19:09.813953|vimeo_plays=4|youtube_plays=0}}

[[Категория:OSEDUCONF-2021]]
[[Категория:Draft]]
[[Категория:СПО в образовании]]Open source visual programming]]

Версия 12:02, 6 октября 2021

Докладчик
Валерий Лаптев.jpg
Валерий Лаптев

Описывается разработка среды Drakon IDE, предназначенная для обучения алгоритмизации на графическом языке ДРАКОН. Сформулированы требования к среде, определён минимальный набор икон и разработан интерпретатор дракон-схем типа «Примитив». Разработка осуществляется на языке Dart.

Видео

Презентация

Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021).pdf

Thesis

На кафедре АСОИУ Астраханского технического университета возникла потребность в реализации специализированной интегрированной среды для обучения начинающих программистов алгоритмизации. В качестве визуального алгоритмического языка выбран язык ДРАКОН [1]. Этот язык был выбран по нескольким причинам. Во-первых, он близок к блок-схемам, с которыми знакомы почти все студенты, поступившие на ИТ-направления. Во-вторых, Дракон-схемы, в отличие от блок-схем, строятся по строгим правилам. В-третьих, ДРАКОН является российской разработкой.

Требования к интегрированной среде

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

  • работа с проектами;
  • работа со схемами;
  • накопление компонентов схем в библиотеке;
  • выполнение схемы;
  • конвертирование схемы в программу на языке программирования.

Проект может содержать одну или несколько схем. Типичные действия с проектами: создать проект, добавить/удалить схему, сохранить проект, открыть/закрыть проект.

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

Среда должна обеспечивать накопление библиотеки стандартных алгоритмов и элементов алгоритмов.

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

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

Интегрированная среда также должна иметь современный, наглядный и информативный пользовательский интерфейс.

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

Описание модели схемы

Для работы со схемами разработана модель. Каждой иконе в схеме соответствует объект-икона в модели, которая содержит полную информацию, необходимая для изображения, интерпретации и конвертации иконы. Все иконы, кроме иконы «Вопрос», имеют один вход и один выход. Икона «Вопрос» имеет один вход и два выхода.

Дракон-схемы бывают двух видов: схемы типа «примитив» и схемы типа «силуэт». Модель примитива представляет собой последовательность объектов-икон. Схема типа «силуэт» имеет ветки, которые делят схему на смысловые части. Модель ветки — это последовательность объектов-икон, а весь силуэт представляет собой последовательность веток (последовательность последовательностей икон).

Разработка интерпретатора Дракон-схем

Разработка среды началась с разработки первой версии интерпретатора. Был определён минимальный набор икон для интерпретации схем типа «Примитив»:

  • икона «Заголовок»;
  • икона «Действие»;
  • икона «Вопрос»;
  • икона «Полка»;
  • икона «Конец».

Для каждой иконы было определены допустимые операции в иконах.

Икона «Заголовок» обозначает начало алгоритма и является хранилищем переменных Дракон-схемы. Количество переменных может быть произвольным. Переменные могут иметь целочисленный, вещественный и логический типы. Вещественные и логические переменные задаются с типом, целые — без типа. Переменным присваивается начальное значение.

Иконы «Действие», «Вопрос» и «Полка» могут содержать только по одному выражению.

Икона «Действие» содержит выражение присваивания переменным Дракон-схемы некоторого значения. Преобразования типов не выполняется.

Икона «Вопрос» служит для сравнения значений двух переменных. Результатом операции сравнения является значение логического типа: истина (true, да, верно) или ложь (false, нет, неверно).

Икона «Полка» содержит выражение с арифметической операцией с двумя переменными. Результат вычисления операции присваивается переменной. Преобразования типов не выполняется.

Для отладки первой версии интерпретатора было разработано текстовое представление икон и схемы типа «Примитив». На рисунке 1 показана дракон-схема и её текстовое представление.

Дракон-схема и её текстовое представление
Дракон-схема и её текстовое представление

Текущее состояние проекта

Первоначальная версия интерпретатора разрабатывалась на языке С++ с использованием библиотеки Qt. Однако в результате более глубокого анализа функционала разрабатываемой среды было принято решение переписать интерпретатор на языке программирования Dart с использованием Flutter SDK. В настоящее время первая версия интерпретатора полностью реализована.

На этом же инструментарии в настоящее время выполняется разработка специализированного графического редактора (см. рис. 1), а также конвертера в учебный язык программирования Slang. Рассматривается разработка конвертеров в промышленные языки программирования, в частности, в С++ и Оберон.

После завершения разработки первой версии среды исходный код будет размещён на github.

Drakon IDE — среда для обучения алгоритмизации (Валерий Лаптев, OSEDUCONF-2021)!.jpg

Примечания и ссылки

Plays:4   Comments:0