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

Хотим мы этого или нет, но обучение все больше становится похожим на игру. Особенно если речь идет о детях младшего школьного или дошкольного возраста. Преподаватель Британской высшей школы дизайна Дмитрий Карпов составил список полезных ресурсов для обучения информатике с раннего возраста.

Для тех, кто готовится к главному школьному экзамену

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

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

Новую область знания - computer science (науку прикладного программирования и проектирования) - стоит начинать изучать в раннем возрасте, с 4-6 лет

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

Code.org - приятный интерфейс и масса простых игр о базовых принципах работы языков программирования. Очень нужный некоммерческий образовательный проект для детей.

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

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

CodeCombat - ветеран на рынке, занимается игровым обучением кодам Python, JavaScript, Lua и экзотическому CoffeScript.

CodeMonkey - изучение принципов синтаксиса через игру с обезьянкой.

Ceebot - управление персонажами, используя команды C++.

Cargo-Bot - простое приложение для дошкольников и их айпэдов.

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

Scratch - классика развития мышления будущего программиста.

Kodu Game Lab - большой учебный проект от команды Microsoft Research. Версия для PC бесплатная, а за версию на Xbox придется отдать около $5. Прелесть в притягательности для ребенка мира проектирования игры, его модульности, мышления категориями создания виртуальных миров. Возможно, менее полезна для кодинга и программирования, но лучше помогает изучать основы дизайна игровых приложений.

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

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

RoboZZle - приложение для составления алгоритма движения стрелки. Обучает ребенка пониманию теории алгоритмов на практике.

Kodable - подойдет для малышей. В процессе игры они смогут составить простые сценарии поведения милых шарообразных персонажей.

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

Многие успешные разработчики программного обеспечения (ПО) делают первые шаги в раннем возрасте и очень благородно помочь им в этом. С чего начать?

Конечно, не стоит начинать с фундаментальных «взрослых» монографий типа «Искусство программирования» (англ. «The Art of Computer Programming»). Хотя книга американского математика и специалиста в области компьютерных наук Дональда Кнута — знаменательная (проект написания книги был начат автором в 1962, а в 1999 книга была признана одной из двенадцати лучших физико-математических монографий столетия), но ребенку точно рановато ее читать. И лучше начинать с практики, а не с теории. Так, чтоб при минимуме усилий был максимальный результат в кратчайшее время. Начать стоит с чего-то более простого и понятного ребенку и, конечно, желательно, чтобы обучение проходило под вашим руководством.

Обучение можно разбить на несколько этапов. Предполагается, что ваше чадо уже умеет включать компьютер, знает кнопку «Пуск» в Windows, умеет запускать приложения (программы), пользоваться Проводником и смотреть интернет через Internet Explorer или другой браузер (Web browser).

Этап 1. Общий ознакомительный

Для начала покажите ребенку «классический» софт от Microsoft Office и других известных разработчиков:

1. MS Word — оформление текста.

2. MS Excel — электронные таблицы и формулы.

3. MS PowerPoint — создание интерактивных презентаций (с триггерами).

4. Графические редакторы (от стандартного Paint до Adobe Photoshop) и и прочие вспомогательные программы.

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

Этап 2. О базах данных

Если ваш ребенок осилит, то дайте ему общее представление об основных концепциях и понятиях базы данных, как-то — таблицы, запросы (SQL-запросы) и процедуры. Для практической демонстрации можно использовать следующие популярные программные продукты:

1. MS Access — реляционная СУБД корпорации Microsoft (тоже входит в пакет Microsoft Office). Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных

2. MySQL — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle.

Этап 3. Непосредственно программы для обучения

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

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

Скретч (другое произношение «скрэтч») — это визуальная объектно-ориентированная среда программирования для обучения школьников младших и средних классов. Программы на Скретче состоят из графических блоков, подписи к которым зависят от выбранного для интерфейса языка. Может быть выбран один из 50 языков интерфейса, включая русский. Для программирования сценариев в скретче используется drag-and-drop-подход: блоки из Окна блоков перетаскиваются в область скриптов…

2. Освоение Java, например, по книге для детей — Яков Файн «Программирование на Java для детей, родителей, дедушек и бабушек» (2011).

Яков Файн (автор и соавтор нескольких книг по Java) — программист с многолетним опытом, который имеет звание Java Champion, а подобным могут похвастаться не более сотни человек во всём мире. Эта книга — максимально облегченный и практический учебник — подойдет следующим группам людей: детям в возрасте от 11 до 18 лет; школьным преподавателям информатики; родителям, желающим обучить программированию своих детей; абсолютным новичкам в программировании (возраст значения не имеет). Книга ни в коем случае не является полным самодостаточным руководством, это скорее «приманка», изучение которой должно вызвать интерес к программированию и массу вопросов, на которые уже нужно будет искать ответы во «взрослых» исчерпывающих справочникам.

Порыв к программированию в детстве появляется очень просто — поиграли в игрушку, захотели создать что-то свое, но не знаем как. Берем эту книгу, узнаем о таком языке, как Java, и после прочтения первых 15−20 страниц уже пишем первую программу. Затем устанавливаем Eclipse и пишем вторую программу. Дальше — больше…

Почему язык Java, а не, скажем, C++? C++, как язык программирования, богаче и мощнее, но лучше начать с Java. Язык Java больше учит дисциплине и гораздо меньше подвержен ошибкам, в нем по умолчанию есть поддержка графики, он работает для всех платформ и используется для веб-программирования.

3. Processing — открытый язык программирования, основанный на Java (совместим с ним).

Cоздан в 2001 году Кэйси РИВЗом и Бен Фрайем в Массачусетском Технологическом Институте. Представляет собой лёгкий и быстрый инструментарий для людей, которые хотят программировать изображения, анимацию и интерфейсы. Используется студентами, художниками, дизайнерами, исследователями и любителями для изучения, прототипирования и производства. Он создан для изучения основ компьютерного программирования в визуальном контексте и служит альбомным программным обеспечением (имеется в виду то, что каждый *.pde файл визуальной оболочки Processing’а представляет собой отдельное изображение или анимацию, и т. д.) и профессиональным производственным инструментом. Есть, например, книга для детей — «Яша учится программировать».

4. Компьютерные игры типа Colobot.

Tрёхмерная обучающая стратегическая игра. Разработана компанией Epsitec. Игра призвана обучить детей (от 10 лет и старше) навыкам программирования в игровой форме. Главной особенностью игры является возможность создавать программы, в соответствии с которыми в игре действуют роботы (задавая им алгоритмы самостоятельной работы и заменяя ими монотонные действия, которые может делать и сам игрок), поэтому считается, что игра способствует обучению программированию. Язык программирования, встроенный в игру, похож на C++ или Java…

5. Конструирование, cборка и управление моделями (роботами). Например, LEGO MINDSTORMS.

С помощью LEGO MINDSTORMS вы можете превратить ваши модели LEGO в живых роботов, которые выполняют все ваши команды. Вы можете запрограммировать своего робота так, чтобы он ходил, говорил, двигался и выполнял все, что вы пожелаете, с помощью программного обеспечения LEGO MINDSTORMS EV3 Home Edition; вы можете программировать на интеллектуальном модуле EV3 или загрузив бесплатное приложение Robot Commander для своего смартфона.

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

12 сентября 2017 в 14:40

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

  • Учебный процесс в IT

Почему мы перешли на онлайн-занятия

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

1) Когда в одной комнате собирается даже 5-6 учеников, очень сложно поддерживать качество обучения на высоком уровне. Дети часто отвлекаются, мешают друг другу, балуются. Преподавателю приходится тратить очень много времени, чтобы успокоить и настроить учеников на работу. Это совсем не эффективно.

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

3) Достаточно часто возникали проблемы с компьютерами. То дети воду разольют на клавиатуру, то удалят что-нибудь, сломают, ноутбуки тормозят и т.д. Сразу же начинается шум: «Ааа, у меня комп сломался!» И учитель превращается в системного администратора. Отнимает много времени и нервов.

4) Если вы думаете, что такие очные занятия учат работать детей в команде, то это не так. В силу того, что у детей разный уровень, один из команды будет делать, а остальные ковырять в носу. Программирование – интровертный процесс, нужно погрузиться в проблему, чтобы решить задачу. Развивать soft skills и программировать одновременно невозможно. Это разные виды деятельности, и развивать их нужно по отдельности. Можно учить ребят делить большой проект между собой, чтобы потом они могли части своего кода сгруппировать вместе. Но работают они над своим куском отдельно.

5) Родителям нужно привозить и забирать ребенка. И во время занятия тоже не понятно куда себя деть, не всегда успеешь съездить по делам. Многие родители сидели у нас в коридоре 2 часа, ждали пока закончится занятие.

Один из знакомых родителей, чей сын ходил в одну крупную IT-школу рассказал нам такую историю:

«Моему сыну 9 лет, он сейчас пошел в 3-й класс гимназии и параллельно занимается на IT-курсах для детей. Впечатления сложные, скорее, негативные. Там слабо следят за тем, что делают дети за компьютерами. Пока учитель читает лекцию, некоторые ребята умудряются переписать на компьютер с принесенной флэшки Counter-Strike и подначивать соседей по классу поиграть с ними. Ребенку не хватает нормального общения со сверстниками, т.к. нужно завязывать новые отношения. Он тянется к ребятам, прогибается под них и не всегда, к сожалению, ищет общения с примерными одноклассниками. Так и там получилось. Например, один раз его сосед открыл во время лекции на своем компьютере google images и стал искать там фотографии, простите, говна. А мой сын громко смеялся над этими фотографиями, за что его в конце концов и наказали двойкой, настоящего зачинщика при этом не обнаружив. Кроме того, в отличие от гимназии, где ребята в основном хорошие и круг общения в основном складывается из сверстников, на курсах контингент очень разнообразный, и по возрасту, и по воспитанию. В результате общения с разными ребятами у сына на телефоне появляются такие приложения, за которые должно быть стыдно, и которые приходится вычищать, объясняя, почему это гадость. Мы обращались в учебный отдел, нам ответили, мол, учитель физически не может ни видеть, что на каждом экране, ни блокировать компьютеры. Ещё один момент был: если сын что-то где-то не успевал, он стеснялся сразу уточнить задание или попросить помощи у учителя, а потом было уже слишком поздно. Ему явно больше подойдет индивидуальное обучение».

Переход на онлайн

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

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

Какие плюсы мы выявили:

  • Преподаватель выдает индивидуальное задание, подбирая по желанию и способностям. Ребенок занимается в своем темпе, ни на кого не отвлекается.
  • Все занятие преподаватель видит экран ученика, может сразу же ему подсказать, помочь.
  • Никаких проблем с дисциплиной. Ребенок чувствует, что за ним все время наблюдают, поэтому стесняется даже лишний раз переключиться на «левую» вкладку в браузере.
  • Ребенок может петь себе под нос, бубнить, рассуждать, и никто не будет смеяться или «затыкать» его.
  • Ребенку не надо стесняться. Он может легко спросить обо всем. Может попросить дать задание посложнее или легче, или на другую тему. Сам выбирать чем заниматься именно сегодня.
  • Родителям не нужно никуда ездить, посадил дома за компьютером и все. Если хочешь, можешь посидеть рядом и понаблюдать, как проходит занятие.
  • Можно заниматься из любой точки мира и не прерывать занятия: на отдыхе с родителями, переехали в другую страну, у бабушки на даче. В общем, везде, где есть интернет.
  • Или наоборот, можно закончить и возобновить занятия в любой момент. Ведь ребенок занимается по своей программе, и ему не придется ничего «нагонять».
Конечно же, не все дети смогут учиться в таком формате. Тут не побалдеешь. Нужно 2 часа работать. Но более спокойные, усидчивые ребята – в восторге. Они радуются, когда создают свои игры и программы.

Онлайн занятия ведем больше года, учится уже больше 100 учеников по всему миру.
Мы учим ребят программировать на Scratch, Python и JavaScript. Плюс есть занятия по Photoshop, 3D-моделированию и информационной безопасности.

Иногда прямо сами завидуем, что у нас в детстве такого не было. Например, у нас есть ученик мальчик Эрол, уже в 12 лет копается в клиент-серверных приложениях, сокетах. Хотя начинал со Scratch, потом перешел быстро на Python. Если бы он занимался в классе, то не достиг и не попробовал бы и половины из этого. А так тренер видит и чувствует, что Эрол быстро схватывает, очень усердный, ему самому нравится копаться, и дает все сложнее и сложнее задания.

Если сейчас формат онлайн-занятий еще для многих в новинку, то через лет 5, я уверена, это будет нормой.

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

Что такое программирование

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

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

Визуальное­

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

Скриптовые языки

Этот тип компьютерных языков основывается на применении т.н. скриптов (сценариев). Скриптом называют последовательность операций, алгоритм, автоматизирующий выполняемую пользователем работу. Ранее сценарные языки называли языками пакетной обработки. По быстродействию различают предварительно компилируемые ЯП (яркий пример - Perl) и динамического разбора.

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

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

Традиционные языки­

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

Языки программирования для детей

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

Scratch

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

Scratch относится к классу визуальных, разрабатывался под платформы Windows, GNU Linux и macOS для обучения детей азам программирования, а также прививания интереса к этому роду деятельности. Этим обуславливается простота - процесс работы сводится к добавлению и изменению спрайтов, которые состоят из нескольких кадров с определенным сценарием. Встроенный графический редактор упрощает изменение графической составляющей проекта.

Java

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

Processing

Это скриптовый язык, основой которому послужил классический Java. Благодаря доступному для понимания синтаксису, эта среда разработки способна без труда создавать приложения, которые в контексте Processing называют скетчами. Обилие доступных в сети материалов, библиотек, мультиплатформенность, возможность использовать стороннее ПО (OpenGL) делают программирование для школьников очень доступным и не отпугивающим своей сложностью.

Как научить ребенка программировать

Поскольку детям гораздо интереснее обучаться на практике, стоит начать с нее, а не заставлять юного программиста читать «Искусство программирования» Д.Кнута. Это одна из лучших монографий по написанию программ, но ребенку будет слишком неинтересно, скорее всего, он забросит ее уже после прочтения первых страниц, испугавшись сложности. Рекомендуется разбить рабочий процесс на несколько этапов:

    Ознакомительный. Продемонстрируйте начинающему девелоперу классический софт (например, от Microsoft), покажите, как редактировать тексты, разобрав как все работает, и объясните почему разработчик сделал так. Дайте ему почувствовать подходы и требования к интерфейсу и качественным программам в целом. Расскажите о компьютерных технологиях, об алгоритмах и о том, как с ними работать.

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

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

Программы для обучения

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

Курсы программирования

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

Игры для обучения­

Пример игр в категории программирования - Colobot и Codespells. Первое - трехмерная обучающая стратегическая игра о космосе, дающая начальные навыки работы с Java и C/C++. Основная особенность – персонажи-роботы, которые программируются на выполнение монотонных действий вместо игрока. Второе - креативная игра в жанре «песочница о волшебниках». Обучающая часть заключается в создании заклинаний путем написания кода.

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

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

Один из путей обучения - школа программирования для детей онлайн. В сети предлагаются курсы для начинающих разработчиков, ориентированные на группы разных возрастов. Многие обучают детей от 7-8 лет, уроки проводятся по Skype. Еще один вариант - онлайн-сервисы вроде Codabra, предоставляющие курсы для детей от 9 лет, где обучение программированию происходит при помощи таких платформ, как Minecraft и Scratch.

Книги­

Одна из лучших книг в данной категории - «Программирование на Java для детей, родителей, дедушек и бабушек», выпущенная в 2011 году Яковом Файном. Это доступно написанный учебник по Java для детей возраста 11-18 лет, который можно использовать, чтобы организовать кружок программирования для школьников. Книгу нельзя назвать самодостаточным руководством, но для получения базовых знаний и пробуждения интереса к дальнейшему развитию она подойдет.

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

«Python для детей» - интересный самоучитель для детей от 10 лет. Книга актуальна по причине доступности и востребованности языка Python, который позволит юному программисту создавать все: от простых программ до крупных игровых вселенных.

Видео