ВИЗУАЛИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ В ПРОГРАММНОЙ СРЕДЕ SCRATCH 2.0 (НАЧАЛЬНЫЙ УРОВЕНЬ)

Статья опубликована в рамках: Международной научно-практической интернет-конференции «Актуальные проблемы методики обучения информатике в современной школе» (Россия, г.Москва, МПГУ, 24-26 апреля 2018г.)

ВИЗУАЛИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ В ПРОГРАММНОЙ СРЕДЕ SCRATCH 2.0 (НАЧАЛЬНЫЙ УРОВЕНЬ)

Босова Анна Юрьевна
директор
“Учебно-методического центра”
Россия, г.Истра
e-mail: abosova@gmail.com

Аквилянов Никита Александрович
учитель информатики
МОУ «СОШ имени А.П.Чехова»
Россия, г.Истра
e-mail: akvilianov@gmail.com

Аннотация

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

Ключевые слова: параллельное программирование, параллельный  алгоритм, вычислительный процесс, Scratch.

В последние годы среда программирования Scratch находит все более широкое применение в работе с младшими школьниками [3], на её основе разрабатываются разнообразные проекты, проводятся олимпиады [4]. При этом хорошо известные классы задач из школьной алгоритмики [1], выполняемые в Scratch, приобретают новые качества, обогащающие учебный процесс.

Рассмотрим в качестве примера Директора строительства (ДС)  – исполнителя, с помощью которого еще в конце прошлого века в курсе алгоритмики осуществлялось знакомство младших школьников с параллельными алгоритмами [1]. Исполнитель ДС руководит работой нескольких строительных бригад, возводящих здание из блоков (рис. 1).

Рис. 1. Эскиз здания из блоков

Всякий блок независимо от формы и размера может быть установлен одной бригадой за один день. Две бригады не могут устанавливать один и тот же блок. Установка блока может начаться только после того, как установлены все блоки, на которые он опирается. За сколько дней можно возвести это здание, если в распоряжении ДС имеется три бригады строителей?

На первом этапе надо предложить каждому из учеников попробовать себя на месте ДС и попытаться разработать алгоритм – план слаженных действий бригад по постройке здания. Для этого можно предложить ученикам заполнить следующую таблицу [2]:

Бригада 1 Бригада 2 Бригада 3
День 1 установи ( ) установи ( ) установи ( )
День 2 установи ( ) установи ( ) установи ( )

Возможный вариант решения этой задачи представлен ниже:

Бригада 1 Бригада 2 Бригада 3
День 1 установи (5) установи (2) установи (1)
День 2 установи (6) установи (4) установи (3)
День 3 установи (7) установи (8)
День 4 установи (9)
День 3 установи (10)

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

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

1 – область выполняемых действий 3 – область командных блоков 5 – рабочая область
4 — область команд
2 – область исполнителей (сцена, спрайты);

Рис.2. Схема окна среды Scratch

Приступим к визуализации алгоритма строительства, для этого создадим новый файл и выберем объект Сцена (область 2). На вкладке Фоны (область 3) установим новый фон для сцены, нажав на кнопку «Выбрать фон из библиотеки»;  выберем фон с крупной клеткой (xy-grid-30px). Такой выбор в дальнейшем облегчит задачу по созданию блоков. Теперь у нас на вкладке Фоны изображено два фона; белый фон можно удалить, нажав на него правой кнопкой мыши и выбрав соответствующую команду из контекстного меню. В центре клетчатого фона видны две пересекающиеся линии – это оси координат X и Y с диапазоном [-240; 240] и [-180; 180] соответственно.Рис.2. Схема окна среды Scratch

Изобразим на клетчатом поле эскиз здания. Нарисует его Спрайт (область 2). После выбора объекта Спрайт на клетчатом фоне появится рыжий кот – поменяем его костюм (область 3, вкладка Костюмы), выбрав из библиотеки более естественное для решения поставленной задачи изображение карандаша (pencil-a); изображение кота удалим. Доработаем костюм  Карандаш, перекрасив его грифель в зеленый цвет с помощью инструмента «Окрасить форму» (панель инструментов в области 5) и поменяв  центр костюма с помощью инструмента «Установить центр Костюма». Таким образом, центром Карандаша становится кончик  грифеля, что очень удобно для рисования (рис. 3). С помощью инструмента  «Выбрать» можно изменить размер и положение Карандаша.

Рис.3. Результат преобразования костюма

Эскиз здания, который нам предстоит изобразить, представляет собой  пирамиду из десяти одинаковых прямоугольников (рис.1). Рассмотрим несколько способов их изображения.

Способ 1. Соберем в области 5 для исполнителя (спрайта) Карандаша программу (скрипт) для изображения одного прямоугольника с длинами сторон, равными 90 и 60 единицам (рис.4). Это можно сделать разными способами. Два из этих способов приведены на рисунке 4.

Рис.4. Варианты программы для изображения прямоугольника.

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

Способ 2. Создадим новый костюм спрайта в виде прямоугольника средствами векторного графического редактора, встроенного в Scratch. Нам понадобятся инструменты «Прямоугольник», «Палитра красок» и «Ширина линии» (рис.5).

Рис.5. Создание новых костюмов в графическом редакторе

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

После подготовки всех костюмов необходимо перейти на вкладку Скрипты и собрать программу, «расставляющую» костюмы в определенных местах Сцены. Часть требуемой программы приведена на рисунке 6.

Рис. 6. Фрагмент программы для изображения эскиза здания

Итак, эскиз здания готов. Изобразим рядом с ним интерактивную кнопку, с помощью которой можно будет отдать приказ о начале возведения здания. Ее может создать тот же спрайт, с помощью которого был создан эскиз здания. Для этого создадим ему еще два дополнительных костюма – прямоугольник с надписью  START (старт1) и такой же прямоугольник, но без надписи (старт2). Такие костюмы можно создать  в векторном режиме встроенного графического редактора с помощью инструментов «Прямоугольник», «Текст» и «Окрасить форму» (рис.7).

Рис. 7. Создание костюма интерактивной кнопки

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

Рис.8. Фрагмент программы для интерактивной кнопки

В этой программе сначала задается месторасположение кнопки, далее с помощью блоков из категорий «Управление» и «Внешность» создается эффект мигания кнопки; кнопка будет мигать, пока ее не «коснется» указатель мышки (блок из категории «Сенсор»). В самом конце программы добавлено еще два блока: 1) блок из категории «Данные» позволяет создавать переменные; 2) блок из категории «События» – передавать и получать сообщения. Эти блоки позволят нам реализовать счетчик дней.

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

В области «Спрайты» нарисуем новый спрайт «Строитель 1» и создадим костюм «строитель1». Для этого применим один раз инструмент «Прямоугольник» и дважды инструмент «Эллипс», после чего воспользуемся инструментом «Изменение формы», позволяющим изменять фигуру до неузнаваемости (рис.9).

Рис. 9. Создание костюма «строитель1»

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

Рис. 10. Внешний вид «построенного» блока здания

Действия каждого из строителей будут заключаться в том, чтобы в соответствии с планом подойти к нужному блоку на эскизе и превратить его в блок здания. Так, в соответствии с разработанным нами планом исполнитель «Строитель 1» должен возвести блоки 5, 6, 7, 9 и 10. На рисунке 11 показан фрагмент программы для этого исполнителя: сначала он занимает исходное положение в правом нижнем углу области выполняемых действий, затем подходит к блоку 5 и «строит» его.  Здесь же мы увеличиваем счетчик дней на 1 и передаем информацию о начале следующего дня. Полная программа действий исполнителя «Строитель 1» включает аналогичные блоки для третьего и четвертого дней строительства.

 

Рис.11. Фрагменты программы действий исполнителя «Строитель 1»

Проверяем, как работает программа. Если исполнитель «Строитель 1» выполняют все в полном соответствии с планом, то в области спрайтов можно создать два его дубля – исполнителей «Строитель 2» и «Строитель 3». На вкладке Скрипты для каждого из новых спрайтов следует удалить лишние блоки и изменить координаты в соответствии с планом действий.

На рисунке 12  представлен результат с успешно завершенной работы.

Рис. 12. Результат работы программы

Полностью готовый проект доступен  по ссылке https://scratch.mit.edu/projects/181914382/. Аналогичные авторские работы доступны по ссылкам: https://scratch.mit.edu/projects/176362257/  и https://scratch.mit.edu/projects/141334682/. Возможности Scratch позволяют каждому желающему скопировать себе весь проект целиком и модернизировать его на любом уровне (в графическом, программном и/или звуковом редакторе).

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

ЛИТЕРАТУРА:

  1. Алгоритмика: учеб. пособие/А. К. Звонкин, С. К. Ландо, А. Л. Семенов, А. Х. Шень. М.: Институт новых технологий образования, 1994.
  2. Босова Л.Л. Параллельные алгоритмы в начальной и основной школе // Информатика в школе. 2015. № 2 (105). С. 24-27.
  3. Босова Л.Л., Сорокина Т.Е. Методика применения интерактивных сред для обучения младших школьников программированию // Информатика и образование. 2014. № 7 (256). С. 61-68.
  4. Иванова Н. Г., Плаксин М. А., Русакова О. Л. Конкурс «ТРИЗформашка» как площадка для апробации заданий на параллельное программирование//Информатика в школе: прошлое, настоящее и будущее: Материалы Всеросс. научн.-метод. конф. по вопросам применения ИКТ в образовании, 6-7 февраля 2014 г.; Перм. гос. нац. исслед. ун-т. Пермь, 2014.

Отправить ответ

Уведомить о
avatar
Sort by:   newest | oldest | most voted
Татьяна
Уважаемые Анна Юрьевна и Никита Александрович, спасибо за разработанный Вами материал! Актуальность рассматриваемой темы организации параллельных вычислений и процессов в обучении обусловлена современным уровнем развития технологий, а визуализация параллельных процессов, безусловно, будет способствовать лучшему восприятию представленной информации. Для правильного выбранного примера визуализации параллельных процессов «Директор строительства» Вы удачно предложили использовать программную среду Scratch с интуитивно понятным интерфейсом. Среда Scratch понятна детям, вызывает положительные эмоции, что мотивирует к учению. Богатство предлагаемых инструментов благоприятствует развитию не только алгоритмических способностей, но и творческого подхода к поставленной задаче. Согласна, что в этом случае известные задачи «приобретают новые качества, обогащающие учебный процесс». Хочется отметить и… Read more »
wpDiscuz