В этой статье я расскажу о том, как из множества разнообразных кружков по программированию выбрать самый правильный, тот, который подходит именно вашему ребенку, как не ошибиться в выборе направления и не допустить разочарования от напрасных ожиданий.
В последнее время появилось большое количество разнообразных кружков по программированию, IT-кубов, кванториумов и прочих мест, в которых ребенок теоретически может познакомиться с востребованной и высокооплачиваемой профессией, пережить моменты творческого подъема или, наоборот, разочарования. Родители, отдавая свое дитя в руки педагогов дополнительного образования, видят его после окончания курса успешно сдающим ЕГЭ по информатике в престижный ВУЗ, а затем, выходящим из Tesla Model X, где-нибудь в Купертино. Главное, думают они, вовремя раскрыть в ребенке талант, записать его в группу единомышленников, возглавляемую профессиональным, опытным практикующим специалистом-программистом.
Как опытный педагог с 12-летним стажем, открою вам секрет, как как можно быстро научить ребенка программированию.
Готовы?
Никак!
На этом можно было бы завершать статью. Но я не дам вам возможность начать протестовать и ссылаться на положительный опыт детей подруг и сделаю небольшую поправочку. Как говорила секретарша в исполнении Лии Ахеджаковой: «Можно конечно и зайца научить курить», однако давайте для начала определимся с целью. Чего мы хотим?
Вариантов здесь может быть несколько.
Часть 1. Занять свободное время.
То есть, просто чем-то занять ребенка в свободное время и посмотреть пойдет или не пойдет, появится интерес или нет.
Этот вариант приемлем если у него не наблюдается совершенно никакой склонности к чему бы то ни было. Тогда логично выбирать кружки развлекательного плана.
Например, программирование на Scratch. Это одновременно и язык программирования и среда для создания интерактивных творческих проектов. Предназначена для детей в возрасте от 8-16 лет. Позволяет создавать небольшие, красочные программы, мультфильмы, интерактивно взаимодействовать с объектами на экране. Есть возможность соединять Scratch с различными электронными конструкторами вроде Lego WeDo. Даже если не зайдет, то проще будет со всякими школьными самостоятельными проектами. Алгоритм собирается из графических блоков по принципу конструктора Лего. Можно составлять довольно сложные алгоритмы с переменными и арифметикой. Язык позволяет хорошо понять все базовые алгоритмические конструкции, однако, опять же, все будет зависеть от того, какие цели ставит преподаватель, на что он делает упор. Либо это изучение программирования, либо в первую очередь анимационная развлекательная составляющая. В этом случае все сведется к шаблонным способам управления объектами на экране, созданию красочных, умилительных мультиков и резкой потере мотивации, когда иссякнет запас фантазии ребенка и преподавателя. Если же ребенок не теряет интерес, в дальнейшем даже такой опыт приносит очень много пользы потому, что различные скриптовые языки широко используются для автоматизации в разного рода 2D и 3D графических редакторах, системах автоматизированного проектирования, в разработке компьютерных игр в конце концов.
Кружок робототехники также неплохой способ попробовать силы своего ребенка и не только в конструкторском направлении, но и в программировании. Кроме того именно в практико-ориентированном смысле, что очень важно, так как на определенном этапе неизменно возникает вопрос: можно ли применить то, что я изучаю для решения реальных задач? О проблемах робототехнического кружка я напишу отдельную статью, так как активно участвовал в развитии этого направления в Новосибирской области и первым в городе Бердске, ввел робототехнику в рамки общего образования модулем в информатику и технологию. Если кратко, опять же все зависит от образовательной цели. Существует несколько распространенных практик: когда преподаватель дает возможность проявить творческий подход в сборке робота, но при этом все используют шаблонную программу, когда робот собирается по шаблону, но ставится такая задача, чтобы было время дольше и самостоятельно работать над алгоритмом и так далее.
В первом случае, программирование как таковое отсутствует, зато получаются красивые роботы. Использование второго подхода хорошо проявляется на роботоспортивных соревнованиях, например в базовом «Робосумо», где, казалось бы, нет особого разбега для каких-либо стратегических экспериментов, внезапно побеждает команда, которая на стадии тренировки, до начала турнира, анализирует поведение роботов своих противников и модифицирует поведение своего робота с учетом их особенностей: для тяжелых и неповоротливых - стратегия «таран-отход», для тех, которые примерно одинаковой конструкции и более легких - «лобовая атака», для слишком быстрых - «убегание-атака» и т.д.
Проблема изучения программирования в робототехническом кружке нередко связана с его вторичностью. К тому же, когда начинает падать общая мотивация, что бывает обусловлено проблемой многократного тестирования робота, неадекватной работой датчиков и нуждой всегда держать в голове законы физики, снижается и интерес к чистому программированию. Но если дело доходит до профессионального роботоспорта, мотивация перерастает в необходимость. При наличии достаточной заинтересованности развитие технологических навыков будет подталкивать развитие навыков программирования.
В образовательной робототехнике используются разные языки программирования: от EV3-G - штатного леговского блочного языка, что-то похожее на Scratch, до профессиональных Java, Python и С++. То есть перспективы далеко не туманные, но до этого этапа надо не потерять интерес.
Еще один спорный вариант - это кружок прототипирования, где вашего ребенка обучат различным аддитивным и/или субтрактивным технологиям, то есть работе сначала с 3D-ручкой, затем с 3D-принтером и фрезерным станком. Здесь, позже, класса с седьмого, можно будет получить опыт работы с G-кодом, то есть со специальным языком программирования для станков с числовым программным управлением. Спорный, так как есть вероятность того, что не все преподаватели работают с g-кодом, а некоторые никогда о нем и не слышали. Опять же, язык довольно специфический, требующий хороших знаний в области геометрии. Но, быстрого входа в программирование здесь не будет.
Надеюсь я вас убедил, что если вы хотите просто чем-то занять ребенка в свободное время, не стоит ждать многого от такого рода деятельности. Большинство преподавателей будет стараться, из кожи вон лезть, чтобы заинтересовать ребенка, но очень часто наступает опасный момент, когда родители дома начинают настраивать его на одни результаты, а на занятиях он будет реализовывать совсем другие задачи. Или наоборот, родители приходят в восторг от мизерных результатов вроде короткой бессмысленной анимированной сцены с дергающимся нарисованным болванчиком, а ребенок на этом останавливается понимая, что большего результата от него не ждут.
Еще раз уточню, что мы с вами не рассматриваем всестороннее развитие ребенка в рамках данных кружковых занятий, понятно, что польза от любого из этих направлений будет однозначно. Моя цель сориентировать вас на те кружки от которых будет меньше обманутых ожиданий, если в приоритете у вашего ребенка и у вас именно программирование. И в следующей части я расскажу о том, в каких кружках, на каких курсах вашего ребенка научат программировать.