Читать онлайн Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch бесплатно

Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Введение

Описание Snap!

Snap! – блочная среда программирования, разработанная на основе Scratch в Калифорнийском университете в Беркли (University of California at Berkeley).

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

Рис.0 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Пример создания цикла for.

Рис.1 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Созданный блок for можно использовать наравне с любым встроенным блоком.

Рис.2 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Алонзо досчитает до пяти, а затем скажет: «Я иду тебя искать!»

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

Разработчики Snap!

Snap! был разработан Дженсом Монигом (Jens Mönig at MioSoft Corporation, now at SAP), совместно с Брайаном Харви (Brian Harvey at Berkeley), при помощи студентов Калифорнийского университета в Беркли.

Основные отличия от Scratch

Типы данных.

Основным отличием Snap! от Scratch являются типы данных первого класса.

Объектами первого класса называются элементы, которые могут быть присвоены переменной или элементу массива, переданы как параметр и возвращены из функции. Благодаря этому в Snap! появилась возможность создавать двумерные массивы.

Рис.3 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Создание двумерного массива.

Рис.4 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Двумерный массив.

Также в Snap! в отличие от Scratch функции являются объектами первого класса. Это позволяет передавать функцию как аргумент в другую функцию. В следующем примере мы передаем функции map как аргумент функцию умножить на 10, и функция map производит это действие со всем списком, переданным ей в качестве второго аргумента.

Рис.5 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Пример использования функции.

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

Рис.6 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Спрайт – объект первого класса.

А вот такое возможно в Scratch?

Рис.7 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Один спрайт «думает» о другом спрайте.

Эти особенности Snap! позволяют познакомить учащихся с функциональным программированием в отличие от Scratch, который используется для знакомства с императивным программированием.

Медиаредакторы.

Графический редактор Snap! не является его сильной стороной и уступает по функционалу Scratch 2.0 и даже Scratch 1.4. В нем отсутствует векторный редактор, а в растровом отсутствует масштабирование, выделение, штамп и поворот.

Редактор звука в Snap! отсутствует полностью.

Я рекомендую импортировать в Snap! изображения и звуки, подготовленные во внешних онлайн реакторах, а в редакторе изображений лишь немного корректировать загруженные изображения.

Совместимость

Совместимость с браузерами.

Snap! может работать в следующих браузерах:

– Chrome, версия не ниже 43 (это рекомендуемый браузер для работы в среде Snap!)

– Safari версия не ниже 8.4;

– Firefox версия не ниже 38;

– Edge версия не ниже 12;

– Opera версия не ниже 32.

Совместимость со Scratch.

Проекты, созданные в Scratch, могут быть импортированы в Snap! с помощью следующего онлайн сервиса http://djdolphin.github.io/Snapin8r2/.

Проекты, созданные на Snap! могут быть сохранены в формате XML, а затем преобразованы в исполняемый EXE файл с помощью онлайн сервиса расположенного по адресу http://snapp.citilab.eu/.

Совместимость с внешними устройствами.

Snap! может быть использован со следующими внешними устройствами, подключаемыми к компьютеру:

– Orbotix Sphero;

– Lego NXT;

– Nintendo Wiimote;

– Finch and Hummingbird robots;

– Parallax S2 robot;

– LEAP Motion;

– Speech synthesis by Connor Hudson;

– Arduino;

– Fischertechnik ROBOTICS TXT Controller;

– Raspberry Pi.

Основные понятия

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

Рис.8 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

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

Например, один скрипт перемещает спрайт, второй проигрывает звук, а третий изменяет его размер.

Рис.9 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Все три скрипта выполняются одновременно.

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

Рис.10 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Пример использования овального блока.

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

Рис.11 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Пример использования предиката.

Об авторе

Голиков Денис Владимирович.

Окончил МЭИ по специальности промышленная электроника. Автор нескольких учебников по программированию на Scratch.

Сайт scratch4russia.com

Facebook https://www.facebook.com/ScratchBook4u

Страница книг https://www.facebook.com/scratch4you/

Вконтакте https://vk.com/scratch.book

e-mail [email protected]

Источники

При создании книги были использованы материалы следующих сайтов:

http://snap.berkeley.edu

http://progopedia.ru/implementation/snap/

http://scratch4russia.com/

Знакомство с интерфейсом Snap!

Запуск Snap!

Перейдите на сайт http://snap.berkeley.edu/, запустите Snap!

Рис.12 Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch

Кнопка запуска Snap!

Продолжить чтение