Проведите выходные или месячный перерыв дома, чтобы дать детям возможность познакомиться с программированием.
Если вы похожи на миллионы родителей по всему миру, вы внезапно столкнулись с незапланированным домашним перерывом со своими детьми. Многие обычные возможности для обогащения учебы - музеи, галереи, концерты - закрыты. Полезные отвлекающие факторы, такие как парки и свидания, были поглощены новыми правилами социального дистанцирования. И велики шансы, что вам нужно будет уравновесить хаос дома с постоянными требованиями удаленной работы на вашей собственной работе.
Хорошие новости: есть способ занять детей и помочь им узнать что-то действительно полезное. Лучше всего то, что они могут оставаться в пижаме, пока они это делают (разумеется, в ожидании одобрения родителей).
Ответ - научиться программировать.
Как найти хорошие занятия по обучению программированию
В последнее десятилетие мир сошел с ума по тематическому обучению, основанному на коде. Для любого возраста есть приложение для iPad или робот-гусеница, пожирающий аккумулятор. Многие из этих игрушек и игр представляют собой увлекательные занятия, которые мало что могут сделать для обучения реальным концепциям информатики. Чтобы быть добрыми, они слишком многообещают. (Чтобы быть менее добрым, их претензии бессмысленны.)
Это не значит, что мы должны учить детей программировать так же, как мы учим взрослых. Когда дело доходит до интереса и концентрации, дети повсюду. Некоторым может быть вполне комфортно пройти онлайн курс Codecademy по JavaScript. Другие не останутся вовлеченными, если у них не будет возможности для творчества и свободной игры.
После трех дочерей и множества экспериментов я узнал, что лучшее соотношение усилий родителей и детей в обучении достигается, когда вы начинаете с небольших фрагментов и отдельных действий. Я называю этот подход «вкусом программирования» и - в стиле настоящих ботаников-родителей - я использовал свой опыт, чтобы построить блок-схему, которая поможет вам выбрать варианты.
Программирование вне компьютера
В большинстве случаев при программировании нужно сидеть в кресле и смотреть в светящийся экран компьютера. Но, как показывает блок-схема, есть другой путь - вы можете отключиться от сети, выполняя действия, которые происходят в реальном мире.
Чтобы почувствовать легкий вкус развлечений на кодовой тематике, попробуйте RoboRally. Он сочетает в себе старое (это настольная игра) с новым (алгоритмическое мышление). Каждый ход вы планируете короткий распорядок инструкций, которые вы передаете своему роботу для выполнения.
Для детей, которые любят читать, в вашем местном книжном магазине есть несколько драгоценных камней, похороненных под лавиной названий STEM (наука, технология, инженерия и математика). Пройдите мимо пустых учебников в виде книжек с картинками и возьмите Вычислительные сказки от главного инженера Google и эксперта по алгоритмам Джереми Кубицы. Это проницательный взгляд на реальные компьютерные концепции, воплощенные в жизнь в вымышленном мире. (Lauren Ipsum - еще одно хорошее чтение.)
Многие из этих игрушек и игр представляют собой увлекательные занятия, которые мало что могут сделать для обучения реальным концепциям информатики.
Визуальные языки
Если вы готовы начать программировать на компьютере, перед вами стоит другой выбор. Должен ли ваш ребенок использовать текстовый или визуальный язык?
Визуальные языки позволяют детям составлять программу, соединяя блоки на пустом холсте. Это позволяет часто щелкать и перетаскивать, но это также отличный первый шаг для детей, которые еще не умеют печатать.
В мире существует множество языков визуального программирования. Вот самые известные:
- Scratch - оригинальный бесплатный язык визуального программирования, созданный MIT Media Lab. Самое лучшее в Scratch - это то, что он полностью открыт. Иногда это и худшая часть, потому что многие дети тратят все свое время на Scratch, создавая иллюстрации или сценарии. (И это нормально - послеобеденное время, посвященное искусству и творческому письму, ничем не хуже, чем послеполуденное время, посвященное программированию.) В качестве особенно актуального примера посмотрите этот симулятор эпидемии от Scratch.
- Blockly - это язык визуального программирования, созданный Google. Он обеспечивает простое моделирование кодирования на сайте Hour of Code. Это развлечение для быстрого развлечения, но дети не узнают так много, как если бы они составляли свои собственные программы. Вы также можете использовать Blockly для управления причудливым Dash robot из Wonder Workshops - супер весело, но дорого.
- MakeCode - это язык визуального программирования Microsoft. Вы можете использовать его, чтобы создавать простые аркадные игры или мерцать огнями и воспроизводить музыку с доступной (примерно 20 долларов) доской micro: bit. (Micro: bit - отличный вариант для детей, интересующихся электроникой, потому что он переносит их код с экрана в реальный объект.) Или, если ваш ребенок любит Minecraft, они может использовать MakeCode, чтобы взломать свою любимую игру и попутно научиться программировать.
Python
Когда ваш ребенок готов к более серьезным испытаниям (и гораздо большей свободе), пора перейти на традиционный текстовый язык. Но какой?
Если вы не хотите создавать веб-приложения, лучший выбор - Python. Ни один язык не охватывает огромный океан между программированием для начинающих и серьезной работой, от простых игр до науки о данных. Книга Python для детей - отличная отправная точка. Но чтобы получить максимум удовольствия при минимальном объеме работы, я рекомендую объединить Python с инструментом для создания игр Pygame Zero. Он основан на популярном наборе инструментов pygame, но радикально его упрощает, избавляя новых программистов от написания огромных блоков шаблонного кода. Это настолько хороший первый вариант, что вряд ли стоит упоминать какие-либо вторые варианты.
HTML и Интернет
Проблема написания веб-приложений очевидна: нужно освоить целый ряд технологий. Преимущество заключается в том, что веб-приложение может работать практически на любом компьютере или устройстве в мире без необходимости настройки. Для детей это идеальный способ поделиться своими творениями с друзьями.
Прежде чем кто-либо сможет поместить код на веб-страницу, он должен иметь некоторое представление о HTML, языке разметки, который структурирует контент на странице. Но вы не хотите тратить слишком много времени на HTML, потому что написание веб-страниц - плохой второй родственник написанию кода. Так как же восполнить пробел?
Один из вариантов - это такой курс, как Введение в HTML и CSS в Khan Academy. Но часто бывает быстрее (и веселее) просто позволить вашему ребенку поэкспериментировать с образцом разметки HTML. Один из лучших инструментов для этой работы - X-Ray Goggles, созданный Mozilla проект, который позволяет детям манипулировать HTML на сайтах, которые они посещают. Это как упрощенная детская версия Chrome DevTools. Научите их использовать это с помощью сертифицированного нескучного учебника Messing Up the Web, который дети могут делать самостоятельно.
Я узнал, что лучшее соотношение усилий родителей и детей в обучении достигается, когда вы начинаете с небольших фрагментов и отдельных действий.
JavaScript
Начать работу с JavaScript - это крутой подъем. Вам понадобится несколько не подлежащих обсуждению ингредиентов, таких как базовый HTML-документ, блок скрипта и связка событий. Но один из быстрых способов ввести JavaScript, не углубляясь в теорию, - это использовать подготовленные примеры. Основная идея состоит в том, что вы начинаете с готовой страницы. Ваш ребенок учится, изменяя, исправляя или улучшая код на этой странице.
Самый быстрый способ начать работу с подготовленными примерами - это использовать Codepen, веб-сайт, который позволяет вам писать и тестировать JavaScript в вашем браузере. Вы можете создавать и сохранять свои собственные страницы или просматривать работы огромного сообщества других людей. Для начала попробуйте эти упражнения для новичков, которые включают введение в модель событий JavaScript и обзор общих событий JavaScript.
Чтобы получить более подробное руководство, вы можете ознакомиться с бесплатной электронной книгой Небольшое введение в JavaScript, которую я написал, чтобы познакомить с языком моих дочерей. И по мере того, как ребенок или подросток прогрессирует, вы, возможно, в конечном итоге захотите перейти к инструменту дизайна, который вы можете установить на свой компьютер, например Visual Studio Code, который предоставляет вам полезные функции, такие как проверка ошибок и интерактивная отладка.
Но если вы дойдете до этого момента, вы выйдете далеко за рамки вкуса программирования. Вы полностью пригласите своего ребенка в безумный, веселый и разочаровывающий мир разработки программного обеспечения. Разве это жизненный навык, которым должен овладеть каждый ребенок? Возможно нет. Но это полезный трюк, чтобы держать его в заднем кармане.