scratch

Scratch на каникулах

Ещё до отъезда к дедушке и бабушке дочка, с моей подачи, увлеклась программированием на «Скретче» — иногда по вечерам делала на нём что-то несложное. Я показал ей «Скретч», чтобы запрограммировать вместе таблицу умножения — это был мой хитрый план, чтобы она через игру потом её выучила.

Как-то неожиданно программировать ей понравилось. Я не ожидал, что она настолько этим увлечётся.

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

Думал на каникулах интерес сойдёт на нет, но как бы не так. Сейчас в её «детском гитхабе» уже 15 проектов, часть из них — вариации одного и того же, но, судя по активности, она и по числу оригинальных проектов меня скоро перегонит.

Скриншот списка проектов Scratch: 15 проектов, включая Untitled-10, Untitled-9 («канец»), Untitled-8 («2+2=4»). Видны кнопки действий, даты и счётчики.

Оставить комментарий

Таблица умножения

Еве в школе задали выучить таблицу умножения. Пытались учить по столбикам — умножение сначала на одно число, потом на следующее и так далее. Не особо-то это работает — выученное столбиками воспроизводится потом тоже только столбиками. Надо как-то учить вразнобой, а это совсем скучно, дочка от такого быстро устаёт.

Против такого я знаю только один способ — геймификацию. Задумался что за игру можно было бы сделать, почему-то вначале мне пришло в голову, что это должно быть что-то настольно-карточное. Потом осенило — надо на Скретче написать! Мы же как раз с ним возимся!

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

За правильный ответ начисляется одно очко, на неправильный — вычитается. На сто очков сделали танец ёжика под музыку.

Программировал, в основном, я, для дочки пока такое сложно — взаимодействие двух спрайтов через сообщения у неё пока в голове не укладывается, но когда она загоралась что-то несложное доделать, давал клавиатуру ей.

Оно того стоило — дочка вчера на интересе дошла до танца, хотя уже очень устала от прошлых повторений таблицы и от программирования.

Скриншот обучающей игры: на фоне пейзажа с видом на город и море — мультяшный ёжик с вопросом «6×1 = ?» и миска с бананами, счёт 17, поле ввода внизу.

17 комментариев

Первая дочкина программа

Время не сохранило мою первую программу. Из своих дневников жизни я прочитал, что она была на Бейсике для компьютера «Радио-86РК». Я едва помню сам этот факт, не говоря уже о том, что же я тогда написал. Жаль я не записал в дневник что делала та программа, сейчас мне самому интересно было бы взглянуть.

Поэтому я решил сохранить первую дочкину самостоятельную программу. Она написана на языке «Скретч». Два дня назад мы вместе попробовали написать программу по уроку на «Ютубе», а вчера дочка перед сном написала свою собственную.

Конечно, очень простая — нажимаешь на пробел, собака лает. Фон и звук взят из стандартной библиотеки.

Скриншот интерфейса Scratch с блоками кода: при нажатии пробела повторяется 3 раза смена фона и воспроизводится звук Bark, справа — спрайт собаки на фоне кирпичной стены.

2 комментария

«Щенок» из Лего Майндштормса

Один из читателей попросил показать как выглядит готовый «щенок», собранный из набора «Лего Майндштормс». Вот он, сидит на крышке набора.

Из активных элементов у него три мотора (два двигают задние лапы, один — голову), датчик цвета, который определяет, что ему дают «кость» (на фото кость лежит рядом) и датчик нажатия, который срабатывает, если погладить «собаку» по спинке.

Робот LEGO Mindstorms EV3 с ручкой рисует на крышке прозрачного контейнера, рядом лежат цветные кубики и шестерёнка.
Робот «Щенок» («Puppy») собранный из набора Лего Майндштормс

Программа робота крутится в цикле, в котором меняются несколько переменных, определяющих состояние робота — он может злиться, хотеть есть или спать и так далее. Кроме того, есть запрограммированные реакции на попытку его погладить или накормить. Не слишком разнообразно, дочка довольно быстро с ним наигралась.

Скриншот IDE с проектом «Щенок 3»: слева панель блоков управления моторами, справа — собранная программа из цветных блоков.
В центре — программа «щенка» на языке визуального программирования Scratch, слева — палитра операторов языка

Кажется использовать набор как конструктор для сборки чего-то готового не слишком увлекательно. Надо, может, подумать как научить дочку вносить модификации в программу, либо пока действительно купить что попроще, может там семилетнему ребёнку интересней будет. А «Майндстормс» оставить «на вырост».

13 комментариев

99 бутылок: Scratch и HQ9+

54. HQ9+ — язык, у которого только четыре оператора. «H» выводит «Hello world», «Q» печатает исходный код программы, 9 выводит «песню о пиве», а «плюс» «увеличивает аккумулятор». Язык, понятное дело, придуман в шутку и у неё есть продолжения — «объектный» «HQ9++», Тюринг-полный «HQ9+B» и так далее.

Данная программа на этом языке выглядит вот так:

9


53. Scratch. «Скретч» — язык программирования для школьников младших и средних классов. Интересный класс языков, я никогда им особо не интересовался, а тут возник совершенно профессиональный интерес — как можно дать возможность программировать что-то в нашей системе людям, которые в программировании ничего не понимают.

Я, для интереса, написал на «Скретче» свои «99 бутылок». Программа на скриншоте. В среде редактирования мы управляем лисёнком и всё программирование крутится вокруг него, куча блоков позволяют что-то с ним делать — двигать, вращать, заставляют его что-то говорить и так далее. «Думать» выводит свой аргумент в  «облачке» его мыслей.

Скретч (84.30КиБ)

Программа строится из цветных блоков, цвета кодируют тип блока — «движение», «внешность», «звук», «данные», «управление», «операторы» и так далее. Основные конструкции обычных языков в наличии. Процедур, как таковых, нет, но можно отсылать события другим ээ… подпрограммам и через глобальные переменные получать результат. Есть даже что-то похожее на потоки — передавая события, можно запускать подпрограммы асинхронно.

Из структур данных есть целые числа и числа с плавающей точкой, строки и даже массивы. Для последних доступны все операторы для работы с ними — добавление, удаление, замена, получение значения по индексу, замена и так далее.

Есть ещё какие-то «Другие блоки», но с ними я не разбирался. Кажется, через них можно как-то расширять язык.

15 комментариев