Язык предметной области как компонент инструментальной среды для создания компьютерных симуляций в образовательных целях

И.Ю. Травкин1, науч. руководитель: В.П. Максимов2

1аспирант СахГУ,
2д.п.н., доцент

Ссылка для цитирования: Травкин И.Ю. Язык предметной области как компонент инструментальной среды для создания компьютерных симуляций в образовательных целях // Интернет-журнал СахГУ: «Наука, образование, общество», N2, 2010.

Постоянно расширяющиеся возможности цифровой техники в сочетании с богатейшим набором программных средств, имеющихся у разработчиков программного обеспечения в наши дни, потенциально позволяют реализовать симуляции и виртуальные миры с поражающей воображение глубиной детализации. Чтобы убедиться в этом, достаточно взглянуть на современные видеоигры, также относимые некоторыми исследователями к симуляциям (с технической точки зрения, видео игра есть симуляция) [1].

Несмотря на то, что современная цифровая техника доступна педагогам и учащимся, они не в состоянии использовать программные инструментальные среды, ориентированные на профессиональных разработчиков. Это, в свою очередь, приводит к тому, что растущий потенциал современных ИКТ задействован крайне незначительно и т.н. компьютерная революция все еще не свершилась [2].

Направленные на преодоление обозначенного противоречия исследования западных педагогов привели к введению таких понятий, как приложения с низким порогом освоения (low threshold applications) [3], использование которых не требует специальных навыков.

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

Ядром любой профессиональной интегрированной среды разработки (integrated development environment, IDE) является язык программирования общего назначения. Инструментарий подобных сред ориентирован на повышение выразительности языка, облегчение реализации, осуществление работы в рамках принятых методологий разработки.

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

Ямамия (Yamamiya) и пр. указывают на то, что язык программирования, помимо основного назначения, можно рассматривать еще и как способ обмена идеями между людьми: «особенно когда речь идет о науке или математике, язык программирования является наиболее точным способом представления идей» [4].

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

Наряду с языками программирования общего назначения в информатике также выделяют языки предметной области (domain specific language, DSL). Фаулер (Fowler) предлагает следующее простое определение языка предметной области: «урезанная форма языка программирования, созданная специально для решения определенного вида проблем» [5]. Он также отмечает ряд важных для нас достоинств, присущих языкам предметной области: «их можно писать так, как вам вздумается. Иначе говоря, вы можете выразить предметную область в самой простой и доступной для чтения и редактирования форме»; «в самих DSL заложена идея простоты и читабельности»; «они тесно связаны с предметной областью, и изучать их гораздо легче» [там же].

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

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

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

Рис. 1
Рис. 1.

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

Введем построчно следующей текст программы в окне нашего прототипа (для ввода программы используется светло-синее поле в верхнем левом углу окна):

x1 = 4
x2 = 7
p1 = 10
p2 = 100 - p1
M = ( x1 * p1 + x2 * p2 ) / 100
показать M
изменять p1

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

Программа интерпретируется построчно, по мере того, как мы ее вводим. Если обратить внимание на сам процесс ввода, то можно заметить, что текст программы становится интерактивным: каждый набор символов, означающий название некой величины, начертан курсивом и при щелчке мышью выводит интерактивный элемент, отображающий значение данной величины. Мы воспользуемся данным приемом, чтобы вывести значения x1, x2, p1, p2, а затем расположить полученные интерактивные элементы так, как это показано на Рис. 1.

Теперь нам достаточно начать двигать «ползунок», отвечающий за изменение значения величины p1, чтобы, увеличивая таким образом последнее, продемонстрировать смещение значения математического ожидания («центра масс») M от более близкого и изначально обладавшего большей долей вероятности («весом») x2, в сторону x1.

Наконец, переместив ползунок в положение 100, мы «отберем» всю долю вероятности у значения x2, сделав его невозможным («невесомым») и сместив тем самым математическое ожидание («центр масс») в значение x1. Случайная величина при этом обратится в константу, принимающую всегда одно и то же значение; уместно будет вспомнить об этом предельном случае, говоря впоследствии о свойстве математического ожидания константы: M (C) = C.

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

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

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

Литература

  1. Becker K., Parker J. R. A Simulation Primer // Digital Simulations for Improving Education, Chapter 1 / Information Science Reference, IGI Global, США, 2009, с. 1-24.
  2. Kay A. The Real Computer Revolution Hasn’t Happened Yet (VPRI Memo M-2007-007-a) [Электронный ресурс] / Viewpoints Research Institute, 2007. Систем. требования: Adobe Acrobat Reader. URL: http://www.vpri.org/pdf/m2007007a_revolution.pdf (дата обращения: 14.02.2010).
  3. Albion P.R. Virtual Spaces for Teaching and Learning // Digital Simulations for Improving Education, Chapter 3 / Information Science Reference, IGI Global, США, 2009, с. 52-67.
  4. Yamamiya T., Warth A., Kaehler T. Active Essays on the Web (VPRI Technical Report TR-2009-002) [Электронный ресурс] / Viewpoints Research Institute, 2009. Систем. требования: Adobe Acrobat Reader. URL: http://www.vpri.org/pdf/tr2009002_active_essays.pdf (дата обращения: 14.02.2010).
  5. Фаулер М. Языковой инструментарий: новая жизнь языков предметной области [Электронный ресурс] / MAXKIR.com, 2005. URL: http://www.martinfowler.com/articles/languageWorkbench.html (дата обращения: 21.03.2010).