Scratch

Материал из Поле цифровой дидактики
Краткое описание языка Среда программирования, которая позволяет детям создавать собственные анимированные и интерактивные истории, игры и другие произведения. Этими произведениями можно обмениваться внутри международной среды, которая постепенно формируется в сети Интернет.

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

Компетенции в каких сферах формирует Knowledge Constructor, Innovative Designer, Computational Thinker, Creative Communicator, Global Collaborator
Парадигмы программирования Функциональное программирование, Императивное программирование, Объектно-ориентированное программирование
Возрастная категория 7
Назначение языка (Общее / Учебное) Мини-язык для обучения
Visual_Text_Blocks Блоки-Иконки
Измерение (2D/3D/Tangible) 2D
Область знаний
Открытость продукта Открытый
Address https://scratch.mit.edu
Предки (Ancestors) Squeak, Agentsheets, Лого
Потомки (Descendants) Snap!, GP, ScratchJR, App Inventor
Активность в данный момент Project is active
Доступны ремиксы? Да
Год создания 2006
Создатели Резник
Поясняющее видео
Используется для создания мобильных приложений? Нет
Scratch упоминается в свойствах следующих страниц
3D Wireframes, AAnosov, Additional Keys, Advanced Platformer Physics, Advanced Platformer Tutorial, AlekhinaAA, Arduino, Backpack, Black0mesa, BoboevaSN, Children Learning to Code, Codey Rocky, Creating a Quiz, Die Toten Engel, ElenaGrcaheva, Finch Robot, Flocking (model), Harvey, Heap, How to Keep Score in a Game, How to Make a Basic Platformer, How to Make a Basic Shooter, How to Make a Clicker Game, How to Make a Tower Defense Game, How to Move Sprites with the Arrow Keys, How to Move a Sprite in a Spiral, K-means, Karpov Alexandr, Kay, LEGO Boost, LEGO Mindstorms EV3, LEGO WeDo, Labyrinth, Lego Mindstorms, Lego Spike Prime, LoshankovAO, Milena.aslamazova, Minsky, Movement, Non-Euclidean Game Tutorial, NovikovPN, Object Attraction, Papert, Patarakin, Pathfinding, Remix, Removing an Item from a List (by value), Resnick, Robbo, Sergey031… следующие результаты


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

Mitchel Resnick рассказывает о Scratch

Участник:Patarakin рассказывает о Scratch на самосборе 2007 года


Введение (2007 год)

Может быть не всем в России знаком язык Лого и его агент-исполнитель Черепашка, но уж конструкторы Лего знают все. В среде скретч используется метафора кирпичиков Лего, из которых даже самые маленькие дети могут собрать простейшие конструкции. Но, начав с малого, можно дальше развивать и расширять свое умение строить и программировать. Скретч создавался специально для того, чтобы подростки 10 – 16 лет использовали его самостоятельно в сети внешкольного обучения на базе Компьютерных Клубов, в городах и районах с низким уровнем доходов. Эта новая технологическая среда позволяет им выразить себя в компьютерном творчестве.

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

Возможность собрать программу из отдельных кусочков и обсудить задачу, которую выполняет каждый отдельный фрагмент, существует и в постепенно входящей в мир компьютерного образования среде Сквик и ее клонах Alice и Скретч. Учебная среда Скретч появилась совсем недавно и делает в настоящее время свои первые шаги. Ее будущее выглядит очень многообещающим, поскольку в основании среды лежит опыт Лого, мощные возможности современного языка Сквик и стоят такие люди как Мич Резник и Алан Кей. Кей в предисловии к языку Сквик подчеркивает, что компьютеры создают новую форму электронной бумаги для чтения и письма. На этой новой электронной бумаге люди могут обсуждать и играть с новыми мощными идеями совсем не так, как они это делали с книгами. Мы можем получать новое визуальное представление о гипотезах и теориях, можем связывать и сравнивать разные идеи друг с другом. Если мы будем помнить о новых возможностях, которые открывают перед нами электронные формы общения и сообщного мышления, то сможем стремиться не просто к обучению чтению и письму, но и к более глубокому усвоению знаний. Новый стиль усвоения знаний даст ученикам возможность читать литературу, обдумывать идеи и представлять их в форме доступной для обсуждения и критики.

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

Скретч может использоваться в различных формах: в школах, музеях, центрах дополнительного обучения, дома. Он создавался для учеников 8 - 16 лет , но и дети более раннего возраста могут работать над Скретч проектами вместе с родителями или старшими братьями или сестрами, да и студенты ВУЗов могут использовать Скретч на занятиях в компьютерных классах.

Скретч и навыки 21 века

Когда ученики создают проекты в Скретче, они осваивают множество навыков 21 века, которые будут необходимы для успеха:

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

Кирпичики программы

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

Как пользоваться визуальными блоками в вики?
благодаря специальному расширению в вики можно использовать текстовые блоки. Множество примеров в категории Category:Scripting Tutorials
когда спрайт нажат
сказать ["Привет!"]
идти (выдать случайное от (20) до (40)) шагов
играть звук [мяу v] ::sound
если <касается [край v]>, то
повернуться к [указатель мышки v]
конец
Как встроить проект Scratch в текст вики-статьи?
Надо указать id проекта внутри блока <scratch project="id" />

Мы можем взять любой объект и осуществить над ним действия:

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

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

Scratch, PicoBoard и Arduino

Замечательной встроенной возможностью Scratch является наличие в нём группы меню "сенсоры", предназначенной для работы с конечным оборудованием - сенсорами и платой из набора PicoCricket, или известного более старшим пользователям платы Arduino.

Набор PicoCricket - это всё та же разработка MIT media lab. PicoCricket и опыт его использования в работе со Scratch в будущем привели к созданию известного конструктора Lego Mindstorms NXT.

Руководство пользователя

Визуальные команды

Scratch/Управление

Scratch/Управление

  • forever повторять всегда всегда
  • repeat until () повторять пока не () повторять пока не ()
  • if <> then если <> , то если <> , то
  • end конец конец
  • wait () secs ждать () секунд ждать () секунд
  • repeat () повторить () раз повторить () раз
  • wait until () ждать до () ждать до ()
  • when I start as a clone когда я начинаю как клон когда я начинаю как клон
  • delete this clone удалить клон удалить клон
  • else иначе иначе
  • create clone of [myself v] создать клон [себя самого v] создать клон [себя самого v]
  • stop [all v] стоп [все v]стоп [все v]
if <> then
else
если <>, то
иначе
если <>, то

иначе



Например, падающие с неба капли или снежинки

когда щёлкнут по зелёному флагу
повторять всегда
 создать клон [себя самого v]
 перейти в x (выдать случайное от (-180) до (180))  y (200)
 плыть (3) секунд в точку x (положение x) y (-180)
 удалить клон


Scratch/Движение

Scratch/Движение

  • set x to () установить x в () установить x в ()
  • set y to () установить y в () установить y в ()
  • move () steps идти () шагов идти () шагов
  • go to x:() y:() перейти в x:()y() перейти в x:()y()
  • turn @turnLeft () degrees повернуть влево на () градусов повернуть влево на () градусов
  • turn @turnRight () degrees повернуть вправо на () градусов повернуть вправо на () градусов
    • повернуть вправо на (15) градусов
  • go to x:(0) y:(0) перейти в x:(0) y:(0) перейти в x:(0) y:(0)
  • go to [mouse-pointer v]перейти в [указатель мышки v]::motion перейти в [указатель мышки v]
  • point towards [mouse-pointer v] повернуться к [указатель мышки v] повернуться к [указатель мышки v]
  • direction направление направление
  • point in direction (90 v) повернуть в направлении (90) v]::motion повернуть в направлении (90 v)
  • change y by () изменить y на () изменить y на ()
  • if on edge, bounce если на краю, оттолкнуться если на краю, оттолкнуться
  • change x by () изменить x на () изменить x на ()
  • glide () secs to x:() y:() плыть () секунд в точку x:() y:() плыть () секунд в точку x:() y:()
  • x position положение x положение x
  • y position положение y положение y


Scratch/Внешность

Scratch/Внешность

  • think () думать ()
  • show показаться
  • switch backdrop to [backdrop1 v] and wait сменить фон на [backdrop1 v] и ждать
  • say [] сказать []
  • change [color v] effect by () изменить [color v] эффект на ()
  • next backdrop следующий фон
  • say [] for () secs говорить [] в течение () секунд
  • backdrop name имя фона
  • set [color v] effect to () установить эффект [color v] в значение ()
  • backdrop # фон #фон #
  • hide спрятаться
  • switch costume to [costume1 v] сменить костюм на [costume1 v]
  • switch backdrop to [backdrop1 v] сменить фон на [backdrop1 v]
  • size размер
  • set size to ()% установить размер ()%
  • change size by () изменить размер на ()
  • go back () layers перейти назад на () слоев
  • next costume следующий костюм
  • costume # костюм #
  • go to front перейти в верхний слой
  • clear graphic effects убрать графические эффекты
  • think () for () secs думать () () секунд



Scratch/Музыка

Scratch/Музыка

  • play note (60 v) for (0.5) beatsиграть ноту (60 v) (0.5) тактов
  • stop all sounds остановить все звуки
  • set volume to ()% установить громкость ()%
  • play sound [pop v] until done играть звук [pop v] до конца
  • rest for () beats подождать () тактов
  • set tempo to (60) bpm установить темп (60) bpm
  • play sound [pop v] играть звук [pop v] ::sound
  • play drum (1 v) for (0.2) beats барабану () играть () тактов::sound
  • set instrument to (1 v) выбрать инструмент (1 v)
  • change volume by (-10) изменить громкость на (-10)
  • change tempo by (20) изменить темп на (20)
  • tempo темп
  • volume громкость



Scratch/События

Scratch/События

  • when this sprite clicked когда спрайт нажат когда спрайт нажат<
  • when I receive [message1 v] когда я получу [сообщение1 v] когда я получу [сообщение1 v]
  • broadcast [message1 v] передать [message1 v] передать [сообщение1 v]
  • broadcast [message1 v] and wait передать [Собираем знания v] и ждать::events передать [message1 v] и ждать
  • when @greenFlag clicked когда щелкнут по @greenFlag когда щелкнут по @greenFlag
  • when [space v] key pressedwhen [space v] key pressedкогда клавиша [пробел v] нажата когда клавиша [пробел v] нажата
    • когда клавиша [вправо v] нажата когда клавиша [вправо v] нажата
  • when backdrop switches to [backdrop1 v] когда фон меняется на [backdrop1 v] когда фон меняется на [backdrop1 v]
  • when [loudness v] > (10)когда [громкость v] > (10) когда [громкость v] > (10)



Scratch/Сенсоры

Scratch/Сенсоры

Reporter

  • (answer) (ответ)(ответ)
  • username имя участника имя участника
  • mouse x мышка по x
  • mouse y мышка по y
  • (distance to [sprite1 v]) (расстояние до [sprite1 v])
  • timer таймер
  • ([x position v] of [sprite1 v]) ([x position v] of [sprite1 v])
  • days since 2000 дней с 01.01.2000
  • (current [second v]) (current [second v])


Boolean Blocks

  • <touching color [#000000]?> <касается цвета [#000000]?><касается цвета [#000000]?>
  • color () is touching ()? цвет () касается ()?

<touching [sprite1 v]><касается [sprite1 v]><касается [sprite1 v]>

  • mouse down? мышка нажата?
  • key [space v] pressed? клавиша [пробел v] нажата?клавиша [пробел v] нажата?

Stack Blocks

  • reset timer перезапустить таймер
  • установить прозрачность видео ()%
  • turn video [on v] повернуть видео на [включить v]
  • set video transparency to (0)%set video transparency to (0)%
  • ask [What's your name?] and wait спросить [А тебя как зовут?] и ждатьспросить [А тебя как зовут?] и ждать



Рисование - Scratch/Перо

Scratch/Данные

Scratch/Данные

Переменные

  • show variable [variable v] показать переменную [variable v] показать переменную [variable v]
  • hide variable [variable v] скрыть переменную [variable v]
  • set [variable v] to () задать [variable v] значение ()задать [variable v] значение ()
  • change [variable v] by () изменить [variable v] на ()изменить [variable v] на ()

Список

  • item (1 v) of [list v] элемент (1 v) из [list v]элемент (1 v) из [list v]
  • [list v] contains ()? [список v]содержит ()?
  • hide list [list v] скрыть список [list v]
  • show list [list v] показать список [list v]
  • add [thing] to [list v] добавить [thing] к [list v]
  • replace item (1 v) of [list v] with [thing] заменить элемент (1 v) в [list v] на [thing]
  • insert [thing] at (1 v) of [list v] вставить [thing] в (1 v) из [список v]
  • length of [list v] длина списка [list v]
  • delete (1 v) of [list v] удалить (1 v) из [list v]




Scratch/Операторы

Scratch/Операторы

Возвращает сообщение

  • () mod () остаток от деления () на ()
  • round () округлить ()
  • () or () () или ()
  • pick random () to () выдать случайное от () до ()выдать случайное от (0) до (180)
    • Например, ждать (выдать случайное от (number1) до (number2)) секунд
  • length of () длина ()
    • [sqrt v] of (9)
    • [квадратный корень v] от (9)
    • Например,
спросить [А тебя как зовут?] и ждать
говорить (слить (ответ) и (длина (ответ))) в течение (2) секунд
  • (() + ()) (() + ()) (() + ())>
  • join [hello] [world] слить [привет] и [ мир!] слить[привет] и [ мир!]
  • (letter (1) of [world]) (буква (1) в [world])буква (1) в [мир]
    • Например, (буква (temp) в (string1))
    • задать [partilScroll v] значение (слить (partilScroll) и (буква (temp) в (string1)))

Логические операторы

см. Логическое выражение

  • <[] contains [] :: operators> <[] содержит [] :: operators>
  • <[] > []> <[] > []><[] > []>
    • Например, если<(A) > (B)>, то
  • not () не () не ()
  • () and () () и ()() и ()
    • Например, если<(условие1) и (условие2)>, то


Scratch/Другие блоки

Scratch/Другие блоки

define custom block определить РисуемДом определить РисуемДом блок

custom block ::customРисуемДом ::custom РисуемДом ::custom

Создаем процедуру и в дальнейшем вызываем процедуру.

определить Сбор Знаний
повторять пока не (длина списка [Книга v]) < [1000]
создать клон [себя самого v]
конец



Моторы

  • set %m.motor power to () задать мощность %m.motor значение ()
  • set rotation style %m.rotationStyle стиль вращения %m.rotationStyle
  • turn %m.motor on for () secs включить %m.motor на () секунд
  • set %m.motor2 direction to %m.motorDirection задать для %m.motor2 направление %m.motorDirection


Видео

  • set video transparency to ()% установить прозрачность видео ()%
  • turn video %m.videoState повернуть видео на %m.videoState
  • video %m.videoMotionType on %m.stageOrThis видео %m.videoMotionType на %m.stageOrThis



Ссылки