Как выглядит скретч в реальной жизни
Язык Скретч — это то, что рекомендуют использовать для знакомства детей от 7 лет с программированием.
При этом родители занимают две противоположных позиции.
Первые говорят следующее:
- Скретч — не настоящий язык; в реальной жизни на нем не программируют, а потому лучше начинать изучение с настоящих языков — Питона, С++.
- программа Скретч бесплатная, ее можно самим скачать в интернете; для чего тогда ребенку посещать занятия, если он и сам может в ней что-то делать.
- мой ребенок уже и так что-то делает в Скретче, он его уже со всех сторон изучил, и ему скучно продолжать;
- мой ребенок сам смотрит обучающие видеоролики в интернете, ему не нужно ходить на групповые занятия;
- у нас в школе есть занятия по Скретч и они бесплатные.
Вторые следуют рекомендациям преподавателей и методистов и ищут кружок, где изучают Скретч, но выбирают обычно по классическим параметрам — цена и удаленность от дома/школы.
Что предлагают кружки
На самом деле, с дополнительным образованием всё не так просто, как со школьным. Для школьных предметов есть стандарты и ЕГЭ с четкими критериями оценки. Потому изучение одного и того же школьного предмета в разных школах и у репетиторов может отличаться только глубиной и серьезностью подготовки.
В отношении дополнительных направлений, которые предлагают кружки, ситуация обстоит совсем другим образом. Единых утвержденных учебных планов и программ по дополнительным направлениям, наподобие программирования или робототехники нет. Каждое учебное заведение, в особенности, частное, предлагает свою учебную программу. За ту же самую цену в разных кружках вы получите разный результат. И именно по этому ожидаемому результату стоит выбирать учреждение дополнительного образования и дисциплину. И наоборот, за более высокую цену вы можете получить больше пользы для ребенка и выражаться она будет не только в изучении программирования. Если кружок бесплатный, это вовсе не означает, что он самый лучший.
Чем полезны учебные языки программирования
Например, в Инженерике мы не ставим задачей научить ребенка работать в программе Скретч. Это не самоцель. Скретч — действительно учебный язык и учебная среда для создания программ и игр, в настоящей разработке она не используется, но это не значит, что от нее сразу нужно отказываться. Вы же не станете сразу готовить блюдо по технологически сложному рецепту, не освоив базовые принципы готовки. А взяв профессиональное оборудование для приготовления вы не сможете использовать его на максимум. То же и с языками программирования. Общие принципы составления алгоритмов можно изучать и без компьютера, этому посвящены хорошие книги и упражнения (например, книги Дональда Кнута). Во взрослом возрасте синтаксис языка программирования (слова, на которых пишется код), изучаются за трое суток упорного погружения. В возрасте подростка изучить синтаксис языка можно за несколько лет. Для чего переусложнять этот опыт в самом начале? Тем более, если юный человек еще даже не определился, точно ли он хочет стать программистом.
На случай проверки своих интересов и легкого познания алгоритмических концепций и придуманы учебные языки и среды. Они созданы так, чтобы знакомство с программированием проходило гладко и интересно. Если ребенок сможет освоить учебный язык и создавать на нем что-то полезное, если сохранит мотивацию к этому направлению деятельности, если упрётся в потолок учебного языка и захочет пойти дальше и выше — вот тогда стоит переходить на серьезные языки.
Примеры сложных проектов в среде Скретч
Посмотрите видео проектов, которые сделали ученики Инженерики (это индивидуальные и групповые проекты). Длительность создания такого проекта может достигать двух или трех месяцев. Это очень сложная работа при взаимодействии группы ребят, экспертов-консультантов и наставников. Не каждый взрослый смог бы довести подобный проект до конца, даже при том, что на отдельных упражнениях в алгоритмике показал бы себя наилучшим образом. Участие в подобных проектах не только позволяет применить знания к практике, но и развивает личностные качестве ребенка, те самые 4К-компетенции, о которых так много сейчас говорят — коммуникативность, умение работать в команде, креативность, критическое мышление.
Скретч как среда для развития мышления
В Инженерике мы изучаем принципы программирования и создания полезных ИТ-продуктов на примере языка Скретч. То есть используем Скретч как инструмент, как безопасную песочницу для увлекательных экспериментов, но этим не ограничиваемся. В первый год знакомства с миром программистов, мы ставим одной из задач развитие у ребенка мышления — алгоритмического, математического, вычислительного, системного.
Задача разработчиков не в том, чтобы писать код, как думают многие ребята, кто приходит на занятия. И не в том, чтобы создавать еще одну версию уже существующей игры (только собственную!). И не в том, чтобы делать копию программы, которая уже есть и всем известна. Любая программа появилась в компьютере не просто так. Ее создали разработчики, чтобы решать какую-то проблему человека, помогать ему в чём-то. Программу калькулятор и Excel создали, чтобы было легче считать, Word — чтобы делать красивые документы и сохранять шаблоны на будущее; Paint и Photoshop — чтобы создавать цифровые иллюстрации и легко изменять их; игры Майнкрафт и PUBG — чтобы отдохнуть, весело провести время с друзьями; движок Unity — чтобы самим создавать 3D-игры; а браузеры и социальные сети — чтобы получать нужную информацию и общаться с единомышленниками, не выходя из дома.
Так мы учим мыслить наших учеников, думать о проблеме, которая лежит в основе любого изобретения, создавать что-то полезное с помощью алгоритмов и программ, учим искать идеи, разбивать задачу на подзадачи, делить эти подзадачи на других участников команды.
Очное обучение в группе сейчас полезнее индивидуального
Очное обучение в группе обладает особенностями, которых нет у онлайн-занятий. Это как раз та самая возможность научиться коммуницировать с другими ребятами, находить себе команду, понимать в ней свою роль, пробовать разные роли, переживать конфликты, неудачи, общий и личный успех. Но работа в группе не наладится сама по себе, если наставник не приложит к этому усилий. Наши наставники не запрещают ребятам разговаривать на занятии, а напротив, поощряют обмен идеями и мнениями, обсуждение темы урока и способов решения задач. Ученики на занятии знают, что обратиться за помощью могут не только к наставнику, но и к тем ребятам, кто уже умеет это делать и может научить других.
Важны и формы работы с материалом на занятиях. Очень часто бывает (в особенности, этим грешат онлайн-уроки от неопытных преподавателей на YouTube), что в видео просто рассказывают, как что-то сделать и демонстрируют с предложением повторить. Не объясняют, почему нужно делать именно так, с чего нужно начинать, не отрабатывают умения. Такой подход работает только на вовлечение ребенка в деятельность, позволяет приятно провести время, но не формирует умение самостоятельно создавать подобные проекты.
Увидеть склонности ребенка можно только по его проектам
В Инженерике мы работаем с несколькими видами задач:
учебные упражнения — на них мы познаем принципы программирования, отрабатываем навыки, экспериментируем;
задания с четко обозначенным конечным результатом — через них мы учимся распознавать паттерны, следовать требованию, искать разные пути решения и находить оптимальные;
задания с четкими техническими требованиями и свободным конечным результатом — на них учимся соблюдать техническое задание, но при этом вкладывать частичку своего видения, креативить, выражать свои интересы;
проекты по реальной проблематике — так мы учимся видеть проблему, исследовать ситуацию, которая к ней привела, предлагать решение теми способами, которые нам доступны, самостоятельно добирать недостающую информацию.
Через результаты, через те проекты, что создает ребенок, мы видим его склонности, ход мыслей, слабые и сильные места. В течение учебного года всего лишь при работе в одной программе Скретч становится видно, кто из ребят больше любит составлять алгоритмы, а кто в итоге склоняется к графике и какому ее виду — векторной или растровой. Нравится ли ребенку работать с анимацией или со статичным проектированием, делать игры или прикладные приложения, быть исполнителем или проектировать собственные решения.
Система дополнительного образования для 10-12 летних ребят и должна делать именно это — проявлять склонности, развивать качества характера и мышление, давать пробовать себя в деятельности, показывать возможности применения этих навыков в мире и будущей профессии. Совсем не обязательно, что после двух лет изучения программирования ребенок точно решит стать программистом. Но то алгоритмическое и вычислительное мышление, которое разовьется у ребенка под руководством наставника, используется во множестве самых разных областей и профессий.
Потому, когда мы слышим, что ребенок уже сам что-то изучал и делал в какой-то программе — означает лишь, что он каким-то образом знаком с технологиями. Но оценить его мы можем только по результату — по тем проектам, которые он делает под руководством наставника и — более важно — по тем, которые он после обучения способен делать сам или привлечь к созданию команду других ребят.
Резюмируем
При выборе учебной программы уточняйте, какие навыки будут развиваться в ходе обучения и как именно. Через что можно будет увидеть результат.
Цена курса определяется количеством усилий, вложенных в разработку методики обучения, учебных материалов.
В разных кружках могут быть разные подходы к выбору преподавателей. Не обязательно, что специалист-практик в программировании хорошо умеет работать с группой детей, закладывать самостоятельные навыки, проводить рефлексию, учитывать индивидуальные особенности каждого ребенка. Как не обязательно и то, что человек с педагогическим образованием грамотно донесет технические концепции до ребенка, расширит кругозор, покажет перспективы развития в мире реальной разработки. Лучше, если в создании учебной программы принимали участие несколько разных специалистов, в том числе методисты, эксперты-практики, педагоги.
Не стоит думать, что если ребенок самостоятельно «разбирается с программой» или смотрит обучающие видео на YouTube, он научится программировать.
История Scratch
Язык разрабатывался в MIT Media Lab (Массачусетский технологический институт, медиа-лаборатория), а конкретно в группе Lifelong Kindergarten, очаге творческой деятельности. Придумал Скретч руководитель группы, Митчелл Резник, и знаменитый Алан Кей, создавший саму идею персонального компьютера. Эти люди отлично понимали главный принцип педагогики: большинство важных для человека знаний осваиваются путем игры. Более того, именно умения, полученные в игровом процессе, закрепляются и запоминаются надежнее всего. Их легче применять в обычной жизни.
Скретч программирование обучает детей думать глубже и качественнее иных взрослых, обдумывать идеи, взаимодействовать между собой и представлять свои мысли в форме, удобной для обсуждения.
Как проходят уроки
Ученик должен владеть компьютером на минимальном уровне: печатать на клавиатуре, пользоваться мышкой, открывать браузер и вкладки в нем. Этого достаточно. Все базовые понятия программирования, начиная от переменных и заканчивая циклами, вводятся в ненавязчивой форме.
На уроках преподаватель дает задания по представленным материалам. Ребенок знакомится с темой, новыми алгоритмами и делает похожий проект уже самостоятельно, закрепляя полученные знания. Уроки разбиты по сложности, каждое занятие — шаг вперед, с каждым разом проект становится все детализированнее и продуманнее. На новом уроке тренируют не только новую тему, но и захватывают одновременно несколько старых.
Стандартный курс включает в себя 21 занятие. На первых знакомятся с языком и его редактором. Затем изучают спрайты и базовые понятия программирования. К девятому ученик уже презентует собственный проект.
На уроках вначале рождается спрос, а затем обучающийся получает предложение, как решить задачу. Вместо сухого понятийного способа введения информации преподаватель заинтересовывает ребенка. На занятиях по Scratch вы не услышите: «Переменная — это…». Ученику дается задание, и он задает вопросы по нему:
— А как сделать так, чтобы у танчика отнимались жизни при попадании в него пуль?
— Очень просто! В Скретче есть такая штука — переменная. Под ней ты можешь записать любое значение, к примеру, жизни танка. Нажимаем вот сюда…
Такой подход мотивирует обучающихся, заставляет их думать самостоятельно, пытаться решить задачу удобнейшим путем.
Где скачать Скретч на русском
Язык скачивают на официальном сайте Скретча бесплатно. Некоторые пытаются обучаться дома, но к самостоятельным занятиям лучше переходить после того, как ребенок получит минимальную базу. Полная поддержка Windows, Linux, MAC, 32-х и 64-х битных систем, в том числе и все последние версии Windows — 10, 8 и пр.
В 2016 году выпущена версия Scratch 3, в которой добавилась опция клонирования сайтов, упрощена работа со скроллом, пополнены библиотеки спрайтов. На занятиях чаще используется Скретч 2.
Есть также собственная соцсеть, где ребенок непременно обретет единомышленников.
Scratch для «продвинутых»
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.
На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.
Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.
Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.
Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.
Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.
Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»
Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:
- Список имен всех кораблей,
- Расчет расстояние до всех кораблей,
- Поиск минимального расстояния,
- Поиск имени корабля для преследования по найденному минимальному расстоянию.
Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.
И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!
Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!
Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.
Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.
Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).
Обучаем спрайт новой функции и получаем.
Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.
Мы написали все, что необходимо, теперь главное правильно использовать данные функции.
Если у вас все работает правильно, то вы должны увидеть следующее:
Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.
Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.
Подводим итоги
Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.
Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.
Особенности приложения
Scratch может работать со звуком и картинками, создавать анимированные, динамические сцены. Последовательность действий записывается скриптом. Можно создавать компоненты самостоятельно или использовать готовые. Имеется встроенный графический редактор, позволяющий делать фон и изображения. Конечный проект, как и в любой среде программирования, компилируется в исполняемый файл. Возможна отладка.
- написание скрипта;
- редактирование, удаление, добавление компонентов;
- использование объектов;
- компиляция в виде локального файла;
- проектирование;
- выкладка конечного результата в сети.
Из основных плюсов Скретча: интуитивный интерфейс, комфортный экран приложения: все инструменты доступны сразу после загрузки. Главное окно делится на три части: сценарий и визуализация, а также список закладок. В последнем есть возможность выбрать звук, движение, операторы, переменные и иные параметры. В сценарии располагается код, а в части визуализации можно просмотреть результат.
Как выглядит Scratch MIT Edu
Обычный код выглядит как набор чисел и преимущественно латинских символов. Со Скретчем все проще: этот язык уникален именно тем, что он позволяет собирать программу без привычного набора команд. Используется визуальный метод — блоки, который позволяет сделать обучение занимательнее и интереснее, как для ребенка, так и для взрослого.
На картинке ниже приведен пример, как вывести слово Привет на разных языках программирования.
Эта же команда на Скретче будет выглядеть как один-единственный блок.
На картинке изображена летучая мышь. Это спрайт. Любой спрайт способен выполнить заданные ему команды (как слева в синем блоке).
Соединенные блоки называются скриптами. Скрипты задают набор действий для спрайта (говорить , перемещаться и т.д.).
Время первых. История, как мы внедряли Scratch как язык программирования роботов
Смотря на текущее разнообразие образовательной робототехники радуешься, что детям доступно огромное количество конструкторов, готовых изделий и что планка «входа» в основы программирования опустилась достаточно низко (вплоть до детского сада). Массово идет тенденция приобщения сначала к модульно-блочному программированию с переходом затем на более продвинутые языки. Но такая ситуация была не всегда.
2009-2010 года. Россия начала массово знакомиться с Arduino и Scratch. Доступная электроника и программирование начинают завоевывать умы как энтузиастов, так и преподавателей и идея все это соединить уже вовсю витала (а частично была реализована) в мировом инфопространстве.
На самом деле Scratch в релизнувшейся в это время версии 1.4 уже имел поддержку внешнего оборудования. В нем была заложена поддержка Lego WeDo (Motor blocks) и платы PicoBoard.
Но хотелось Arduino и роботов на ее основе, причем желательно работающих на базовой версии. В это же время один из японских ардуинщиков придумал как совместить платформы и выложил схематику (хотя и не всю и пришлось «додумывать») и прошивки на всеобщий доступ (но увы даже не на английском). Взяв за основу этот проект в 2010 году родился ScratchDuino (я тогда вместе с женой работал в компании ЛинуксЦентр).
Концепция «заменяемого картриджа» (не напоминает Micro:bit ?), магнитные крепления для компонентов робота и использование встроенных возможностей Scratch в части обработки сенсоров и управления моторами.
Робот изначально задумывался Lego-совместимым:
В 2011 году платформа увидела свет и (уже после ухода из проекта меня и моей жены в 2013 году) живет и развивается в текущий момент под именем РОББО.
Кто-то может возразить, что были же похожие проекты. Да, примерно в это же время начал развиваться проект S4A, но они были нацелены на программирование именно в стиле Arduino (с его цифровыми и аналоговыми выходами) из видоизмененного Scratch, тогда как моя разработка могла работать с «ванильной» версией (хотя мы также ее видоизменили, чтобы отобразить блоки именно для сенсоров от 1 до 4).
Потом появился Scratch 2.0 а с ним и начали появляться плагины как для Arduino, так и популярных роботов, а Scratch 3.0 из коробки поддерживает большое число робоплатформ.
Blockly. Если посмотреть на популярных роботов, вида MBot (который кстати вначале тоже использовал видоизмененный Scratch), то они программируются на блочном языке, но это не Scratch, а модифицированный Blockly от Google. Я не знаю, повлияло ли на его разработку моя, но точно могу сказать, что когда мы в 2013 году в Лондоне показывали разработчикам Blockly платформу Scratchduino, роботами там еще «не пахло».
Сейчас же Blockly модификации лежат в основе множества робототехнических конструкторов и учебных роботов и это уже другая история, так как за последнее время появилось (и также кануло в лету) огромное число проектов как в России, так и в мире. Но в РФ именно в Scratch-реализации и «противостоянии» Lego мы были первыми :)
Что же произошло после 2013 года. Мы с женой в 2014 году основали свой проект ПРОСТОРОБОТ (он же SIMPLEROBOT) и ушли в разработку настольных игр. Но Scratch нас не отпускает.
У нас есть интересные наработки по моделированию роботов в Scratch и его потомке Snap!
PDF файл с описанием можно скачать и использовать свободно по ссылке, а готовые проекты найти тут. Все работает и в 3 версии Scratch.
Также мы вернулись к программированию роботов на Scratch в нашей новой настольной обучающей игре «Битва Големов. Карточная лига Пароботов» и будем рады, если вы поддержите ее издание на Crowdrepublic.
Когда ты стоишь у истоков чего-то и «чувствуешь» тренды до их массового появления и радостно, что ты был первым и создал по сути рынок и грустно, что не тебе достались лавры победителя. Но могу гордо заявить, что сплав Scratch и Arduino в робототехнике РФ появился благодаря и моим стараниям.
Когда сыну Артёму исполнилось 7 лет и он пошел в школу, мы ему подарили компьютер, чтобы он не отставал от жизни. Несколько месяцев он играл в разные игры, наслаждался, развлекался и т.п. Мне стало немного обидно, что такой дорогой и сложный прибор как компьютер используется только для развлечений, и я решил придумать, как использовать компьютер для обучения. А чему можно научиться на компьютере? Конечно, программированию! Тут я и вбил в «Яндекс» заветную фразу «обучение детей программированию».
Scratch нашёлся не сразу. Помню чувство, которое я испытал при первом запуске программы: «эх, жаль что в моем детстве этого не было». Быстренько пробежав по блокам Scratch, я высоко оценил его возможности. Полчасика потыкал в него и, переключив на русский язык, позвал ребёнка. После показа нескольких блоков, ребёнок попросил меня немного подвинуться, и продолжил самостоятельно. Через полчаса квартиру огласили дикие вопли Кота: «Ого, ребенок сам разобрался со звуками», — подумал я.
Артёму Скретч понравился, несколько месяцев он проводил с ним по несколько часов в день. Проекты вылетали как из пулемёта, их количество приближалось к сотне штук. Интересный момент: ребенок не хотел признавать переменные. Он считал, что можно обойтись и без них, и долгое время обходился. Я говорил ему, что переменные — это важная фишка, но он не верил. Пришлось сочинить ему задание, которое без переменных не решалось. В общем, весь первый класс ребенок игрался со Скретч и пытался рассказывать о нем в школе. Никто не понимал о чем он говорит, и ему стало обидно, что он не может делиться ни с кем своими проектами. Интернет я ему тогда еще не показывал, да и потом, когда показал, он сказал, что хочет общаться с реальными людьми, а не по интернету.
Я стал думать, как решать эту проблему. Первая мысль была такая: установить в классе на нетбуки Scratch, показать его учительнице, пускай на продлёнке дети занимаются. Учительница была не против. Я научил Артёма устанавливать Scratch с флешки; и вот, как-то вечером мы пошли «на дело». Устанавливали мы его на 26 нетбуков около 2 часов, устали от рутинной работы, после чего сын сказал, что не хочет быть системным администратором.
Организация кружка юных программистов на Scratch
К сожалению, во втором классе на группе продлённого дня Scratch так ни разу и не включили… Тогда я стал думать дальше. Это начинало напоминать крокодила Гену, который искал друзей для Чебурашки. В мультфильме друзья появились, когда начали общее дело. Мы тоже решили начать «дело» — организовать кружок Scratch. Ребенок уже ходил на рисование в молодежный клуб, к директору которого я и обратился.
Помещения, конечно же, не было, поэтому нам предложили заниматься в музыкальном классе по воскресеньям, когда там нет занятий. Так-как опыта ведения кружка у меня не было, в целях привлечения максимального количества потенциальных «друзей», занятия сделали бесплатными. Помню подозрительный взгляд директора и вопрос: «А зачем вам это надо?» Не помню, что я там мычал в ответ, но решили попробовать. Осталось набрать народ, для этого были проведены следующие мероприятия:
— объявление на стенде в клубе;
— реклама на местном форуме;
— раздача перед началом уроков в школе рекламы.
Поиск учебной литературы, подходящей для детей начальной школы, ничего не дал. Поскольку не было проектора, то я предварительно распечатал каждому по три листа — блоки скретч с описаниями.
На первое занятие пришли 8 детей 7-10 лет. Разместились, начали устанавливать Скретч — тут очень пригодились навыки Артёма по скоростной установке программы, полученные в школе. Среди пришедших детей одна девочка, у которой папа программист, уже знала как работать в Скретч. Она помогла нам показать ребятам как двигать блоки. Через 15 минут все освоились с интерфейсом и стали делать то, что написано в листочках. Как обычно, на первом уроке раздалось громогласное мяуканье. Но теперь творилось что-то невообразимое, одновременно орали 8 котов! Срочно изучили на ноутбуках кнопку уменьшения громкости. Занятие продолжалось 2 часа, дети были в восторге. Подробнее про восторги можете прочитать у Кодабры. Были пройдены основные блоки, и дети стали требовать игр. Мои объяснения, что надо немного подождать, и изучить ещё несколько блоков и координатную плоскость — не принимались. На совместном совещании с Артёмом было принято решение ускорить процесс обучения, так как все дети попались смышлёные. Изначально я планировал рассказать о координатах примерно на 5 занятии, однако без координат ни мультфильм, ни игру не сделать. Я был приятно удивлен, когда оказалось, что некоторые дети во 2-м классе уже знали, что такое координатная плоскость. Со словами: «мне папа объяснял» — дети сходу начали применять блоки с координатами.
Игру на втором занятии делать не стали, а сделали мультфильм.
Для запуска нажмите на зелёный флаг в центре экрана.
На второе занятие пришли ещё несколько новичков. Я раздал им первый урок, остальные проходили мультфильм. Быстро сделав мультик, начинали его видоизменять. Выбирали других персонажей, писали разные фразы, и все делали вид, что поняли, что такое координаты. Это я заметил через несколько занятий. Многим нравилось делать смешные игры, прикалываться и веселиться, а чтобы я не приставал со скучными объяснениями, говорили, что всё понимают. Не смотря на все мои усилия, некоторые дети координаты так до конца и не поняли. Кстати, те, кто не поняли координаты, через некоторое время кружок побросали. Остался костяк смышлёных учеников. Общая статистика после трёх полугодий обучения примерно следующая: те, кто занимаются всё это время, человек 10, это костяк. Всего ходило на занятия человек 40. Те, кто побросали — посетили примерно по 10 занятий каждый, поняли, что им это не интересно — и ушли.
Надо отметить, что у меня не хватало фантазии придумывать каждую неделю новый урок. В этом мне помогал Артём. Его хватило на два полугодия, а потом я стал придумывать сам. Это очень сложно, и детям нравились не все уроки. Я каждое занятие прошу детей придумать тему следующего занятия, за всё время они помогли мне 3-4 раза. В последнее время, в поисках вдохновения, я часто захожу на сайт scratch.mit.edu, там очень много классных примеров.
По образцу «Кодабры» попытаюсь сформулировать правила обучения.
1. Каждую минуту ребенку должно быть интересно. Если хотя бы одному не интересно, он включает постороннюю игру, или мультик на ноуте, и к нему тянутся остальные. Если ребенок заскучал, ему всегда можно показать новый прикол на Скретч, ведь это очень глубокая и мощная программа.
2. Все предложения детей по усовершенствованию игр — на конец занятия. Есть один мальчик, он не хочет делать по написанному, а сразу начинает генерировать идеи. В результате отходит от плана урока. Понаделает своих скриптов. У него ничего не работает, и он начинает отвлекать меня. А разобраться в чужом коде не всегда просто, даже если его писал 8 летний пацан.
3. Всегда иметь под рукой дополнительные задания. Некоторые дети очень смышлёные, у них сразу всё получается, а занятия длились по 2 астрономических часа. Если ребенок за час все сделает — надо дать ему ещё что-нибудь интересное.
4. Занятия дольше 1 астрономического часа проводить не следует. 40 мин, как в школе — оптимально. Дальше у детей реально ухудшается концентрация и они начинают хулиганить.
5. Берите с собой воду и печеньки. Поощрение печенькой реально работает. Я умилялся, когда это подтвердилось на практике.
Появление книги
В процессе создания уроков я постоянно мониторил интернет в поисках литературы по Scrath. К сожалению, книга уважаемого Евгения Патаракина написана не для начальной школы, а других книг на русском я не нашел. После первого полугодия занятий у меня накопилась куча материалов с уроками, и, совместно с Артёмом, мы решили сделать книгу. Писал и делал скриншоты, конечно, я. От Артёма были все идеи уроков, и пара историй про Котёнка Тесея и летучую мышь Rousettus aegyptiacus (которая, как оказалось, переносит вирус Эбола). Так-как издать книгу дело не дешёвое, было принято решение делать её в электронном формате epub. По этой ссылке можно скачать книги и журналы про Scratch созданные в период с 2013 по 2016гг.
Основные цели написания книги
Результат
1. На книжной ярмарке NonFiction 2013, где мы с Артёмом проводили мастер класс по Scratch, ему дали бэйджик — участник выставки и мы прошли в помещение без очереди, которая была 100 метров. Никогда я не видел ещё такого гордого выражения лица. И, потом, на мастер классе, он сиял уверенностью, и с огромным удовольствием показывал всем ребятишкам Scratch;
2. Книга на данный момент скачана более 4500 раз на русском и 1700 на английском языке. Есть несколько положительных отзывов. Надеюсь, некоторым детям она действительно помогла сделать первые шаги в Scratch;
3. Несколько человек написали что планируют сделать кружки Scratch;
4. Один очень уважаемый человек даже приезжал на наше занятие с дочкой перенимать опыт. Он уже тоже открыл кружок в Москве. В интернете всё больше людей попадаются со схожими интересами;
В процессе написания книги выяснилось, что электронные книги можно продавать. Так как в нашей стране никто покупать электронную книгу не будет, было решено перевести книгу на английский, чтобы протестировать схемы распространения электронных книг.
Заключение
Друзей у Артёма прибавилось. Многие из его класса приходили на кружок, и, хотя и побросали, авторитет ребенка вырос. Несмотря на то, что теперь он переключился на майнкрафт, я иногда спрашиваю у него совета по Scratch.
Очень надеюсь, через несколько лет в начальной школе будет предмет «основы программирования на Scratch».
Эта книга и еще две изданы в издательстве Ridero, и доступны по технологии «Печать по требованию».
По указанным ссылкам можно ознакомится с первыми 20% книг.
Сайт книги «Школа капитана Грампа»
Сайт книги «Scratch для учителей и родителей».
Сайт книги «Знакомьтесь, это Snap! Блочная среда программирования мощнее Scratch»
Кстати, Snap! — это реально мощная вещь. Основным отличием от Scratch являются расширенные возможности по построению собственных блоков, а также списки и функции первого класса. Эти мощные возможности позволяют использовать Snap! не только в начальной школе, но и для обучения старшеклассников и студентов. Мне бы очень хотелось чтобы он широко использовался в нашей стране.
upd 29.11.2017
Издан второй учебник по программированию на Scratch!
upd 18.05.2018
Запускаю с 1 июня 2018 два мощных онлайн курса
1. обучение программированию детей на Scratch
2. обучение программированию школьников в среде Minecraft
подробности на страничке educationforkids.online
А также я перевел еще пару итальянских книжек о программировании на Scratch
«Видеоигры на Scratch» и «Анимация на Scratch»
upd 30.06.2020
Приглашаю всех детей на недельные марафоны по программированию в Scratch, Minecraft, Roblox, CoSpaces, Python, Scratch JR, чтобы они могли под присмотром педагога познакомиться с этими языками программирования и бонусом получить навыки работы в Paint, Word, на google диске. codim.online/marafon
upd 09.03.2021
на платформе codim.online уже более 16 курсов по детскому программированию и куча недельных IT марафонов.
Я даже записал курс по Астрономии! Люблю ее с 6 лет, когда нашел на чердаке советский учебник астрономии за 10 класс.
А в 10 лет мне подарили вот эту книгу — зачитал до дыр.
Что можно сделать при помощи языка Скретч
Среда Scratch задумывалась как частичная альтернатива Фотошопу. Здесь можно:
- создавать фильмы, видео;
- писать игры, начиная от простых шашек и заканчивая крутым симулятором города;
- заставлять объекты взаимодействовать друг с другом;
- создавать интерактивные анимированные истории;
- делать презентации, слайд-шоу.
Над любым объектом можно выполнить серию действий: переместить, видоизменить его, научить говорить. Из простых команд складываются очень сложные модели.
Ребята также могут активно общаться между собой и в международном сообществе Скретча.
Мы всегда на связи
Скорее записывайтесь по телефону, в социальных сетях
и мессенджерах. Число мест ограничено!
Скретч: программирование для детей
Даже двухлетний ребенок способен собрать простейшую конструкцию из Лего. Детский язык программирования Скретч использует кубики Лего как метафору, все его программы собираются из ярких разноцветных блоков-кирпичиков. Язык очень понятен и прост, приступать к его изучению можно уже с 7-8 лет. От ребенка потребуются только базовые навыки: умение считать и писать. Подростки от 10 до 16 уже могут самостоятельно использовать язык для самовыражения путем написания игр, презентаций, слайдшоу и пр.
Зачем учить Скретч программированию
Зачем нужен Scratch для детей? Среда позволяет развивать мышление, логику, творческие данные. Обучает искусству программирования в форме игры, что значительно облегчает восприятие сложных понятий.
За программированием стоит будущее планеты! С каждым днем увеличивается число приложений, программ, делающих жизнь человека комфортнее и проще. Буквально с пеленок наши дети погружаются в цифровую среду: смотрят мультфильмы, общаются по скайпу, играют в интерактивные игры. Для них не должно быть загадкой, как подобные вещи появляются на свет.
Так же, как любой другой язык — английский, русский, французский — Скретч, да и программирование в целом — алгоритмы, операторы, воспринимаются тем проще, чем раньше его начинают учить. Но даже если ваш ребенок не выучится на программиста, дизайнера, инженера, не станет работать с робототехникой — благодаря усвоенным в детском возрасте вещам ему будет легко ориентироваться в современном диджитал-мире. Помимо цифровой среды, он сможет применять свои навыки в любой профессии, и даже в бытовых ситуациях. При этом развитие при помощи Скретч программирования идет не только в сторону логики и математического склада ума — активно совершенствуются и творческие навыки, умение придумать и воплотить самые нестандартные идеи.
Читайте также: