scratch для чего нужен
Scratch для «продвинутых»
Клонирование и переменные в Scratch
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.
На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.
Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.
Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.
Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.
Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.
Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»
Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:
Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.
И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!
Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!
Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.
Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.
Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).
Обучаем спрайт новой функции и получаем.
Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.
Мы написали все, что необходимо, теперь главное правильно использовать данные функции.
Если у вас все работает правильно, то вы должны увидеть следующее:
Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.
Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.
Подводим итоги
Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.
Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.
Скретч: программирование для детей
Даже двухлетний ребенок способен собрать простейшую конструкцию из Лего. Детский язык программирования Скретч использует кубики Лего как метафору, все его программы собираются из ярких разноцветных блоков-кирпичиков. Язык очень понятен и прост, приступать к его изучению можно уже с 7-8 лет. От ребенка потребуются только базовые навыки: умение считать и писать. Подростки от 10 до 16 уже могут самостоятельно использовать язык для самовыражения путем написания игр, презентаций, слайдшоу и пр.
История Scratch
Язык разрабатывался в MIT Media Lab (Массачусетский технологический институт, медиа-лаборатория), а конкретно в группе Lifelong Kindergarten, очаге творческой деятельности. Придумал Скретч руководитель группы, Митчелл Резник, и знаменитый Алан Кей, создавший саму идею персонального компьютера. Эти люди отлично понимали главный принцип педагогики: большинство важных для человека знаний осваиваются путем игры. Более того, именно умения, полученные в игровом процессе, закрепляются и запоминаются надежнее всего. Их легче применять в обычной жизни.
Скретч программирование обучает детей думать глубже и качественнее иных взрослых, обдумывать идеи, взаимодействовать между собой и представлять свои мысли в форме, удобной для обсуждения.
Как выглядит Scratch MIT Edu
Обычный код выглядит как набор чисел и преимущественно латинских символов. Со Скретчем все проще: этот язык уникален именно тем, что он позволяет собирать программу без привычного набора команд. Используется визуальный метод — блоки, который позволяет сделать обучение занимательнее и интереснее, как для ребенка, так и для взрослого.
На картинке ниже приведен пример, как вывести слово Привет на разных языках программирования.
Эта же команда на Скретче будет выглядеть как один-единственный блок.
На картинке изображена летучая мышь. Это спрайт. Любой спрайт способен выполнить заданные ему команды (как слева в синем блоке).
Что можно сделать при помощи языка Скретч
Среда Scratch задумывалась как частичная альтернатива Фотошопу. Здесь можно:
Над любым объектом можно выполнить серию действий: переместить, видоизменить его, научить говорить. Из простых команд складываются очень сложные модели.
Ребята также могут активно общаться между собой и в международном сообществе Скретча.
Как проходят уроки
Ученик должен владеть компьютером на минимальном уровне: печатать на клавиатуре, пользоваться мышкой, открывать браузер и вкладки в нем. Этого достаточно. Все базовые понятия программирования, начиная от переменных и заканчивая циклами, вводятся в ненавязчивой форме.
На уроках преподаватель дает задания по представленным материалам. Ребенок знакомится с темой, новыми алгоритмами и делает похожий проект уже самостоятельно, закрепляя полученные знания. Уроки разбиты по сложности, каждое занятие — шаг вперед, с каждым разом проект становится все детализированнее и продуманнее. На новом уроке тренируют не только новую тему, но и захватывают одновременно несколько старых.
Стандартный курс включает в себя 21 занятие. На первых знакомятся с языком и его редактором. Затем изучают спрайты и базовые понятия программирования. К девятому ученик уже презентует собственный проект.
На уроках вначале рождается спрос, а затем обучающийся получает предложение, как решить задачу. Вместо сухого понятийного способа введения информации преподаватель заинтересовывает ребенка. На занятиях по Scratch вы не услышите: «Переменная — это…». Ученику дается задание, и он задает вопросы по нему:
— А как сделать так, чтобы у танчика отнимались жизни при попадании в него пуль?
— Очень просто! В Скретче есть такая штука — переменная. Под ней ты можешь записать любое значение, к примеру, жизни танка. Нажимаем вот сюда…
Такой подход мотивирует обучающихся, заставляет их думать самостоятельно, пытаться решить задачу удобнейшим путем.
Где скачать Скретч на русском
Язык скачивают на официальном сайте Скретча бесплатно. Некоторые пытаются обучаться дома, но к самостоятельным занятиям лучше переходить после того, как ребенок получит минимальную базу. Полная поддержка Windows, Linux, MAC, 32-х и 64-х битных систем, в том числе и все последние версии Windows — 10, 8 и пр.
В 2016 году выпущена версия Scratch 3, в которой добавилась опция клонирования сайтов, упрощена работа со скроллом, пополнены библиотеки спрайтов. На занятиях чаще используется Скретч 2.
Есть также собственная соцсеть, где ребенок непременно обретет единомышленников.
Особенности приложения
Scratch может работать со звуком и картинками, создавать анимированные, динамические сцены. Последовательность действий записывается скриптом. Можно создавать компоненты самостоятельно или использовать готовые. Имеется встроенный графический редактор, позволяющий делать фон и изображения. Конечный проект, как и в любой среде программирования, компилируется в исполняемый файл. Возможна отладка.
Из основных плюсов Скретча: интуитивный интерфейс, комфортный экран приложения: все инструменты доступны сразу после загрузки. Главное окно делится на три части: сценарий и визуализация, а также список закладок. В последнем есть возможность выбрать звук, движение, операторы, переменные и иные параметры. В сценарии располагается код, а в части визуализации можно просмотреть результат.
Зачем учить Скретч программированию
Зачем нужен Scratch для детей? Среда позволяет развивать мышление, логику, творческие данные. Обучает искусству программирования в форме игры, что значительно облегчает восприятие сложных понятий.
За программированием стоит будущее планеты! С каждым днем увеличивается число приложений, программ, делающих жизнь человека комфортнее и проще. Буквально с пеленок наши дети погружаются в цифровую среду: смотрят мультфильмы, общаются по скайпу, играют в интерактивные игры. Для них не должно быть загадкой, как подобные вещи появляются на свет.
Так же, как любой другой язык — английский, русский, французский — Скретч, да и программирование в целом — алгоритмы, операторы, воспринимаются тем проще, чем раньше его начинают учить. Но даже если ваш ребенок не выучится на программиста, дизайнера, инженера, не станет работать с робототехникой — благодаря усвоенным в детском возрасте вещам ему будет легко ориентироваться в современном диджитал-мире. Помимо цифровой среды, он сможет применять свои навыки в любой профессии, и даже в бытовых ситуациях. При этом развитие при помощи Скретч программирования идет не только в сторону логики и математического склада ума — активно совершенствуются и творческие навыки, умение придумать и воплотить самые нестандартные идеи.
Мы всегда на связи
Скорее записывайтесь по телефону, в социальных сетях
и мессенджерах. Число мест ограничено!
Scratch – дверь в мир программирования
Scratch – это язык программирования, который используется для знакомства детей с данной сферой деятельности. Многие родители считают, что Scratch не нужен, так как это, якобы, ненастоящий язык и лучше ребенку начинать с Python или JavaScript. Увы, такой подход скорее вреден, чем полезен, ведь Scratch как раз и разработан, чтобы в понятной ребенку форме донести основы программирования и дать ему возможность воплотить свои идеи в жизнь.
Не менее важным будет вопрос о том, как постигать данный язык – самостоятельно или воспользоваться курсами. В нашей статье мы расскажем, чем полезен Scratch для детей, что в нем можно сделать, а также как лучше ребенку его осваивать.
Описание языка Scratch
Scratch — это универсальный язык программирования, позволяющий помимо прочего, например, рисовать картины и создавать музыку. Данная особенность является весомой причиной обучать ему детей. К тому же, это еще и полноценный инструмент для программистов.
Среда разработки дает возможность детям редактировать аудиофайлы и монтировать небольшие, но полноценные видеоролики. В новые версии языка создатели обещают добавить функционал для создания собственных мобильных приложений.
Описание языка Scratch
Таким образом, Scratch сможет заменить собой сразу несколько программ, ориентированных исключительно на диджитал-разработку. Облачная технология позволяет большому числу пользователей взаимодействовать друг с другом, непрерывно обмениваться знаниями.
Механика программирования на Scratch
Данная среда разработки изначально ориентирована на изучение детьми, поэтому она отличается интуитивной понятностью и дружелюбностью.
Интерфейс условно поделен на 3 функциональных блока:
Перед детьми, начавшими изучать язык, сперва стоит задача перемещать Скрэтча по экрану, обучать его различным навыкам. В процессе этого кот постепенно начинает разговаривать и выполнять некоторые команды. Дети в итоге могут создать целый анимационный фильм с участием Скрэтча и его друзей.
В дальнейшем ребенок уже самостоятельно программирует игры, придумывая для них истории и выбирая героев. Готовая программа будет служить предметом гордости перед одноклассниками и друзьями.
Преимущества занятий Scratch для детей
Эта среда разработки предназначена исключительно для учебных целей и настоящими программистами не используется. Тем не менее, она служит базой для изучения уже профессиональных языков, прививает детям навыки составления алгоритмов в игровой форме.
Сложность на самом первом этапе обучения не нужна — в конце концов, существуют учебники по программированию, позволяющие изучать язык и без наличия компьютера. Взрослый человек осилит синтаксис нового для него языка за 2-3 дня упорной умственной работы. Ребенку же для этого может потребоваться несколько месяцев. Причем, не факт, что он твердо решит стать программистом.
Ваш Путь в IT начинается здесь
Именно для того, чтобы ребенок почувствовал себя в роли программиста, проверил свои интересы, существуют учебные среды разработки, каковой является в том числе и Scratch. Программирование для детей в них подается в виде увлекательной игры. Научившись создавать простейшие программы и имея дальнейшую мотивацию обучаться в этом направлении, ребенок уже захочет переходить на взрослый уровень разработки.
Нюансы ScratchJr
Scratch Junior является ответвлением от основной среды разработки, ориентированным на детей от 5 лет. Сначала разработчики создали соответствующее приложение для iPhone, Android и Kindle, а затем и программу для персональных компьютеров. В первом случае роль главного героя играл кот, во втором же случае взамен появился инопланетянин Тик.
Принцип работы в Scratch Jr подобен сборке конструктора Lego. Ребенок перемещает блоки, соединяя их в требуемом порядке. Правильно размещенные элементы примагничиваются друг к другу.
Все элементы приложения сгруппированы в функциональные блоки: движения, управления, внешнего вида, окончания и запуска. Каждый блок имеет вид иконки, обозначающей конкретную функцию и понятной каждому ребенку.
Нюансы ScratchJr
При использовании среды разработки детям даже необязательно уметь читать и считать. Однако эти навыки помогут создавать, например, программу для отправки сообщений или для перемещения объекта на определенное число клеток.
Спрайты для программирования можно выбирать из весьма обширной встроенной библиотеки. Коллекция также содержит большой выбор ландшафтов.
Добавление собственных изображений здесь не доступно, однако имеется встроенный простейший графический редактор, позволяющий с нуля создать нового персонажа.
Формально Scratch Jr объектно-ориентированным языком программирования не является. Тем не менее, здесь дети сталкиваются именно с объектной моделью. То есть, программа состоит из неких объектов (спрайтов), взаимодействующих друг с другом. Для этого необходимо давать спрайтам соответствующие команды.
Варианты проектов на Scratch
Множество начинающих программистов пользуются данной средой в домашних условиях, в школьных учреждениях, в музеях и библиотеках. Так, Гарвард предлагает к изучению обширный банк онлайн-ресурсов, позволяющий создавать проекты как на детском, так и на профессиональном уровнях. В сети также имеется русскоязычное сообщество любителей Scratch.
Ниже перечислим студии, на которые рекомендуется обратить внимание всем желающим изучить этот язык.
Мы в GeekBrains каждый день обучаем людей новым профессиям и точно знаем, с какими трудностями они сталкиваются. Вместе с экспертами по построению карьеры поможем определиться с новой профессией, узнать, с чего начать, и преодолеть страх изменений.
Карьерная мастерская это:
Уже 50 000 человек прошли мастерскую и сделали шаг к новой профессии!
Запишитесь на бесплатный курс и станьте ближе к новой карьере:
Зарегистрироваться и получить подарки
Помимо этого среда включает в себя множество других возможностей и студий. Ссылки на них можно находить в открытом доступе.
Топ-5 книг для изучения Scratch
Обучение Scratch для детей
Для начала изучения этого языка существуют специальные базовые курсы. Они позволяют детям попробовать себя в роли программиста и, возможно, сделать первый шаг на пути к востребованной профессии.
Чтобы работа приносила удовольствие, нужно сначала найти правильную профессию.
Мы подготовили документы, которые помогут не ошибиться с выбором и определить, какая профессия в IT подходит именно тебе.
Благодаря этим гайдам 76% наших студентов смогли найти востребованную профессию своей мечты.
Обычно эти документы доступны только нашим студентам, мы какое-то время будем раздавать их бесплатно, но очень скоро уберем их из открытого доступа.
Скачивай и используй уже сегодня:
Гайд по профессиям в IT
5 профессий с данными о навыках и средней заработной плате
Чек-лист эффективного обучения от Geekbrains
6 правил, которым необходимо следовать для облегчения обучения
Все профессии, которые есть в IT-сфере
63 профессии и необходимые для них навыки
Рекомендации по книгам для востребованных специалистов
6 направлений деятельности и полезная литература по каждому из них
План программы обычно полностью состоит из практических занятий с домашними заданиями после каждого урока и постоянным взаимодействием с преподавателями. По завершению обучения ученики должны оформить и защитить финальный проект.
Такие курсы подходят детям:
Курс по программированию на Scratch будет полезен по нескольким причинам.
Для примера возьмем курсы GeekSchool. Их отличительные особенности:
Процесс обучения языкам программирования в наше время становится все более простым и увлекательным. Помимо традиционных средств и инструментов, используются также ресурсы Интернета, исключением здесь не является и среда Scratch. Программирование на этом языке будет легким и увлекательным для вашего ребенка, а в будущем станет фундаментом для новой профессии, если вы последуете всем советам и рекомендациям из этой статьи.