Диссертация (1148272), страница 29
Текст из файла (страница 29)
Вместе с тем, предметная область достаточноузка, чтобы можно было получить заметные выгоды от использования предметноориентированного языка: на языке общего назначения программирование велосьбы путём вызова функций API1 робота, для чего требовалось бы писать довольномного вспомогательного кода, например, объявления функций. Кроме того, прииспользовании визуального языка невозможно совершить некоторые ошибки,типичные для текстовых языков, например, невозможно ошибиться в написанииимени вызываемой функции, если достаточно просто перетащить соответствующий ей блок из палитры.A.1.3. Существующие среды визуального программированияроботовКак уже отмечалось, визуальное программирование весьма популярно средилюдей, работающих с конструкторами Mindstorms.
Анализ существующих средявляется естественным источником для формулировки требований к проекти1Application Program Interface, интерфейс прикладных программ151руемому DSM-решению, наряду с интервьюированием экспертов в предметнойобласти и потенциальных пользователей. Результаты анализа существующих средпредставлены ниже.Среда NXT-G поставляется вместе с конструктором Mindstorms NXT. Средабазируется на системе визуального программирования LabView [56], используемой для моделирования различных экспериментов. Среда LabView в качествеязыка программирования использует визуальный язык G, язык с процессом вычислений, ориентированным на данные — в нём связи между блоками обозначаютне последовательность выполнения операторов, а зависимости между блокамипо данным.
Основная проблема среды NXT-G заключается в отсутствии полноценной поддержки математических выражений. В языке присутствуют блоки дляарифметических действий, констант, переменных, и чтобы построить математическое выражение, их надо соединять связями. Таким образом, на диаграммеприходится рисовать фактически дерево разбора арифметического выражения,что делает программирование даже несложных задач, требующих математики,чрезвычайно утомительным.
В школьной программе такие задачи возникаютчасто, например, движение по линии или езда вдоль стены с помощью датчикарасстояния требует вычисления производной, поэтому NXT-G для преподаванияв школах практически не используется. Ещё одной особенностью этой среды,оказавшейся недостатком при преподавании в школах, стало то, что не всесвойства блоков видны на диаграмме, требуется кликнуть на блок и открыть егосвойства в редакторе свойств. Это делает невозможным показ всей программына проекторе, что затрудняет воспроизведение программы учениками.
У NXTG нет официальной русификации, отсутствуют встроенные средства отладкии генерации текстовой формы языка. Возможно добавление сторонних блоковсредствами LabView, сам NXT-G позволяет выделять фрагменты диаграмм вподпрограммы и использовать их с помощью специального блока.Среда Robolab [41, 86] также создавалась на основе среды LabView, и, в отличие от NXT-G, создавалась специально для преподавания. Примером специфичного для преподавания решения, принятого в среде Robolab, может послужить разделение возможностей среды на уровни. При запуске среды предлагается выбратьуровень, на котором будет вестись работа, на первых уровнях пользователь можеттолько заполнять пустые места в уже готовом шаблоне программы, используя152очень ограниченный набор блоков.
На более высоких уровнях предоставляетсявозможность самостоятельно задавать связи между блоками, доступно большеразличных видов блоков (например, на начальном уровне есть блок «ждать», наболее высоком — набор блоков «ждать 1 сек», «ждать 2 сек», «ждать 5 сек» ит.д., на ещё более высоком — «ждать N сек», где N является параметром блокаи может являться результатом вычисления. Такое разделение позволяет начатьработу со средой детям дошкольного возраста, которые не умеют ещё даже читать(картинки, используемые в блоках, достаточно понятны), при этом дети могутисследовать среду и разбираться в функциональности более высоких уровнейпостепенно, практически без помощи преподавателей.Математические выражения Robolab поддерживает гораздо лучше, чем NXTG, позволяя писать произвольные выражения в виде текста, используя тригонометрические функции и переменные, обращаться к значениям, возвращаемым датчиками, прямо из выражений.
Циклы в Robolab реализованы довольнонеобычно — есть блоки «начало цикла» и «конец цикла», связь между концоми началом никак не визуализируется. Есть довольно развитая поддержка параллельных задач, есть все необходимые конструкции императивного программирования, включая подпрограммы. Русифицирована среда лишь частично, не имеетвстроенных средств отладки, не может порождать код программы в текстовомвиде, имеет довольно несовременный пользовательский интерфейс, при этом небесплатна, и стоит довольно дорого для российских школ. При этом, несмотряна все перечисленные недостатки, эта среда вполне подходит для иллюстрацииматериала информатики и кибернетики примерно до 7-го класса школы, и сейчасявляется самой распространённой в школах России.Среда Microsoft Robotics Developer Studio (MRDS) [51], в отличие от рассмотренных ранее сред, не создавалась исключительно для конструктора MindstormsNXT.
Среда предназначена для создания сложных многопоточных приложенийс реактивной моделью поведения, которые весьма типичны для задач робототехники — современная робототехническая система представляет собой целыйкомплекс вычислительных средств, часть из которых может быть установлена нароботе, а часть — на компьютере, связанном с роботом скоростной сетью.
Крометого, необходимость в высокопроизводительных распределённых программныхсистемах возникает не только в робототехнике, поэтому среда MRDS применяется153и в других областях, например, с её помощью разрабатывались серверныечасти крупных веб-приложений2 . Программа в MRDS представляется в виденабора веб-сервисов, исполняемых независимо и обменивающихся даннымидруг с другом. Процесс программирования сводится к связыванию входов ивыходов предопределённых сервисов, что осуществляется на визуальном языкеVPL (Visual Programming Language) [52]. Этот язык, таким образом, попадает вкатегорию языков с процессом управления, ориентированным на данные, чемочень похож на визуальные языки систем, рассмотренных выше. Среда имеетразвитую трехмерную среду симуляции, позволяя исполнять созданные программы не только на реальном роботе, но и на трёхмерной модели в окружениис подробной симуляцией физики (например, в стандартной поставке имеетсяподробная трёхмерная модель квартиры, по которой может перемещаться робот).Среда поддерживает генерацию кода на языке C#, отладку, распространяетсябесплатно.Несмотря на всё это, среда MRDS очень редко используется в школах для преподавания информатики.
Связано это прежде всего с используемой там модельювычислений. Представлять программу в виде взаимодействующих независимоисполняющихся веб-сервисов удобно профессиональным программистам, ношкольникам, впервые пробующим программировать, потребуется знать и уметьслишком многое, чтобы писать содержательные программы. К тому же, такойподход к программированию слишком специфичен и не может быть использованв качестве иллюстративного материала для «обычного» императивного программирования, знание которого будет необходимо школьникам в дальнейшем.Кроме того, генерируемый средой код не может быть исполнен непосредственнона роботе Mindstorms NXT — он имеет слишком мало ресурсов для этого,робот может управляться только дистанционно по интерфейсу Bluetooth.
СредаMRDS ориентирована на более дорогие устройства, в частности, «стандартнаямодель» робота, рекомендуемая для использования в MRDS включает в себяноутбук в качестве блока управления, который один дороже всего конструктораMindstorms NXT. Использование модели робота позволяет решить эту проблемутолько частично — модель, даже с детальной реализацией физических эффектов,2Часть MRDS — Concurrency and Coordination Runtime — использовалась сайтом MySpace, URL:http://www.infoq.com/news/2009/10/CCR-MySpace (дата обращения: 07.02.2015)154не позволяет воспроизвести всё многообразие реального мира, из-за которого,собственно, и возникают проблемы, которые решаются в кибернетике.A.1.4. Требования к DSM-решениюПо результатам анализа существующих сред и общения с экспертами предметной области (преподавателями и методистами, использующими робототехнические конструкторы в своей работе) были сформированы следующие требованияк проектируемому DSM-решению.1.
Среда должна позволять создавать довольно сложные программы, поскольку предполагается, что она будет служить для иллюстрации нетривиальныхвопросов информатики и кибернетики, при этом её язык должен оставатьсяблизким к «традиционным» императивным языкам программирования.Среда должна удобно поддерживать нетривиальные математические выражения, переменные, ветвления, циклы, параллельные задачи.2. Среда должна быть проста и удобна в работе, поскольку неудобныйпользовательский интерфейс создавал бы дополнительную когнитивнуюнагрузку при изучении и без того сложного материала. Среда должнабыть интуитивно понятна, работа со средой должна быть возможна приминимальном участии преподавателя.3.