Программирование для детей

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

Языки программирования, которые изучают наши ученики

Программирование для детей дошкольного возраста (5 — 7 лет)

  1. Для детей дошкольного возраста 5-7 лет , которые еще не умеют читать, мы используем визуальный язык программирования(вариация языка scratch), в котором программа составляется из картинок — блоков
  2. Также для детей дошкольного возраста мы используем специальные методические материалы: настольные игры и карточки, которые учат их алгоритмике. (e.g. игры големов, собственной разработки и т.п.)
  3. При работе с детьми дошкольного возраста стоит учитывать , что они, как правило, не умеют читать. Поэтому лучше использовать полностью визуальный язык, где все команды проиллюстрированы иконками — картинками.
  4. Также, у детей этого возраста часто возникает проблема при работе с клавиатурой или мышкой компьютера. Когда росло поколение преподавателей Робикс, компьютеры были не у всех, а у современных детей — уже прямо противоположная проблема: они чаще взаимодействуют с планшетом и телефоном, чем с настольным компьютером. Поэтому, если это возможно , стоит использовать планшет. Но стоит потратить время и на обучение. Навык использования мышки и клавиатуры будет детям полезен.

Однако не всем детям дошкольного возраста нравится сидеть за компьютером и заниматься программированием. Опытом делится наш преподаватель Анастасия Говорова:

У меня сложилось впечатление, что дошкольникам часто не нравится заниматься программированием в чистом виде. Им больше нравится создавать что-то своими руками , что можно пощупать.
Часто им интереснее работать за компьютером в специализированных программах , например, в 3D slash — программа для 3D моделирования в стиле Minecraft. Хотя они не могут «пощупать» результат своего труда на экране компьютера, они очень гордятся собой, когда получают свою деталь, напечатанную на 3D принтере.
Часто им не нравится управлять движением робота, писать программы для выполнения простых команд. В их понимании — робот обязательно умеет летать, говорить и т.д.
В обучении дошкольников очень важно играть с ними. Отношения нужно строить не с позиции «учитель — ученик», а, скорее, как старший друг, товарищ, который хочет их чему-то научить.
Детям дошкольного возраста хочется всего и сразу. К сожалению, это не всегда возможно. Зато их сильно стимулирует к занятиям программированием возможность воплотить свою мечту, создать своего робота. пусть не сегодня, но в будущем, когда они научатся.

Говорова Анастасия, преподаватель кружка робототехники #Робикс
Рис.1 Для обучения дошкольников программированию мы часто используем настольные игры. Некоторые разрабатываем самостоятельно.

Программирование для детей младшего школьного возраста (7 — 9 лет)

  1. Для детей младшего школьного возраста используем визуальный язык scratch. Программа в нем составляется из подписанных блоков.
  2. Мы используем snap4arduino. Это вариация языка scratch, построенная на платформе Snap из университета Berkley. Snap позволяет создавать свои блоки, кроме того, позволяет подключать компьютер к плате Arduino и управлять каждым ПИНом (контактом платы), то есть, подавать и считывать напряжение. Таким образом, мы можем программировать контроллер на плате, а значит и робота.
Фото 1. Работаем в программе Snap4Arduino

Программирование для детей среднего и старшего школьного возраста (10 — 15 лет)

  1. Дети среднего школьного возраста изучают в нашем кружке С++ (в среде Arduino IDE). Это “живой” язык, который сегодня используется профессионалами индустрии (в робототехнике и программировании).
  2. С++ не самый простой язык: в нем довольно сложный синтаксис. Также при работе с контроллерами детям приходится отслеживать такие параметры, как объем памяти, принимать правильные решения: какие переменные использовать и прописывать их типы вручную. На все это у детей уходит время, но это знание однозначно пригодится им, если они выберут специальность программиста да и любую другую инженерную специальность.
Фото 2. Программируем в Arduino IDE

Узко-специализированные языки для расширения кругозора

Кроме языков программирования общего назначения дети на наших занятия сталкиваются с такими узко-специализированными языками как:

1. OpenSCAD — язык для параметрического моделирования. С его помощью можно создавать объемные фигуры, а затем, например, печатать их с помощью 3D принтера.
Во-первых, это развивает пространственное воображение ребенка, во-вторых, позволяет взглянуть на возможности программирования по-новому.
И не думайте, что это просто игрушка, параметрическое моделирование, это популярное направление в современном дизайне.

Фото 3. Параметрическое моделирование в openscad

2. Gcode — этот язык применяется при написании программ для станков ЧПУ (с числовым программных управлением). Когда наши ученики работают в классах с 3d принтером или лазерным гравером, они знакомятся с gcode для создания управляющих программ для производства деталей собственных роботов.

3. AppInventor — визуальный язык программирования для детей, для разработки приложений на мобильной платформе Android. С помощью этого языка дети могут создать приложение для мобильного телефона, и, например, управлять роботом через bluetooth.

Основные принципы обучения детей программированию

  • Не стоит зацикливаться на одном языке.
  • С “визуальных” языков нужно вовремя “соскочить”
  • Использование блок-схем / псевдокода.
  • То, что очевидно взрослому , не всегда очевидно ребенку.
  • Программирование требует абстрактного мышления.
  • Обучение должно быть проектным, но теорию тоже нужно знать.
  • Следите за синтаксисом и оформлением кода.
  • Всегда объясняйте «почему и зачем».

Обучение программированию на курсах робототехники

Занятия робототехникой — возможно один из лучших способов изучать программирование, вот по каким причинам:

  1. Работа с роботами и электронными схемами позволяет быстро и наглядно увидеть результат работы своей программы; ведь ученик всегда видит — горит светодиод или нет, едет ли робот, срабатывает ли датчик
  2. В рамках курса дети изучают необходимые каждому программисту понятия и термины, как и на специализированных курсах по программированию:  условия, циклы, операторы, переменные, функции и т.д.
  3. В рамках нашей образовательной программы есть разделы, в которых дан упор на программирование, например, часть курса первого этапа (для детей 7 — 9 лет) посвящена разработке видеоигр на scratch с использованием датчиков. Когда ученики продвигаются по образовательной программе, появляются более сложные задачи: разработка алгоритмов для соревновательных роботов, пропорциональных регуляторов, передачи данных на расстоянии — следовательно, больше внимания уделяется программированию.

Подборка программ для изучения программирования с детьми дома

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

1. Бесплатные языки программирования для детей

Scratch https://scratch.mit.edu/Один из самых популярных языков программирования. Программы в нем составляются из готовых блоков. Доступен как для настольного компьютера, так и для планшета / телефона. На сайте вы найдете огромную библиотеку готовых проектов, которой можете пользоваться для вдохновления.
Snaphttps://snap.berkeley.edu/Язык, созданный на основе scratch, которая позволяет создавать свои собственные блоки, в том числе на языке JavaScript.
C++https://www.jetbrains.com/clion/ссылка на IDE (среду разработки), который мы рекомендуем
Pythonhttps://www.python.org/

2. Бесплатные детские языки программирования для робототехники

Snap4Arduinohttp://snap4arduino.rocks/
Scratch4Arduinohttp://s4a.cat/
RobotChttp://www.robotc.net/
TRIKhttps://trikset.com/downloads
mBlockhttp://www.mblock.cc
Ardublockhttp://ardublock.ru/index.php?id=ardublock-skachat-russkaya-versiya
Arduino IDEhttps://www.arduino.cc/en/Main/Software

3. Узкоспециализированные языки программирования для детей

AppInventorhttp://appinventor.mit.edu/explore/
OpenSCADhttps://www.openscad.org/

Полезные материалы:

  1. Бесплатные детские приложения для изучения программирования на смартфоне
  2. Подвижные игры для изучения детьми основ программирования

Страница находится в разработке. В ближайшее время будут добавлены: полезные ссылки