Скретч программирование что это такое

Что такое Scratch

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

Чтобы зарегистрироваться на сайте, надо нажать кнопку «Присоединяйся», которая находится вверху сайта.

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

В заголовке сайта после логотипа Scratch есть четыре кнопки – «Создавай», «Исследуй», «Идеи», «О проекте».

Если кликнуть по «Создавай», откроется среда программирования Scratch. Как в ней работать, рассмотрим чуть позже. Если вы зашли сюда и не знаете как выйти, просто кликните по логотипу Scratch в верхнем левом углу. Это вернет вас на главную страницу сайта.

Если кликнуть по «Исследуй», вы перейдете на страницу, где можете посмотреть чужие проекты. Часть из них доступна также с главной страницы.

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

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

Если вы кликните по кнопке «Войти внутрь проекта», то окажетесь в среде программирования Scratch и сможете посмотреть внутреннее устройство проекта, его логику. На основе чужого проекта можно создать свой, то есть ремикс. Однако сначала надо научиться работать в среде программирования и создавать собственные простые проекты.

Вернемся к шапке сайта и рассмотрим меню справа:

В первую очередь нас интересует ссылка «Мои работы». Она открывает страницу, с которой вам доступны собственные проекты. На эту страницу также можно перейти, кликнув по изображению папки в меню.

Чтобы начать новый проект, надо нажать кнопку «+ Новый проект». Откроется та же среда программирования, что при клике по ссылке «Создавай» вверху. Если вы хотите править ранее созданный проект, нажимайте на кнопку «Войти внутрь проекта». А вот клик по названию проекта откроет его в режиме исполнения, то есть просмотра.

Что же, создадим новый проект и изучим интерфейс Скретча:

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

По умолчанию проект назван Untitled (Неозаглавленный). В поле, где написано это слово, можно задать более осмысленное имя. Оно сохранится автоматически.

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

В основной области экрана слева на вкладке «Код» расположены строительные блоки. Они задают поведение объектов, которые вы видите в области справа на игровом холсте, или сцене. Сейчас там только кот.

Большое пустое поле посередине – это самая важная область – редактор кода. Здесь вы «пишите» код, а точнее, конструируете его из блоков, которые перетаскиваете из левой части.

Строительные блоки слева разделены по секциям-разделам «Движение», «Внешний вид», «Звук» и так далее. Нажимая на соответствующий цветной кружок, вы быстро перейдете к блокам необходимой секции.

В этом уроке не будем рассматривать весь интерфейс среды программирования Scratch. Постепенно, изучая курс, мы познакомимся и с другими возможностями. А сейчас для создания первой программы достаточно уже полученных сведений.

Возьмите блок «идти 10 шагов» и киньте его в редактор кода. Теперь пощелкайте по нему мышью. Вы увидите, как от каждого клика кот на сцене будет смещаться на небольшое расстояние.

Если кот на холсте далеко ушел от середины, его можно взять здесь мышью и перетащить в новое место холста.

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

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

После этого два блока – «когда флажок нажат» и «идти 10 шагов» – надо соединить подобно элементам конструктора Лего.

Последовательность блоков важна. Команда, которая расположена выше, будет выполняться раньше, чем команда, которая расположена ниже. Часто конфигурация самих блоков подсказывает, как их надо соединять. Например, мы никогда не сможем сделать команду «когда флажок нажат» второй, третьей или какой угодно, кроме как первой. У этого блока нет выемки сверху, куда можно было бы вставить другой блок. Программа всегда начинается с команды «когда флажок нажат».

Теперь кот будет перемещаться при клике по зеленому флажку над холстом.

Однако от каждого клика кот по прежнему шагает всего где-то на 10 пикселей, и никакой нормальной анимации перемещения мы не видим.

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

Поэтому вернем наше заветное число 10, а может быть даже 5 или 1.

Давайте вернемся к реальности и подумаем, как мы на самом деле ходим. По-сути мы много раз делаем одно и тоже: шаг левой, шаг правой, шаг левой, шаг правой. Мы зацикливаем шаг, повторяем его много раз. Правильнее сказать: «мы шагаем в цикле».

Аналогично делается в Scratch. Следует поместить команду «идти … шагов» в какой-нибудь цикл. Циклы – это тоже строительные блоки и одно из важнейших понятий программирования. Циклам стоит посвятить отдельный урок. Однако сейчас не будем теряться, зайдем в оранжевый раздел «Управление» и перекинем в редактор кода блок «повторить 10 раз».

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

Программу надо пересобрать. Для этого сначала надо отсоединить блок «идти … шагов» от «когда флажок нажат». Чтобы разорвать связь между блоками, надо потянуть за нижний блок.

Теперь поместим команду «идти 10 шагов» внутрь цикла «повторить 10 раз», а цикл присоединим к блоку «когда флажок нажат».

В данном случае кот сделает в общей сложности 100 шагов, так как 10 раз умножить на 10 шагов будет 100 шагов. Однако эта программа отличается, если бы мы просто дали команду «идти 100 шагов». В случае цикла перед каждым его повторением будет небольшая невидимая на глаз задержка, в результате чего будет наблюдаться относительно плавная анимация.

Анимацию можно сделать более плавной, если установить меньшее число шагов и большее число повторений. Например, 1 шаг и 200 повторений. Но в этом случае кот будет двигаться медленно. Таким образом можно регулировать скорость перемещения объекта: чем больше шагов он делает за один повтор цикла, тем больше его скорость.

Заменим в нашей программе цикл «повторить … раз» на «повторять всегда». Эта команда также находится в оранжевой секции «Управление». Запустим программу. Что произойдет, когда кот дойдет до края экрана? Он остановится. Программа продолжает работать, но кот уже никуда не идет.

Чтобы принудительно остановить программу, надо нажать на красный кружок над холстом.

Если мы хотим, чтобы кот действительно двигался всегда, как минимум до тех пор, пока мы сами не остановим программу, следует добавить еще одну команду – «если касается края, оттолкнуться». Этот блок находится в синем разделе «Движение».

Команду «если касается края, оттолкнуться» следует поместить в цикл. А вот до команды «идти 10 шагов» или после, не столь важно. Кот сначала может сделать 10 шагов, а потом, если коснулся края холста, то перевернуться. Или же он сначала проверит, не касается ли края холста, после чего перевернется.

Когда вы запустите такую программу, кот будет ходить от левого края к правому без конца, до тех пор, пока вы сами не остановите программу. Однако скорее всего ваш кот будет ходить немного странно: влево идет ногами, а как направо – становится на голову.

Дело все в том, что в Scratch по умолчанию объекты при перевороте вращаются по кругу. Что это значит? Вы должны знать, что полная окружность составляет 360 градусов. Когда же мы переворачиваемся в обратную сторону, то делаем разворот на половину окружности, то есть на 180 градусов.

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

Теперь представьте, что вы подтянулись на перекладине так, что ваши руки и перекладина находятся на уровне пояса. И вы решили перевернуться на 180 градусов вокруг этой перекладины. После этого ваша голова окажется внизу. Смотреть же вы будете туда, куда и хотели: если смотрели влево, будете смотреть вправо.

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

Эта команда многовариантная. Вместо влево-вправо можно выбрать «кругом» или «не вращать». Кругом мы уже видели, так ведут себя объекты по умолчанию. Если выбрать «не вращать», объект при отталкивании никак не будет вращаться. Он будет двигаться задом, когда натолкнется на край холста передом, и будет двигаться передом, когда натолкнется на край задом.

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

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

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

Изучите представленные здесь поля самостоятельно. Что определяют их значения? Подумайте, почему важно задавать объектам, которые в Scratch по умолчанию называются Спрайтами, осмысленные имена.

Составьте программу, согласно которой кот ходит туда-сюда, но через каждые 300 шагов останавливается на 1 секунду и говорит «Мяу». Подсказка: среди прочего вам понадобятся две команды, которые не рассматривались в этом уроке. Одна из них находится в разделе «Управление», а вторая – в разделе «Звук».

Источник

Scratch для «продвинутых»

Клонирование и переменные в Scratch

Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.

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

Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.

Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.

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


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

ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.

Имена объектов как их идентификаторы

ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».

Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.

На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.

Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.

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

Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.

Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.

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

Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:

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

И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!

Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!

Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.

Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.

Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).

Обучаем спрайт новой функции и получаем.

Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.

Мы написали все, что необходимо, теперь главное правильно использовать данные функции.

Если у вас все работает правильно, то вы должны увидеть следующее:

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

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

Подводим итоги

Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.

Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.

Источник

Скретч

Материал из Скретч Вики

Скретч — это бесплатный язык программирования для обучения, созданный группой программистов для детей в Массачусетском Технологическом Институте (МТИ). Современная версия 3.0 может быть загружена здесь (предыдущая версия 2.0 может быть загружена здесь) или попробована в онлайн здесь.

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

Пользователь Скретч может перемещать блоки из палитры блоков на область скриптов соединяя их в скрипты как паззл. Этот метод программирования называется программирование «тащи и бросай».

Для маленьких детей был создан ScratchJr.

Содержание

Как был сделан Скретч?

Скретч создан при помощи движка WebGL и запрограммирован на HTML5 и JavaScript. Изначальный код Скретча находится на сайте GitHub.

История

Скретч начал разработку в 2003 году и был выпущен только в 2007 году.

Скретч 1.0, первая версия, была очень похожа на Скретч 1.4. В то время существовал только автономный редактор; веб-сайт представлял собой небольшой блог, где можно было загружать и смотреть проекты. По мере роста Скретча, веб-сайт становился все больше. Позже, Скретч 1.1, Скретч 1.2, Скретч 1.3 и Скретч 1.4 были выпущены. Тогда у Скретча появились миллионы пользователей и проектов, а также множество новых функций.

После выпуска Скретч 2.0 в 2013 году веб-сайт и интерфейс в проектах были изменены. Скретч продолжал расти, достигнув 30 миллионов пользователей и проектов.

Скретч 3.0 был выпущен в 2019 году.

Из-за большого роста сообщества Скретча, Фонд Скретча расширяется, и с 12 марта 2019 года он руководит проектированием, разработкой и поддержкой. MIT будет продолжать тесно сотрудничать с ним.

Польза

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

Интерфейс

При разработке языка основным приоритетом создателей было сделать язык и среду разработки простыми, интуитивно понятными и легко усваиваемыми детьми, не имевшими опыта в программировании.

Происхождение названия и сленг

Сленг, образовавшийся от слова «Скретч»

Девиз

ScratchJr

Источник

«Scratch — ненастоящий язык программирования»: чему учат в кружках

Что думают родители про Скретч

Язык Скретч — это то, что рекомендуют использовать для знакомства детей от 7 лет с программированием.

При этом родители занимают две противоположных позиции.

Первые говорят следующее:

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

Что предлагают кружки

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

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

Чем полезны учебные языки программирования

Например, в Инженерике мы не ставим задачей научить ребенка работать в программе Скретч. Это не самоцель. Скретч — действительно учебный язык и учебная среда для создания программ и игр, в настоящей разработке она не используется, но это не значит, что от нее сразу нужно отказываться. Вы же не станете сразу готовить блюдо по технологически сложному рецепту, не освоив базовые принципы готовки. А взяв профессиональное оборудование для приготовления вы не сможете использовать его на максимум. То же и с языками программирования. Общие принципы составления алгоритмов можно изучать и без компьютера, этому посвящены хорошие книги и упражнения (например, книги Дональда Кнута). Во взрослом возрасте синтаксис языка программирования (слова, на которых пишется код), изучаются за трое суток упорного погружения. В возрасте подростка изучить синтаксис языка можно за несколько лет. Для чего переусложнять этот опыт в самом начале? Тем более, если юный человек еще даже не определился, точно ли он хочет стать программистом.

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

Примеры сложных проектов в среде Скретч

Посмотрите видео проектов, которые сделали ученики Инженерики (это индивидуальные и групповые проекты). Длительность создания такого проекта может достигать двух или трех месяцев. Это очень сложная работа при взаимодействии группы ребят, экспертов-консультантов и наставников. Не каждый взрослый смог бы довести подобный проект до конца, даже при том, что на отдельных упражнениях в алгоритмике показал бы себя наилучшим образом. Участие в подобных проектах не только позволяет применить знания к практике, но и развивает личностные качестве ребенка, те самые 4К-компетенции, о которых так много сейчас говорят — коммуникативность, умение работать в команде, креативность, критическое мышление.


Скретч как среда для развития мышления

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

Задача разработчиков не в том, чтобы писать код, как думают многие ребята, кто приходит на занятия. И не в том, чтобы создавать еще одну версию уже существующей игры (только собственную!). И не в том, чтобы делать копию программы, которая уже есть и всем известна. Любая программа появилась в компьютере не просто так. Ее создали разработчики, чтобы решать какую-то проблему человека, помогать ему в чём-то. Программу калькулятор и Excel создали, чтобы было легче считать, Word — чтобы делать красивые документы и сохранять шаблоны на будущее; Paint и Photoshop — чтобы создавать цифровые иллюстрации и легко изменять их; игры Майнкрафт и PUBG — чтобы отдохнуть, весело провести время с друзьями; движок Unity — чтобы самим создавать 3D-игры; а браузеры и социальные сети — чтобы получать нужную информацию и общаться с единомышленниками, не выходя из дома.

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

Очное обучение в группе сейчас полезнее индивидуального

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

Важны и формы работы с материалом на занятиях. Очень часто бывает (в особенности, этим грешат онлайн-уроки от неопытных преподавателей на YouTube), что в видео просто рассказывают, как что-то сделать и демонстрируют с предложением повторить. Не объясняют, почему нужно делать именно так, с чего нужно начинать, не отрабатывают умения. Такой подход работает только на вовлечение ребенка в деятельность, позволяет приятно провести время, но не формирует умение самостоятельно создавать подобные проекты.

Увидеть склонности ребенка можно только по его проектам

В Инженерике мы работаем с несколькими видами задач:

учебные упражнения — на них мы познаем принципы программирования, отрабатываем навыки, экспериментируем;

задания с четко обозначенным конечным результатом — через них мы учимся распознавать паттерны, следовать требованию, искать разные пути решения и находить оптимальные;

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

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

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

Система дополнительного образования для 10-12 летних ребят и должна делать именно это — проявлять склонности, развивать качества характера и мышление, давать пробовать себя в деятельности, показывать возможности применения этих навыков в мире и будущей профессии. Совсем не обязательно, что после двух лет изучения программирования ребенок точно решит стать программистом. Но то алгоритмическое и вычислительное мышление, которое разовьется у ребенка под руководством наставника, используется во множестве самых разных областей и профессий.

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

Резюмируем

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

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

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

Не стоит думать, что если ребенок самостоятельно «разбирается с программой» или смотрит обучающие видео на YouTube, он научится программировать.

Источник

Операционные системы и программное обеспечение