Среда программирования Scratch

Автор работы: Пользователь скрыл имя, 04 Апреля 2011 в 12:09, реферат

Описание работы

Знакомство со средой программирования Scratch: изучение интерфейса, основных команд, подробное описание решений различных задач с примерами.

Файлы: 1 файл

Скретч лекции.doc

— 852.50 Кб (Скачать файл)

1. Введение. 2. Перечень команд языка Скретч

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

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

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

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

Учебная среда Скретч появилась совсем недавно, и делает в настоящее время свои первые шаги. Ее будущее выглядит очень многообещающим!

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

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

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

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

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

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

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

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

Перечень команд языка Скретч

Движение 

[http://letopisi.ru/index.php?title=%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=1] Команды движения (синий ящик)

Команда Назначение 
move пройти вперед указанное число шагов. Например: move(-10) – сделать десять шагов  назад 
turn() повернуться - стрелочка  указывает по часовой или против часов стрелки выполняется поворот. Например: turn(45) повернуться на 45 градусов (стрелочка указывает по или против часовой стрелки)
point in direction() повернуться в  указанном направлении. Например: point in direction(180)
point towards () повернуться в  направлении другого существа или  координат мышки. После команды  всегда существует перечень объектов, которые в данный момент присутствуют в системе и на которые можно  реагировать. В самом простом  случае, когда других объектов нет, предлагается повернуться в сторону, где находится указатель мышки.
change x by () изменить положение  по оси X на указанное число шагов. Например: change x by (-10) – объект смещается  влево на 10 шагов 
set x to () установить  объект положение по оси x. Например: set x to (50)
go to x() y() переместиться в точку с указанными координатами

Например: go to x(70) y(-50)

glide x() y() in () secs плавно переместиться  в точку с указанными координатами за указанное время. На перемещение  затратиться время указанное в секундах. Например: glide x(90) y(90) in (20) secs – объект медленно (в течение 20 секунд) будет переползать в указанную точку.
go to ()- перейти в точку, где расположен указатель мыши или  другая фигура. Например: go to (mousepointer)
if on edge, bounce - если попадаешь  в край экрана, то отразись  от него. Это очень полезно,  если Вы не хотите потерять  своего героя 
x position возвращает  значение по оси X Например: set y (xposition)
y position возвращает  значение по оси y Например: set x (yposition)
direction - возвращает  направление 

Например: point in direction (-direction)

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=2] Звуки

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

Команда Назначение 
play sound() воспроизвести звук (можно выбрать звук). При  этом звук можно выбрать в библиотеке – там этих звуков достаточно много. Так же как и библиотека картинок, библиотека звуков расширяется и к ней можно добавлять свои местные звуки в формате wav
set instrument() выбрать инструмент, который будет играть. Инструментов в Скретче множество в несколько  прокруток экрана
play drum () for () sec Ударные играют указанное число тактов
play note () for () sec играть определенную ноту указанное количество времени (в секундах). Ноты записаны в цифрах, но против каждой цифры стоит ее звучание.
stop all sounds Убрать все  звуки 

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=3] Графика (фиолетовый ящик)

Команда Русский вариант Назначение 
switch to costume () Перейти к костюму  перейти к костюму (можно выбрать костюм героя)
change costume by() Изменить значение костюма Изменить значение костюма на одну или несколько единиц. Имеет смысл только тогда, когда у нас несколько «импортных» костюмов.
Say() Сказать() Сказать фразу, которую мы можем записать в окошечке команды. К сожалению только латинские  буквы 
Say()for()sec Говорить  Говорить () секунд. Реплика висит рядом с объектом
Change() Изменить change (color, fisheye, whirl, pixalate, mosaic, brightness) effect by() – видоизменить  объект по одному из перечисленных  параметров на указанную величину. Ниже приводится перечень параметров, по которым можно видоизменять внешний вид объекта. Обратите внимание, что команды все больше напоминают обычные короткие предложения

 
change fisheye effects by(25) – объект округляется  
change fisheye effects by(-25) – объект становится более тощим

clear graphic effects Очистить графику Очистить все  графические эффекты. Если мы производили  над объектом видоизменение, то в  результате этой команды все они  отменяются
set size to ()% Установить  размер ()% Установить  размер объекта в процентах 
show показать Показать объект – он становится видимым
hide спрятать Спрятать объект - он становится невидимым 
go to front Перемещение в  верхний слой объект перемещается в первый слой
go back () layers Перемещение вглубь Объект уходит на несколько слоев внутрь изображения.
Costume# значение костюма  Возвращает  значение костюма, который в данный момент одет на нашем исполнителе.

Команды приобретают  смысл, когда Вы объединяете их в  последовательность. Например:

  • change fisheye effects by(25)
  • wait 2
  • change fisheye effects by(-25)

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

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=4] Управление (желтый ящик)

Команды управления Скретч (желтый ящик)

Команда Назначение 
when clicked () когда нажмут на (зеленый флажок, на форму героя)
when () key pressed запускает выполнение блока команд в ответ на нажатие  выбранной клавиши. Позволяет передать управление на клавиатуру. Например: when (g) key pressed move(10)
when I received () запускает выполнение блока команд в ответ на полученное сообщение. Работает в сочетании с broadcast
wait() команда ожидания. Параметр указывает сколько секунд следует ждать.
Forever – блок команд, заключенных внутрь конструкции  будет выполняться постоянно. Например: forever (move(20) ; rt (45)) объект будет постоянно двигаться и поворачиваться, пока мы не нажмем кнопку Stop
If () – условие, при  выполнении которого должны выполняться  команды, заключенные внутри конструкции if Если не выполняется, то никаких действий
If () [] else [] – условие, при  выполнении которого должны выполняться  команды, заключенные внутри конструкции  if(). Если не выполняется, то нужно перейти к действиям внутри else()
repeat() повторение. Параметр указывает, сколько раз нужно повторить блоки команд, заключенные внутри блока repeat()
broadcast() Передать сообщение. Переданное сообщение может запускать  активность другого исполнителя. Работает в сочетании с when I received ()
forever if () Выполняется пока условие в if верно
wait until () Ждать пока не выполнится условие 
stop script Остановить  выполнение программы для данного  исполнителя 
stop all Остановить  выполнение всех программ

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=5] Сенсоры (голубой ящик)

Сенсоры Скретч

Команда Назначение 
mouse x возвращает  значение указателя мыши по оси x
mouse у  возвращает  значение указателя мыши по оси x
touching color () ? касается ли наш объект указанного цвета Например: touching color () ? – цвет-голубой
color () is touching color () ? касается ли цвет (1) цвета ()
Color (1) is over (2) ? цвет 1 накладывается  на цвет 2
Mouse down? нажата ли управляющая  клавиша мышки?
Touching (mouspointer) ? касается ли наш объект мышки или другого существа касается ли наш объект цвета() соприкасается ли цвет() с цветом()
distance to Расстояние  до выбираемого объекта или указателя  мышки 
(х, y, size, ) of object Значение (размер, объем, костюм, положение по оси x или y) у выбранного объекта

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=6] Вычисления (зеленый ящик)

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

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

Команда Назначение 
() + () операция сложения
() –  () вычитание
() * () умножение
() / () деление
() < () Сравнение больше, равно, меньше. Например: ((5) * (5)) < ((4) * (10)) – вполне разумное выражение, результат  которого должен выдавать отрицание (false)
pick random () to () pick random () to () случайное  число в интервале от и до. Например: pick random (0) to (10) возвратит 1 или 3, или 9 -
логические  операторы And, Or, Not Эти блоки содержат входные окошки, куда вставляются  кирпичики сравнений. Например: AND () ()
abs() Функция (квадратный корень, логарифм, синус, косинус и  т.д.) от числа ()

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=7] Рисование (темно-зеленый ящик)

Команда Назначение 
clear очистить экран  от всех следов, которые на нем оставили объекты 
pen down опустить карандаш. После этой команды за движущимся объектом будет оставаться след.
pen up поднять карандаш
set pen color() – выбрать цвет, которым мы собираемся рисовать
change pen color by() изменить цвет
change pen shade() установить  размер тени, который оставляет объект
stamp отпечатать  объект на экране

[http://letopisi.ru/index.php?title=%D0%92%D1%81%D0%B5_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87&action=edit&section=8] Переменные(оранжевый ящик)

Изначально в  этом ящике лежат 2 блока: создать  и уничтожить переменную.

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

Команда Назначение 
Make a variable Создать переменную
Delete a variable Удалить переменную
Change(Имя_переменной)by() Изменить значение переменной на(). Например, увеличить  значение на 1.
Set(Имя_переменной)() Установить  значение переменной
Значение  переменной  

Авторы  редакции: Вячеслав Юрьевич Матыкин   matykin_v@mail.ru, Скородумов В.Е.

 

Материалы о Скретче имеются  в сети достаточно давно, ниже полная копия  одного из них и  полезные ссылки. «Как сделать мультик  в Скретч?»

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

  • when clicked ()- когда нажмут на (зеленый флажок, на форму героя)
  • move - пройти вперед указанное число шагов. Например: move(-10) – сделать десять шагов назад
  • if on edge, bounce - если попадаешь в край экрана, то отразись от него
  • wait() - команда ожидания. Параметр указывает сколько секунд следует ждать.
  • Forever – блок команд, заключенных внутрь конструкции будет выполняться постоянно.

Но акула не может жить в море одна и у нее появляются соседи - другие жители моря. Для этого мы добавили еще несколько агентов из папки “со звездочкой”. Теперь мы можем видеть, что акула приняла злобный вид (видимо она проголадалась). Чтобы добиться такого эффекта, мы использовали команды:

  • switch to costume () - перейти к костюму (можно выбрать костюм героя)
  • when clicked ()- когда нажмут на (зеленый флажок, на форму героя)
  • move - пройти вперед указанное число шагов. Например: move(-10) – сделать десять шагов назад
  • if on edge, bounce - если попадаешь в край экрана, то отразись от него
  • wait() - команда ожидания. Параметр указывает сколько секунд следует ждать.
  • Forever – блок команд, заключенных внутрь конструкции будет выполняться постоянно.

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

  • switch to costume (shark1-a) - перейти к костюму (можно выбрать костюм героя)
  • when clicked ()- когда нажмут на (зеленый флажок, на форму героя)
  • move - пройти вперед указанное число шагов. Например: move(-10) – сделать десять шагов назад
  • if on edge, bounce - если попадаешь в край экрана, то отразись от него
  • wait() - команда ожидания. Параметр указывает сколько секунд следует ждать.
  • Forever – блок команд, заключенных внутрь конструкции будет выполняться постоянно.
  • If () – условие, при выполнении которого должны выполняться команды, заключенные внутри конструкции if Если не выполняется, то никаких действий
  • broadcast() - Передать сообщение. Переданное сообщение может запускать активность другого исполнителя. У нас акула сначала говорит “Пора обедать”, а потом, увидев краба восклицает: “Вот и еда!”

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

Ссылки:

  • Материал из Letopisi.Ru - «Время вернуться домой» http://letopisi.ru/index.php/%D0%A1%D0%BA%D1%80%D0%B5%D1%82%D1%87
  • Вебпланета.Ru - Играем в Скретч http://www.webplanet.ru/review/entertainment/2008/01/22/scratch21.html

 

Лекция 3. Поделись улыбкою своей, и она не раз к тебе еще вернется!

Учимся мыслить  коллективом, использовать готовые  программы (свои и чужие)

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

1. Если в классе  имеется несколько компьютеров,  то возникает желание сделать   удобный обмен и  меняться  программами?  Если сохранять  свои программы на своем компьютере, то на соседнем их не увидеть.  Но если сохранять в сети, то  каждый может похвастаться своими наработками и позаимствовать интересное у других авторов. Предположим у нас одноранговая сеть, т.е. все компьютеры равны в своих сетевых правах, тогда один сделать «базовым» уместно.  И администратор создает папку, например scretch_works_all, делает ее сетевой, а на всех  компьютерах подключают сетевой диск - эту папку как сетевой диск.

На любом  компьютере тогда можно будет  ОТКРЫВАТЬ ОБЩЕЕ пространство:

На любом  компьютере тогда можно будет  СОХРАНЯТЬ В ОБЩЕЕ пространство: 

Эти действия в конце урока делает каждый ученик. 

2. Если в классе  имеется доступ в Интернет  на нескольких компьютерах, то  возникает желание в свою папку  сохранить проект из Интернета.  Сделать это можно следующим  образом. Сначала зайти на сайт, зарегистрироваться, выбрать инересный проект, например, указанную игру «пройти в дом», сохранить в своей папке, открыть в Скретче.

Проиллюстрируем  графически эти действия

Выбрать интересный проект, например по адресу http://scratch.mit.edu/projects/room209/76589 игра-лабиринт 0.9Мб., тут скачать "get home" где 5 объектов и 27 скриптов. Или http://scratch.mit.edu/projects/justin63/15796 http://scratch.mit.edu/galleries/view/118 игра шариком в автомате 114Кб., тут скачать "Pinball" состоит из  11 объектов и 22 скриптов 

Надо, что  бы каждый ученик сохранял в свою папку 

Задание: Создай свою коллекцию проектов, проанализируй программы и используй их.

Если скачан "Pinball", то измени настроение мячика «грустность» на «веселость», пяснения на рисунке.

Информация о работе Среда программирования Scratch