Ко мне на занятие приходит новый мальчик лет 10 лет, Максим. Перед началом он презрительно осматривает группу ребят 7-9 лет, все младше него. И говорит: Антон, ну а Скретч же уже нигде не используют, сейчас же на более сложных языках детей учат программировать?
Я: есть и другие языки, а ты на Скретче умеешь работать?
Он: Ну да, делал программы.
Я: отлично, садись, посмотрим что ты умеешь.
Максим садится рядом с 8-летним Сережей, фанатом наших занятий. Сегодня задание такое: я словесно описываю программу, а ребята сами ее должны сделать. Тренируем внимание к требованиям и заодно проверяем текущие навыки.
Программа такая: наверху экрана плавают 5 воздушных шариков, внизу — ракета, которой мы управляем клавишами влево-вправо. По нажатию на пробел ракета должна вылетать наверх и лопать шарики. Когда все шарики лопнули, показать экран победы.
Поехали!
Ребята бросаются в бой — кто-то начинает с расстановки шариков, кто-то с ракеты и ее управления. Через несколько минут показывают свои программы — шарики висят, ракета ездит влево-вправо.
Замечаю, что новенький Максим сидит, в ступоре глядя, как Сережа рядом быстро делает игру.
— Не пойму, с чего начать?
Я подсказываю — выбери шарики, задай им положение на сцене.
— А как это сделать?
Показываю…
— А как стрельбу сделать?
Рассказываю — делаешь отдельный объект-пулю, она невидимо перемещается за ракетой и следит за нажатием пробела — когда нажимаем, она летит наверх.
— Ничего не понял — как невидимо перемещается, как летит?
В итоге намучался я с этим опытным мальчиком. Как делать плавное движение — не знал, с координатами не разобрался, клонирование не понял. Оказалось, что в такой простой штуке, как Скретч, есть вещи, которых парень не знал. И это базовые вещи — движение, управление объектами…
Зато в конце занятия он начал мне рассказывать, что создает сервер для Майнкрафта.
Такую точку зрения среди ребят я встречаю не первый раз. Что визуальное программирование, где нужно блоки перетаскивать — это просто стыд и позор, ясельная группа:
А вот сервера создавать — для GTA или Майнкрафта — это настоящее крутое программирование.
Действительно ли Скретч — бесполезная трата времени и нужно ли переключать детей на более сложные вещи? Давайте смотреть.
Мнимая крутизна
Что означает, что ребенок создает игровые сервера? Говоря простыми словами, он берет готовую игру, копирует ее и меняет настройки. Что меняет:
— Притяжение (гравитацию)
— длительность дня
— силу удара персонажей
— количество жизней у героя
И задача программирования в том, что ребенок в четко оговоренном месте меняет несколько чисел.
/time set day — и в Майнкрафте наступил день.
/summon horse — и уже бежит квадратная лошадь
Вроде бы в этом нет ничего серьезного? Да, серьезного в выполнении простых команд ничего нет. Умственных усилий при таком программировании почти не прикладывается. Но у ребенка перед глазами совсем другая игра, к которой он приложил руку. И ему кажется, что он сам создал весь этот новый мир. Это открывает ребенку новые возможности:
— Можно говорить друзьям “я вчера новый сервер Майнкрафта сделал”
— Можно считать себя настоящим программистом, который пишет код
— Помечтать о том, что в его версию майнкрафта будут играть тысячи человек и на этом можно заработать
Это мнимая крутизна, давайте помнить что ребенок просто написал три команды по инструкции.
Пар из ушей
Теперь подсмотрим за ребенком, который делает игру в Скретче. Игра такая — мы играем за башню, на которую нападают монстры. Монстры лезут с разных сторон, а мы должны стрелять по ним.
С чего начну? Наверное, с башни, которая стоит посередине и просто стреляет. Потом сделаю монстров, чтобы просто бежали. Потом уже все остальное.
Готовой башни нет, надо поискать в интернете. Вот эта подходит. Добавляю в программу, делаю первые скрипты: чтобы была посередине, чуть поменьше размером.
Так, теперь стрельба. Делаю пулю, пусть следит за направлением мышки. Делаю обработчик клавиши пробел — теперь пуля вылетает в сторону курсора мыши. Отлично!
Непорядок, у нас получается только одна пуля, которая все время вылетает при выстреле. Получается, нельзя выстрелить, пока пуля не улетела за край экрана? Придется заморочиться с созданием клонов — пусть летят клоны, настоящая пуля будет скрыта.
А лучше сделать перерыв, чайку попить…
Оставим ребенка, пусть отдохнет. Вы тоже заметили, что у него шестеренки в голове работали на полную мощность?
Это и есть настоящее программирование — когда приходится решать массу задач, не теряя из виду главные — какую игру я делаю, на каком этапе я сейчас нахожусь. Идти на компромиссы, подсматривать в видео-обучалки, задавать вопросы на форуме, искать в интернете.
Пар из ушей во время программирования — это нормально, так и должно быть. Когда дети пишут программы на Scratch, то пар идет.
Бесполезное развлечение?
Теперь о том, полезны ли занятия Скретчем с детьми или это баловство?
Давайте начнем с плохого, с минусов Скретча:
👎 Из-за блоков программы получаются громоздкими. Блоки с движениями героя и сменой его внешности сразу занимают много места. Если же мы начинаем добавлять разные штуки вроде переходов по уровням или стрельбы, программа быстро вырастает.
Дети могут потеряться в программе, их нужно специально учить организовывать свой код. Иначе получится свалка из разных блоков.
👎 Перетаскивание блоков утомляет. Чтобы собрать простое движение героя, нужно сбегать за разными блоками — движение, проверки на нажатие клавиши, циклы. Первые программы получаются медленно. Должно пройти время прежде чем ребенок начнет быстро ориентироваться в готовых кирпичиках команд.
👎 Сложно сделать что-то сложное. В Скретче нет готовых игровых блоков — физики игры, управления персонажами, собиранием предметов и так далее — все нужно делать своими руками. Поэтому выйти на новый уровень, создать сложные и интересные игры не так-то просто. Подавляющее большинство детских проектов однообразны и примитивны — догонялки, стрелялки, кликеры. Создавать что-то сложнее детям самим непросто, их нужно этому специально учить.
Теперь поговорим о хороших сторонах Скретча.
⭐ Главная польза в том, что во время занятий ребенок активно думает. Ему приходится. Ничего не делается само собой. Чтобы герой плавно двигался, прыгал с одной стороны карты на другую, выпускал по несколько пуль сразу — все это нужно делать своими руками. Использовать клоны или нет? Как перебрасывать героя по координатам? Масса задач и проблем, которые приходится решать здесь и сейчас. Отличная тренировка для мозгов.
⭐ Дети осваивают простые инструменты компьютерного языка — циклы, условия, алгоритмы. Да, это происходит в визуальном виде, вместо настоящего
for (int i = 0; i < 10; i++) {
hero.Move(10);
}
Ребенок использует два готовых блока — цикл и движение:
Но смысл цикла и движения от этого не меняется. Да, освоение инструментов идет на верхнем, несложном уровне, для простых задач — но ведь ребенку это и нужно. Уметь самому уверенно собирать из простых блоков игры и мультики.
⭐ Скретч работает в браузере и офлайн. Ребенок может делать свои проекты с любого компьютера, где есть интернет. И преподаватель их может удаленно посмотреть и прокомментировать. Или даже подправить. А если нет интернета, можно создавать игры в офлайн-программе — в отпуске на море, в дороге, школе. Я сам не раз создавал игры в самолете. Проекты ребенка можно показывать в школе, выкладывать на сайте, посылать друзьям.
⭐ Учит бороться с трудностями. Пока сделаешь программу — десять раз вспотеешь.. Программирование для майнкрафта — это как из 5 панелей сложить дом. Скретч — это ножовка, топор и куча бревен, а дом строишь сам. Это реальный опыт преодоления неудач и сложностей, который очень благотворно влияет на детей. Ребенок с таким опытом преодоления рвется дальше в бой и не боится трудностей.
⭐ Прокачивает пользование мышкой — пока работаешь с блоками, придется постоянно использовать мышку. Поначалу это утомляет, но через месяц дети уже уверенно ей владеют. И в обычной работе на компьютере это потом тоже пригождается.
⭐ Градусы и координаты, синусы и притяжение — математика и физика начинают помогать делать компьютерные игры. Ребенок и лучше понимает эти абстрактные вещи, и по-другому к ним относится. Скретч здесь хорошее подспорье, чтобы лучше освоить эти школьные понятия.
Что в итоге?. Я вижу Скретч отличным стартом в мир программирования для детей 7-12 лет. На нем можно детям быстро сделать простые игры. А дальше на выбор — либо делать сложные игры либо изучать скриптовые языки вроде Python или Javascript.
А какой у вас опыт — пробовал ли ваш ребенок программирование? На чем занимались, понравилось или нет? Расскажите, пожалуйста.
А как попасть к вам на уроки программирования?
Гульназ, здравствуйте! Вас интересуют очные уроки или через онлайн?
Очно начну проводить занятия в г. Раменское, в школе Кругозор по воскресеньям. В онлайне я периодически делаю наборы, следующий планирую сделать в течение месяца-двух. Подробности обязательно будут в рассылке.
Жаль нет кнопки репоста.
Ольга, я продублировал запись в ВК (https://vk.com/nesyutin_a?w=wall406105763_87) и ФБ (https://goo.gl/xkFjD9) — можно поделиться через эти соцсети.
Здравствуйте, Антон . У меня сын 8. Никогда не играл в компьютернын игры и , следовательно, не просит поиграть в них. На телефоне иногда играет в шахматы и шашки. Стоит ли его увлекать скратчем и созданием игр, если нет запроса? Боюсь вместе с этим он начнет играть и в компьютерные игры
Наталья, думаю, можно для ознакомления — показать работы других ребят и предложить сделать что-то свое. Я не думаю, что занятия программированиям приведут к тяге поиграть — скорее наоборот, игры ребенок будет рассматривать с точки зрения создания своего подобного.
Ух ты, такие малыши, а делают программы. Это же круто. А как этому можно научить своего оболтуса? Ему почти 12, залипает в ютубе, в танки х и всякой остальной «фигне». Думаю, сделать игрушку ему было бы интересно.
Конечно, в 12 можно научить 🙂 Приходите на курс, буду рад поработать с вашим ребенком.
Дочери 9 лет. Scratch ей очень интересен, изучает по учебнику. Но пока не придумывает сама, делает только то, что есть в книжке.
Анна, приходите осенью на курс по Скретчу 🙂
Здравствуйте! Просмотрела Ваш вебинар по программированию, меня очень заинтересовало, но 11 летнего сына моё предложение поучиться никак не интересует, зачем мне это спрашивает.
Есть ли у Вас какое-то презентационное видео именно для детей, чтоб они загорались, не родители.
Здравствуйте подскажите пожалуйста как у вас происходит обучение по онлайн? С уважением Данил