Научная статья на тему 'Использование визуализации при обучении программированию'

Использование визуализации при обучении программированию Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
589
64
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Озерова Галина Павловна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Использование визуализации при обучении программированию»

Использование визуализации при обучении программированию

Г.П. Озерова, Дальневосточный федеральный университет,

доцент, gal_o@bk

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

Проникновение информационных технологий во все сферы деятельности человека привело в настоящее время к повышению спроса на специалистов - программистов, от квалификации которых зависит все больше и больше количество людей. По данным аналитического отчета «ИТ-кадры 2010. Численность занятых в российской экономике 2009 г. и прогноз потребности на 2010-2015»[2] процент людей, занятых в ИТ отрасли в 2011 году составит 4,5% людей от работающей части населения (что в 3 раза больше показателя 2009 года), в 2012-2015 годах эти цифры продолжат расти. Структурные изменения рынка в сторону секторов ИТ-услуг и программного обеспечения повысят востребованность специалистов по разработке и внедрению программного обеспечения. Аналогичные процессы наблюдаются в большинстве стран мира, например в 2012 г. в США к претендентам на 30% новых и 8% всех рабочих мест будет предъявляться требование владения навыками программирования.

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

Однако у большинства школьников и студентов, приступающих к изучению алгоритмизации и программирования, возникают определенные трудности. Это подтверждают данные аналитического отчета Федерального Института Педагогических Измерений о сдаче ЕГЭ по информатике и ИКТ [4] в 2011 году, в котором отмечается, что «продол-

жает оставаться проблемой раздел, связанный с программированием». Средний процент выполнения задания, проверяющего «умение создавать собственные программы (30-50 строк) для решения задач средней сложности» составил всего 5,1%. О проблемах с усвоением модуля «Алгоритмические языки и программирование» предмета «Информатика» студентами непрограммистских специальностей свидетельствуют результаты Интернет-экзамена в сфере профессионального образования ФЭПО.

Модель обучения программированию

По мнению многих авторов основная проблема состоит в том, что обучение программированию сводится к изучению отельного языка (Pascal, Basic, C, C#), а иногда и среды разработки(Delphi, Microsoft Visual Studio, SharpDevelop). Хотя задачи начального обучения должны быть связаны, прежде всего, с выработкой логического, алгоритмического мышления. Необходимо сформировать множество новых понятий, таких, например, как переменные и типы данных. Необходимо научить «придумать» алгоритм и описать его средствами управляющих структур (выбора, цикла, ветвления). Требуется знание основ представления данных и классических алгоритмов. Простое изучение синтаксиса и семантики некоторого языка совершенно недостаточно.

Одной из удачных технологий формирования алгоритмического мышления является использование на начальном этапе обучения визуальных игровых сред, таких как LOGO, Alke, Squeak, SCTateh. В этих средах обучаемый работает не с абстрактными представлениями, а с некоторыми визуальными образами, которые формируют понятия той модели программирования, на которую они ориентированы. Например, предложенная в Alke концепция обучения представляет собой погружение в мир объектно-ориентированного программирования без каких-либо существенных упрощений этой парадигмы.

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

Последовательность реализации этапов обучения показана на рисунке 1. На первом этапе используются наглядные визуальные образы, а на всех остальных обучаемый оперирует терминами абстрактных понятий: типов данных, конструкций, объектов или вызовов функций в зависимости от парадигмы программирования. Причем эти абстрактные понятия никаким образом не соотносятся с визуальными образами первого

этапа, поскольку они реализуются различными программными системами: визуальной средой и средой программирования.

Рис. 1. Этапы процесса обучения программированию

Визуальные системы

В 80-х годах прошлого века началось развитие визуальных языков программирования. «Визуальный язык программирования - это язык, который использует некоторые визуальные представления (в добавление или вместо слов и чисел) для обеспечения того, что в противном случае было бы выражено в традиционной форме»[5]. Были предприняты попытки создать визуальные нотации для описания всех программных конструкций, типов данных и пр. Однако ни один подобный язык не получил серьезного распространения. Определенным успехом пользуются только специализированные языки, которые позволяют создавать конкретные объекты, и тем самым программировать процессы, например сборку электрических схем.

Системы типа LOGO, АИсе, Squeak как раз и реализуют специализированные визуальные языки, ориентированные на обучение программированию. Они используют игровые технологий, позволяют представлять информацию в наглядном и понятном виде, имеют удобные средства взаимодействия пользователя со средой, не требуют специальных навыков для их применения. С их помощью можно организовать обучение так, чтобы изучение программистских абстракций являлось не самоцелью, а было бы «побочным эффектом» достижения содержательной цели: моделирования физического процесса, создания компьютерной игры и пр.

Однако в современных условиях невозможно ограничится только изучением конкретного языка и среды программирования. Необходимо

изучение концепций различных парадигм программирование] (императивного, объектно-ориентированного, функционального), освоение классических алгоритмов и технологий программирования.

Среда визуального обучения программированию

По нашему мнению, для успешного формирования алгоритмического мышления и основных понятий и приемов программирования необходима некоторая среда визуального обучения программированию (СВОП), которая объединит в себе технологии, используемые как в визуальных системах, так и в интегрированных средах программирования, и распространит их на процесс обучения. Такая система позволит обучаемому соотнести абстрактные структуры данных, объекты, конструкции программирования с некоторыми ассоциативными визуальными образами, создаваемыми одновременно с написанием программы. Причем технология визуализации в среде должна быть реализована для всех стандартных этапов разработки программы.

Рис. 2. Организация работы в СВОП

Организация работы пользователя в СВОП приведена на рисунке 2. Предложенный подход можно использовать для любой парадигмы программирования и любого языка начального обучения.

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

Технология визуализации

Технология визуализации, используемая в системе, построена на идее соотнесения сущностей программы и визуальных объектов, то есть на метафоре визуализации[1]. Метафора - описание, в частности некоторый геометрический образ, формирующий понятие о новом объекте или явлении через установление сходства с уже известным. И при ее выборе необходимо учитывать следующие аспекты:

• синтаксическую и семантическую нотацию языка;

• прагматику языка;

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

Для СВОП формирование метафоры осуществлялось по схеме:

- выбор визуализируемого аспекта программы;

- выбор графической модели;

- выбор соответствия между программой и графикой, одновременно определяющего поведение графической модели;

- определение набора действий для взаимодействия пользователя с графической моделью.

Рассмотрим процесс выбора метафоры на примере понятия «переменной» в императивном программировании (таблица 1).

Синтаксис и семантика. Каждая переменная имеет имя и тип, простой или структурированный. Переменная простого типа хранит только одно значение определенного типа. Переменная структурированного типа (массив, запись и пр.) имеет имя, состоит из нескольких элементов возможно различных типов, к каждому из которых можно обратиться, например, по индексу к элементу массива.

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

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

Табл. 1. Выбор метафоры «переменная»

Графическая модель Для визуализации переменных скалярного типа используется образ шарика, имеющего разный цвет и размеры в зависимости от типа данных, имя переменной показывается в виде флага, ее значение рисуется на шарике. Для переменных структурированного типа выбран образ различных связанных конструкций (рис 3).

Поведение графической модели Переменная создается и отображается на экране после успешной трансляции. При исполнении программы, если переменная «отдает» свое значение, она сначала разделяется на две, затем «клонированное» значение перемещается к месту вычисления выражения (используется модель равноускоренного движения под действием силы тяжести). Занесение нового значения реализовано аналогично, только после перемещения новое значение замещает старое значение переменной.

Управление пользователем Перемещение модели по экрану, изменение положения элементов структурированного типа с сохранением связности, а при необходимости - упорядоченности.

тах, тт :

prod : record

num : integer;

a : array ■

[1..5] of real;

Рис. 3. Метафоры представления переменных В СВОП разработаны и реализованы метафоры переменных, выражений, основных конструкций, функций и их вызовов.

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

Заключение

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

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

Литература

1. Авербух В.Л. К теории компьютерной визуализации. //Вычислительные технологии Т. 10, N 4, 2005.- С. 21-51.

2. Буров В. ИТ-кадры 2010. Численность занятых в российской экономике 2009 г. и прогноз потребности 2010-2015. [Электронный ресурс]: аналитический отчет/ Аналитический центр REAL-IT — Электронные данные — М.: АП КИТ, 2009 — Режим доступа: www.apkit.ru, свободный. — Загл. с экрана.

3. Флойд Р. Парадигмы программирования. //Лекции лауреатов премии Тьюринга за первые двадцать лет 1966-1985. — М.: Мир, 1993.— С. 86-98.

4. Федеральный институт педагогических измерений [Электронный ресурс]: Аналитический отчет по результатам ЕГЭ 2010 г. — Электронные данные — М.: ФИПИ, [2004-2011] — Режим доступа: http://fipi.ru, свободный.

5. Shu N.C. Visual Programming Languages: A Perspective and Dimension Analysis // Visual Languages. New York. Plenum Publishing Corporation. 1986. pp. 1134.

i Надоели баннеры? Вы всегда можете отключить рекламу.