Общеевропейской и общемировой практикой является начало обучения детей программированию с 6-10 лет. Например, в Исландии, Британии, Прибалтике преподают Scratch - абсолютно игровое программирование, на котором заставляют котика бегать, прыгать и говорить посредством решения детьми задачек. В такой гениальной легкой форме ученики знакомятся с основами алгоритмизации, и возраст детей также подобран идеально.
В образовательной программе украинской начальной школы это тоже задумано правильно - во втором-четвертом классе предусмотрено изучение Scratch. Другой вопрос - действительно ли Scratch везде изучается и если изучается, то - на каком уровне. Увы, в большинстве школ, где мне довелось побывать – а это более сотни школ - Scratch не изучают вовсе. А по мнению учителей, с которыми я работал по всей Украине в ходе проекта “Школяр-програміст”, преподавание Scratch учителями начальных классов, к сожалению, осуществляется, в основном, на таком уровне, что все равно в 5-м классе приходится изучать его повторно.
Итак, если все-таки в программе для 2-4 класса Scratch есть, и представить, что уровень его преподавания достаточен, то мы по факту переходим в ситуацию, которая очень хорошо изложена в стандарте информатики в Соединенных Штатах. Там, в частности, 5-7 классы отнесены в группу, в которой нужно начинать давать и обычное алгоритмическое программирование, и объектные элементы, причем сказано, что можно использовать как некодовые, так и кодовые среды.
Поясню, Scratch - это пример некодовой среды, где команда пишется словами, понятными человеку (Например "Сделать шаг!", то есть - без кода). Кодовые среды - это уже профессиональные среды, где код пишется языком программирования, и команды понятны компьютеру. Результат фактически тот же самый.
В Штатах учитель сам выбирает, кодовая или не кодовая среда будет использоваться детьми. Это зависит от пожеланий детей и предпочтений педагога. И если бы дети Scratch не учили в 2-4 классах, то в 5-6 им легче было бы воспринимать некодовую среду, это однозначно. Но если ребенок уже в начальных классах ее попробовал, то самое время приступать к кодовой среде. И в этом нет абсолютно ничего страшного. Вопрос состоит в том, на каком уровне доступности преподавать программирование.
На данный момент основы структурного и объектного программирования даются на оболочке Lazarus. Это великолепное решение, если нет вообще ничего, кроме него. Отличная штука, правильная, хорошие методички по ней сделаны и огромное спасибо авторам, которые их написали. Но, на самом деле учить JAVA с пятого класса - это значительно лучше, нежели использовать оболочку Lazarus сразу по нескольким причинам.
Бытует мнение, что программировать учить можно чему угодно, на чем угодно, а потом дети все равно адаптируются. Мысль правильная, но все равно это требует какого-то периода адаптации и лишних усилий. И я считаю, что если можно начать учить то, с чего нужно начать учить, почему бы не сделать это. Тем более, что это повлечет за собой дополнительную мотивацию. Когда ребенок знает, что он учит язык программирования, который в целом промежуточный и после него нужно будет учить что-то еще, он учит по принципу "зазубрил-сдал-забыл". Если же начинать программировать на JAVA, где он четко знает, что довольно скоро он будет программировать Android, а в некоторой перспективе и iPhone, то для него это станет отличной причиной вникать в материал и старательно учиться.
Думаю, что главное - правильная подача материала. Да, JAVA - язык профессионального программирования, и никто ранее не задумывался, чтобы его преподавать детям. Но это значит лишь то, что необходимо адаптировать изложение JAVA под детское восприятие. И чтобы, например, дети программировали того же котика, которого они программировали на Scratch, только теперь – уже на JAVA.