В работе представлен сравнительный анализ по двум блокам: TRIK Studio Scratch. Работа будет актуальная для преподавателей роботехники в школах
Вложение | Размер |
---|---|
dlya_sayta.docx | 23.34 КБ |
Сравнительный анализ по двум блокам: TRIK Studio Scratch
Ефимов А.А., группа 2ом-РобПредДиз/20, a.efimov@petrocollege.ru, 8-911-14-56-77
Для дошкольного и начального образования существует не столь большое количество средств программирования роботов, большинство из существующих появились в 2010-х годах, и постоянно появляются новые, к примеру, проект Root от Гарвардского Университета, упоминания о котором начали появляться в 2016 году (на момент написания статьи проект не столь популярен и поэтому подробно не рассмотрен). Однако даже несмотря на немногочисленность имеющихся решений, среди них уже существуют инструменты, качество которых, по мнению авторов, находится на удовлетворительном уровне.
Совсем другая ситуация с инструментами, применяющимися для среднего образования. Разброс довольно велик - от больших и сложных коммерческих инструментов, таких как LabVIEW и MRDS, до сред программирования конкретных робототехнических платформ, предоставляющих «минимальную» функциональность (редактор диаграмм + возможность запуска на роботе). «Продвинутые» функции, такие как генерация читаемого текстового кода по диаграмме, возможность симуляции на виртуальном устройстве или встроенная автоматическая проверка ограничений, практически не встречаются в популярных на сегодняшний день средах, а если такие функции и реализованы, то не все сразу. К тому же продукты, предлагающие такую функциональность, являются коммерческими, и многие учебные заведения попросту не могут себе их позволить (не говоря об индивидуальном использовании). Более того, не существует единого решения, которое охватывало бы все популярные робототехнические образовательные платформы. Все это говорит о необходимости создания нового решения, которое бы учитывало все эти неудобства.
Среда TRIK Studio является попыткой решения вышеописанных проблем. TRIK Studio позволяет визуально программировать различные робототехнические платформы. Программа в TRIK Studio составляется из блоков и стрелок, вместе описывающих поток управления программы. Исполнение начинается со специального начального блока и далее передается по стрелкам. Условие рисуется как развилка (две стрелки, отходящие от блока), бесконечный цикл - как связь назад, арифметический цикл — как набор блоков со связью назад и выходной стрелкой. Таким образом, поток управления программы наглядно визуализируется создаваемой диаграммой. Часть диаграммы может быть вынесена в подпрограмму для ее последующего переиспользования. Математические выражения, условия на развилках, значения свойств описываются на встроенном текстовом языке - Lua (точнее, его статически типизируемом диалекте).
Для облегчения рисования диаграммы среда может распознавать жесты мышью. К примеру, если пользователь правой кнопкой мыши в произвольном месте окна редактора нарисует стрелку вперед, появится блок включения моторов, если нарисует пиктограмму часов - появится блок ожидания, если провести линию от одного блока к другому, появится стрелка, их соединяющая, и т.д. Жесты распознаются довольно сложным алгоритмом, поэтому могут восприниматься системой и не будучи в точности соответствующими идеальным (которые показываются средой во всплывающих подсказках к блоку вместе со всей необходимой информацией о самом блоке).
На данный момент среда поддерживает программирование конструкторов Lego Mindstorms NXT, Lego Mindstorms EV3 и конструктора ТРИК. Для каждого конструктора среда предоставляет три режима работы с ним: режим интерпретации, режим автономного исполнения и режим отладки на симуляторе. В режиме интерпретации программа исполняется на компьютере с отправкой команд роботу по какому-либо низкоуровневому протоколу (USB и Bluetooth для NXT и EV3, Wi-Fi для ТРИК). Значения всех переменных во время интерпретации могут быть просмотрены в соответствующем окне, а также можно отслеживать графики показаний датчиков, строящиеся в реальном времени. В режиме автономного исполнения среда генерирует код, компилирует его, если целевой язык не скриптовый, загружает по низкоуровневому протоколу на робота и запускает его на исполнение, показывает его во встроенном текстовом редакторе. Код генерируется в читаемом виде, он может быть открыт и отредактирован во встроенном текстовом редакторе с подсветкой синтаксиса и автоматическим дополнением. Для одного конструктора TRIK Studio может поддерживать больше одного текстового языка. К примеру, в режиме ТРИК возможна генерация в JavaScript, F# и Pascal ABC.NET, в режиме NXT программа может быть сгенерирована в NXT OSEK C или русскоязычном школьном алгоритмическом языке (ШАЯ).
В третьем режиме, доступном для каждого из поддерживаемых конструкторов, режиме симуляции, программа будет выполнена на двумерной модели робота, открываемой внутри окна среды. Двумерный симулятор позволяет пользователю нарисовать произвольную модель мира, состоящую из стенок, регионов и цветных элементов, нарисованных на полу. К примеру, могут быть нарисованы все стандартные поля и полосы препятствий, используемые в спортивной робототехнике. Далее указывается, какие датчики подключены к роботу, их пространственное положение и ориентация. Программа затем может быть исполнена на нарисованной модели мира, при этом, так же как и в режиме интерпретации на реальном устройстве, можно отслеживать значения переменных и графики значений сенсоров. Для удобства отладки скорость течения времени в модельном мире может быть уменьшена или увеличена.
Наличие режима симуляции полезно не только для отладки. Возможность программирования виртуального робота может быть полезна образовательным учреждениям и индивидуальным пользователям, у которых по тем или иным причинам отсутствует реальный робот. К примеру, детям, у которых дома нет роботов, преподаватели могут выдавать домашнее задание, которое нужно решить для виртуального робота. Двумерный симулятор робота может рассматриваться как исполнитель. В частности, робот может рисовать на полу след траектории его перемещения (аналогично исполнителю «Чертежник»). В среде имеется возможность автоматической проверки заданий. Задание описывается на внутреннем языке ограничений и может быть сохранено особым образом для последующего его распространения между учениками. Авторы данной работы участвовали в разработке онлайн-курса на платформе Stepic , состоящего из более чем двадцати задач спортивной и образовательной робототехники. Каждая задача может быть решена на TRIK Studio или онлайн-среде и затем проверена средствами проверки ограничений TRIK Studio на локальном компьютере и удаленном сервере.
TRIK Studio бесплатна, исходный код открыт для всех желающих. Среда переведена на 3 языка (русский, английский, французский), имеется справочная система. Проект находится на стадии активного развития, версии выходят часто, в каждой из них появляется функциональность, добавляемая по пожеланиям педагогов. Таким образом, среда удовлетворяет практически всем предложенным в работе критериям.
Существуют три критерия, которым, однако, среда на данный момент не удовлетворяет или удовлетворяет не полностью. Один из самых главных недостатков - «бедность» методических материалов на русском и иностранных языках. Документация на данный момент ограничивается справкой, входящей в дистрибутив среды, и набором видео-уроков из упомянутого онлайн-курса. Другие два недостатка связаны с языком среды. Во-первых, несмотря на то, что основная часть работы по написанию программы выполняется мышкой в визуальном редакторе, детям все же необходимо учить элементы текстового языка. Это может быть рассмотрено и как преимущество (язык становится «ближе» к текстовым, что облегчает переход на них) и как недостаток (значительно повышается порог вхождения в среду). Наконец, на данный момент язык недостаточно выразителен для описания всех основных алгоритмических конструкций. Речь идет о рекурсии с параметрами — последняя на данный момент версия среды (3.1.3) не имеет возможности передачи параметров в подпрограмму. Тем не менее, проект быстро развивается, поэтому недостатки носят скорее временный характер. Авторы также надеются, что проблема с методическими материалами будет решена в результате тесного сотрудничества с педагогами.
Тенденция на повышение компьютерной грамотности и освоение технологий с самого раннего возраста привела к тому, что все больше родителей хотят обучать детей основам программирования с раннего возраста. Создание сайтов или своих проектов в привычных средах разработки вряд ли заинтересует 7-летнего ребенка, и для решения этой проблемы в 2003 году в MIT появился первый прототип языка Scratch, специально предназначенного для обучения школьников младших и средних классов основам создания собственных игр, анимаций и совместной работы над проектами.
Скретч создан как продолжение идей языка Лого и конструктора Лего. Скретч 1.4 был написан на языке Squeak, Скретч 2.0 и 3.0 ориентированы на работу онлайн. Скретч 2.0 был переписан на Flash и ActionScript. Скретч 3.0 (текущая версия) является улучшенной версией Скретч 2.0 и сделана на HTML5, используя движок WebGL, что даёт ему возможность работать на мобильных устройствах и планшетах. Скретч разрабатывается небольшой командой программистов для детей в Массачусетском технологическом институте. Текущая версия — Скретч 3.0, выпущена в январе 2019 года.
Среда Scratch - кроссплатформенная визуальная среда программирования с открытым исходным кодом, разрабатываемая в Массачусетском Технологическом Институте для обучения школьников основам информатики. Программирование осуществляется посредством соединения блоков, напоминающих элементы мозаики. Scratch позволяет нарисовать и запрограммировать простые графические объекты, называемые спрайтами.
Scratch — это визуальная объектно-ориентированная среда программирования. В ней ученики управляют объектами-спрайтами. Для них задается графическое представление, которое может быть импортировано из любого источника изображения, и скрипт действий, который составляется из блоков по принципу drag-and-drop. Эти блоки бывают нескольких видов:
Самое распространенное применение Scratch — это обучение детей программированию в форме создания мультфильмов или игр. Помимо этих применений, Scratch можно использовать для образовательных целей и создавать в программе иллюстративные материалы для уроков не только по программированию, но и по истории, биологии, физике и другим предметам. С версии 2.0 была добавлена функция звукового редактора, что расширяет возможности работы с разными видами данных.
В «чистом» виде Scratch не позволяет программировать роботов, однако существует большое количество расширений и сред на базе Scratch, позволяющих программировать роботы Lego WeDo, Lego NXT, Lego EV3 и Arduino. Среди таких «самостоятельных» проектов, созданных на базе Scratch, упомянем S4A и mBlock для программирования Arduino и Enchanting для программирования NXT, а также российский проект ScratchDuino. Общими для Scratch-подобных сред плюсами являются легкость в изучении, привлекательный пользовательский интерфейс, открытость и бесплатность, возможность отладки удаленного управления роботом с компьютера и загрузки кода для автономного исполнения (последнее доступно не во всех Scratch-системах). Существует также возможность исполнения программы на виртуальном спрайте, что может рассматриваться по нашим критериям как отладка на симуляторе (однако о приближенности такой симуляции к реальности речи не идет). Scratch русифицирован, в Интернете имеется множество примеров и обсуждений на тематических форумах.
К отрицательным сторонам отнесем отсутствие «продвинутых» средств обучения программированию. К примеру, отсутствует возможность генерации читаемого кода по визуальной модели, что могло бы значительно облегчить переход обучающихся на текстовые языки. Алгоритмические аспекты поддержаны не полностью, к примеру, отсутствует поддержка массивов размерности больше 1. Средства автоматической проверки корректности решения заданий также отсутствуют. Таким образом, Scratch хорошо подходит для изучения информатики и робототехники в младших и средних классах и хуже - для старшего возраста и «продвинутых» занятий.
Список литературы
Стрижонок Скрип. В.П. Астафьев
Как нарисовать китайскую розу
Камилл Фламмарион: "Астрономия - наука о живой Вселенной"
Зимняя сказка
Как я избавился от обидчивости