Учить будет сложно, это лучше понимать сразу. Сложно, потому что объяснять что-то ребенку тяжелее, чем взрослому. От родителя потребуется терпение, усидчивость и сдержанность.
Родителю нужно заранее определить цель: что ребенок должен уметь после обучения тому или другому этапу программирования? Это поможет сосредоточиться на главном и отсеять лишнее. Например, нужно, чтобы ребенок умел пользоваться компьютером на продвинутом уровне. Значит, он должен понимать, как работает Web, и освоить Scratch, а языки программирования вроде С++ ему не нужны.
Если цель – увлечь ребенка профессией программиста, то надо разработать учебный план. Чтобы понять, как его сделать, можно посмотреть обучающие видео на YouTube с большими просмотрами, и давать ребенку информацию схожим образом – понятно и просто. Можно зайти на сайты компаний, которые занимаются обучением взрослых и детей, и посмотреть, как построены их материалы. Пример компании – Khan Academy.
Ребенку будет нужен английский, чтобы понимать основные термины и читать тексты. Продвинутое знание языка не понадобится, но если ребенок совсем ничего не знает, придется отдать его на курсы.
Хороший план: сначала научить ребенка строить простые алгоритмы, потом научить базовым английским понятиям, после – перейти к программированию.
Обучающие игры
Есть игры, которые учат программированию, а некоторые из них обучают даже писать код. Игру нужно брать под возраст ребенка: какие-то подойдут для 6-летних детей и старше, а какие-то можно предложить и детям с 2 лет.
- Kodable. Эта игра для самых маленьких. Читать в ней ничего не нужно, все подсказки сделаны графически: ребенок проходит простые квесты и учится правильной последовательности действий, которая потом пригодится, чтобы составлять программы. Игра бесплатная.
- Lightbot сделан для смартфона и планшета. Суть игры: выдать маленькому роботу правильные команды, чтобы он зажег лампочки в нужных местах. Для этого ребенку нужно спроектировать путь робота, а родителю – объяснить, что значат картинки. Игра учит составлять простые алгоритмы, рассчитана на детей 4-6 лет. Но есть усложненная версия для тех, кто старше 9 лет. Игра платная: от 169 до 229 рублей.
- Robozzle подойдет младшим школьникам и детям постарше. Ребенку надо будет выполнить задание и составить алгоритм движения стрелки по паззлу. Это интересная головоломка, которая подходит для практики и повторения, а не для изучения новых знаний. Игра бесплатная.
- Cargo-Bot рассчитана на дошкольников и детей постарше. В освоении проста, текста в ней мало – для первых заданий хватит, чтобы ребенок понимал и отдельные буквы. В игре нужно за минимальное число ходов перекладывать ящики с места на место. Есть простые комбинации, есть и сложные, которые даже взрослым будет нелегко решить.
- CodeMonkey. Игра построена наглядно и просто: ребенок будет управлять обезьянкой, которую нужно довести до банана. Каждый уровень рассказывает о возможностях программирования, а чтобы перейти на следующий, придется на деле применить полученные в прошлом уровне знания. Команды здесь надо выбирать, используя пиктограммы, а последовательность действий писать с помощью строчек – почти как настоящий код.
Инструменты и конструкторы
Начинать с языков программирования не нужно. Сначала ребенок должен понять, по каким алгоритмам создается программа, и для этого есть специальные инструменты:
- Scratch – среда обучения, которая подходит и для совсем маленьких, и для детей старше 10 лет. Программы здесь делают, используя блоки с описанием действий. Используя Scratch, ребенок может создать анимацию или простую игру, и результат он увидит сразу. У Scratch есть две версии: для совсем маленьких – Scratchjr, и для iOS.
- Alice – это бесплатная обучающая среда с открытым кодом. Здесь ребенок тоже сможет делать анимацию, видео или разработать простейшие программы. Alice помогает освоить базу объектно-ориентированного программирования.
- StarLogo TNG – это программное обеспечение, на котором можно создавать обучающие игры, чтобы понятным языком объяснять сложные вещи. Результат будет в формате симуляторов или моделей. StarLogo TNG больше пригодится родителю, чтобы доступно строить обучение.
- Snap! – это более сложный вариант Scratch: здесь можно создавать блоки самостоятельно. Но работает и выглядит Snap! сложнее, поэтому для самых маленьких не подходит.
- Gamefroot – это блоковый редактор кода, и с ним можно строить алгоритмы сложнее, чем в Scratch. Подойдет, когда тот же Scratch ребенок уже хорошо освоил.
- Code.org – это сайт обучающих игр. Они разного уровня, но построены так, чтобы ребенок научился находить самый простой и выгодный путь достижения цели. Материал сайта разбит по возрастным группам, есть и английский, и русский контент.
- «ПиктоМир» - российская разработка, обучающая детей программированию. В ней нет блоков, есть пиктограммы. Ресурс кроссплатформенный, это значит, что он подходит и для очень старых версий iOS и Android.
Конструкторы помогают применять навыки на практике, еще они могут заинтересовать ребенка робототехникой. Для обучения подходят:
- Arduino – эти игрушки учат ребенка программировать микросхемы, и работают со Scratch.
- Raspberry PI – маленький компьютер с одной платой под управлением Linux: совместим с Arduino и поддерживает Python, благодаря чему ребенок поймет, как программируют взрослые.
- Lego. С ним тоже можно программировать свой конструктор, как с Arduino. Но детям старше 6 лет может быть не очень интересно, потому что Lego не совместим ни с Arduino, ни с Raspberry PI.
Языки программирования
Языков программирования много, ребенку не нужно осваивать все, пригодятся только основные: Java, Processing и Python. Детский язык программирования, Scratch, он уже должен знать.
Научиться Java поможет книга Якова Файна «Программирование для детей, родителей, дедушек и бабушек». Книга 2011 года, автор, Яков Файн, – программист со званием Java Champion. Книга написана для абсолютных новичков в программировании, формат у нее – практический учебник, темы поданы облегченно. Подойдет для детей от 11 лет.
Начинать с Java нужно, потому что этот язык менее подвержен ошибкам, чем тот же С++, имеет поддержку графики по умолчанию, подходит для всех платформ, популярен в веб-программировании. Опять же, Java учит дисциплине.
Processing – язык, основанный на Java и совместимый с ним. Легкий и быстрый, он создан для программирования интерфейсов, анимации и изображений. Используют его дизайнеры, художники, студенты. Processing разработан, чтобы научиться основам программирования в визуальном контексте.
Python более сложный язык, его используют, чтобы создавать приложения, игры и веб-сайты. Его код состоит из слов английского языка и символов, а программы на нем писать можно очень разные.
Практика
Чтобы ребенок лучше запоминал полученные знания, надо чтобы он чаще применял их на практике. А практика такая:
- Писать больше кодов. Чем больше ребенок их напишет, тем сильнее вырастет его общее мастерство, даже если поначалу он будет много ошибаться.
- Читать статьи, сайты и книги по программированию, изучать чужие коды. Так ребенок узнает хитрости, до которых сам доходил бы годами.
- Улучшать то, что есть. Когда ребенку попадается хорошая программа, будет здорово, если он задумается, какие приемы и идеи можно взять для себя. В этом нет ничего плохого: так делают даже лучшие программисты. Правда, они еще и совершенствуют чужие задумки.
- Учить других. Если ребенок начнет учить друга, объяснит, как работает тот или иной код – он проверит свои знания и возможно придумает что-то новое.