В Cache Valley, штат Юта, есть рабочее место для детей, которое называется Cache Makers. Это место, куда дети могут прийти и узнать о темах, связанных с STEM, таких как 3D-печать, робототехника и программирование, с шестинедельными циклами. С января я возглавляю клуб Coding Club, группу, которую Cache Makers предлагает каждый цикл в течение учебного года. Все дети в возрасте от восьми до восемнадцати лет имеют право присоединиться, и от них не требуется никаких предварительных знаний в области программирования. В этом посте я хотел рассказать о том, как я разрабатывал курс и какие материалы использовал для обучения детей. Многие лидеры групп в Cache Makers являются волонтерами, как и я, в том смысле, что у нас есть опыт работы с темами, которые преподаются, но мы никогда раньше не преподавали формально. Это что-то страшное поначалу. Что дети уже знают? Чему они захотят научиться? Чему они смогут научиться? Не имел представления. Поэтому, поскольку все больше и больше сообществ в США собираются вместе для создания STEM-пространств, подобных нашему, которые зависят от волонтеров, я решил поделиться тем, что узнал, в надежде, что другие волонтеры сочтут это полезным при составлении своих собственных курсов.

Исследовательская работа

Coding Club был группой до того, как я начал работать в Cache Makers, поэтому первым делом я спросил персонал о том, что делали прошлые лидеры группы. Они сказали мне, что большинство лидеров использовали язык программирования под названием Scratch, который представляет собой визуальный язык программирования с перетаскиванием, разработанный в Массачусетском технологическом институте. Детям легко использовать его, потому что есть корзина со всеми логическими блоками, которые они могут просматривать, поэтому они сразу имеют хорошее представление о том, что возможно. Из корзины они могут перетаскивать логические блоки в область сценариев спрайта и сразу же видеть эффект, который их логика оказывает на их спрайт в области рабочей области.

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

Подготовка

В этот момент у меня было представление о том, что я сделаю для курса, но я еще ничего не знал о том, сколько лет будет детям или как много они уже будут знать о программировании. Даже если бы я знал возраст детей, я все равно не знал бы, сколько на самом деле десятилетний ребенок может узнать о программировании. Поэтому я решил просто собрать изображения и создать первую часть игры на обоих языках. Затем я провел первый день, узнавая о детях, и решал, как действовать дальше. Я нашел несколько спрайтов из мобильной игры Danger Mouse и понял, что могу построить из них шутер с боковой прокруткой. Вот как выглядели спрайты…

Для первой групповой встречи я настроил прокручиваемый фон и элементы управления движением для спрайта игрока и решил подождать, пока не поговорю с группой, прежде чем приступать к дальнейшей работе над игрой. В ночь первой встречи я просмотрел список и заметил, что большинству моих детей было от восьми до одиннадцати лет, троим было около четырнадцати. Когда все собрались, мы поговорили о том, какие типы программирования они использовали и что им нравилось создавать. Подавляющим большинством откликов было то, что им нравилось создавать Scratch-игры. У всех четырнадцатилетних были проекты, над которыми они работали либо для учебы, либо для развлечения, и я решил позволить им работать над своими собственными вещами. Затем, если они застряли, я мог помочь им устранить неполадки. Я решил, что буду создавать часть игры в Scratch каждую неделю перед встречей, а затем, в течение первых тридцати минут встречи, мы могли бы создавать эту часть игры вместе. Я решил подождать с созданием версии Javascript, потому что большинство детей были еще новичками в Scratch, и я не хотел навязывать им Javascript. По большей части это работало очень хорошо.

Игра

Вот как выглядела законченная игра Scratch…

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

Проблемы

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

Следующий цикл

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

Первоначально опубликовано на tantangula.com 20 июня 2017 г.