ЗАЧЕМ И КАК УЧИТЬ ДЕТЕЙ ПРОГРАММИРОВАТЬ


ЗАЧЕМ И КАК УЧИТЬ ДЕТЕЙ ПРОГРАММИРОВАТЬ
Если мы будем учить сегодня так, как учили вчера, мы украдем у наших детей завтра.
Джон ДьюиНужно ли учить детей программировать? Конечно, нужно для того, чтобы научить логически мыслить и планировать свои действия. Написание программы развивает аналитическое мышление, воображение. Чем раньше начинается обучение, тем изобретательнее и креативнее будет человек. На вопрос «А всем ли детям это нужно?» я отвечу следующее: мало людей становится профессиональными писателями, но писать и читать должен уметь каждый. То же можно сказать и о программировании.
Программирование предоставляет детям инструменты для создания мира безграничных возможностей, где они могут создавать свои собственные пути и решения.
Стоит отметить, что у детей аналитические способности, необходимые в программировании, начинают проявляться уже в 12-13 лет. Именно в этом возрасте стоит начинать обучать их в «недетских» объектно-ориентированных средах, таких как Lazarus. С чего начать? И вопрос даже не в интеллектуальной сложности искусства программирования, а в мотивации. Конечно, не стоит начинать с фундаментальных теоретических основ объектно-ориентированного программирования, а основной упор сделать на практически-деятельностную развлекающую направленность. Начать стоит с чего-то более простого и понятного ребенку – игр, то есть с программирования игр. И когда он ознакомится с миром программирования в любимой для него сфере, он с радостью в дальнейшем будет исследовать детали этой области знаний.
Наши ученики с детства на «ты» с компьютерными технологиями и это отражается в свойствах мышления. Поэтому им гораздо легче освоиться в среде Lazarus, чем предполагает учитель. Из собственного опыта скажу, что научить программировать в объектной среде 7-классника проще, чем 10-классника.
Для начала давайте разберемся чему и как учить. На мой взгляд, тратить время на функционально-ограниченные среды, такие как Scratch, Кумир и т.п. нет смысла уже с 7 класса. Они не ориентируют ученика на прикладное программирование. А Pascal ABC точно не вдохновит детей на программирование. Lazarus – «яркая», удобная и практичная среда для объектного программирования, а главное бесплатная. Она позволяет ученику воплощать свои идеи в независимых исполняемых приложениях (exe-шниках) и дает возможность развиваться вплоть до профессионального уровня.
Так как школьная программа среднего звена не предусматривает программирование такого уровня, то можно собрать группу учеников 7-8 классов и организовать для них курсы по созданию игровых приложений в среде объектно-ориентированного программирования Lazarus. С интерфейсом ваши ученики смогут разобраться уже через несколько минут, после первой пробы пера. Вовсе не нужно объяснять детям такие скучные и непонятные для них вещи, как библиотеки, модули, классы и т.п. Без них юные программисты на данном этапе вполне обойдутся. Обойдутся и без глубокой теории алгоритмических структур и разнообразия типов переменных. Ведь вы не объясняете маленькому ребенку теорию электричества, чтобы научить его включать свет. Лучше просто бросить ученика в «омут» прикладного программирования, и, поверьте, он научится там «плавать» гораздо быстрее, чем вы могли себе даже представить. А чтобы разжечь и поддержать детский интерес, нужно очень тщательно подходить к вопросу выбора проектов, которые вы будете создавать совместно.
Игры, которые будут программировать дети должны обладать следующими характеристиками:
- они должны бать предельно интерактивными и динамичными;
- они хотя бы отдаленно должны быть похожи на реальные игры, в которые играет молодежь;
- они не должны быть объемными, чтобы можно было реализовать проект за одно занятие, и ребенок смог бы сразу насладиться своим творением, т.е. поиграть и отнести exe-шник друзьям или родителям;
- они должны быть визуально красочными и яркими, поэтому учитель должен заранее готовить графические объекты, используемые в проекте;
- и, наконец, нужно очень аккуратно поднимать уровень сложности и внимательно следить за усвоением приемов программирования, чтобы не разрушить интерес детей к работе, а в некоторых случаях лучше притормозить.
Чтобы было понятно, о чем идет речь, приведу несколько примеров игровых приложений, которые мы выполняли на курсах:
1. Торпедная атака (плывет корабль, кликаем на «Огонь», торпеда движется в выбранном направлении, корабль уничтожен, рис.1);

рис.1
2. Опереди грибника (ёжик, уклоняясь от летучих мышей должен успеть собрать все грибы до того, как грибник выйдет на полянку, рис.2);

рис.2
3. Теннис (два игрока, перемещая ракетки по вертикали, отбивают шарик, рис.3);

рис.3
4. Пингвин (задав параметры, которые влияют на ценность очков, игрок должен собрать все яйца за установленное время, рис.4);

рис.4
Сам процесс работы над игровым проектом с получением промежуточных результатов вызывает живой интерес у детей. Когда ковбой начинает двигаться, подчиняясь командам игрока, или торпеда взрывает корабль – вот истинная мотивация для юного программиста. Вы когда-нибудь видели, чтобы ребенка восторженно хвастался перед друзьями «Посмотрите, я решил контрольную по математике, и решение такое красивое …». Вряд ли. А на своих курсах я часто наблюдал, как дети гордятся и хвастаются, когда игра работает, когда получился красивый код, а отстающие немного завидуют лидерам. Эмоциональное соперничество, восторг и желание усовершенствовать код – вот, что происходит, когда ребенок достигал намеченного. А еще неудержимое желание научить остальных, когда у самого получилось.
Трудно переоценить творческие аспекты процесса работы над проектом. А именно – вариативные формы достижения результата при программировании действий, модификация правил игрового приложения.
В конечном счете, в процессе прохождения подобных курсов, многие ученики приобретают устойчивый интерес к программированию и желание продолжить осваивать эту область. Взрослея, ученики начинают ставить себе более профессиональные задачи, нежели чем просто игровые приложения и решать их уже без помощи учителя. Были бы хорошие идеи.
Объектное программирование является важным навыком, даже если оно еще не введено в необходимом объеме на средней ступени школьного образования. Как сказал Джон Дьюи, американский философ, психолог и реформатор образования, «Если мы будем учить сегодня так, как учили вчера, мы украдем у наших детей завтра». Мы должны помочь детям стать активными, а не пассивными пользователями технологий, а также развить знания, которые нужны в XXI веке.