[userpic]

Алгоритмика с пелёнок 

metanymous в посте Metapractice (оригинал в ЖЖ)

Выяснилось, что в обучении алгоритмике есть три существенных части, которые нужно учитывать. Первая часть – это, собственно, алгоритмическое мышление, это вот те самые рельсы в мозгу, которым нужно научить. Вторая часть – это синтаксис языка программирования, потому что алгоритм нужно как-то выражать, и без синтаксиса конктретного языка его не выразить. Третья часть – это необходимость работы алгоритмического мышления с объектами из какой-то среды, и поэтому учить на языках чисто процедурных нельзя, а надо подняться хотя бы на ступеньку так называемых «пакетных» языков типа Модула или Ада. Замечу, что речь даже не идет об объект-ориентированном современном программировании, это более элементарный уровень. Для школьного алгоритмического языка эта «пакетность» была сформулирована как необходимость наличия какого-то предметного мира, и связанного с этим миром исполнителя (а программное средство, поддерживающее этот подход назвали КуМиром – Комплектом Учебных Миров).
Раньше считалось, что учить алгоритмику нужно на примере математики. Люди из группы «Аттик» сказали, что нужно мир математики заменить на мир двигающегося на клетчатом поле робота с командами «вверх», «вниз», «влево», «вправо», «закрасить клетку». Я думаю, это многим знакомо, потому что я
рассказываю самый обычный школьный курс для седьмого класса.
Что же произошло в 2011 году? Люди из группы «Аттик» сказали: давайте мы оставим минимум понятий, необходимых для программирования – последовательность команд, подпрограмма, цикл «раз», условный оператор. Необходимость освоения синтаксиса по возможности исключим, язык у нас будет графический – нарисованные плашки с иконками-командами нужно будет укладывать мышкой в фиксированный набор ячеек для команд. При таком подходе можно учить даже тех, кто читать не умеет! «Вот эта плашка-стрелочка заполняет вот это вот место» -- вот и весь синтаксис. Мир был сделан совсем маленьким, команд движения роботом стало даже не четыре (по направлениям), а три (только «вперед» и повороты вправо и влево). И вот этим крохотным синтаксисом в крохотном мире смогли овладевать дети в детских садах, и не только в подготовительной группе, но даже и в старшей.
Как сказала одна из принявших участие в эксперименте воспитательниц, «я в первый год не верила, что вообще дети-шестилетки могут освоить оператор цикла, я думала, что их предел – только последовательность команд. На второй год я поняла, как этому циклу шестилеток-подготовишек учить, и теперь верю, что научить можно всех шестилеток. А эксперименты мы ведём уже со старшей группой, и эти эксперименты успешны». На моих глазах, глазах одного поколения, вузовский курс (я учил программирование на химфаке в 1975 году примерно в том же объеме, какой сейчас обсуждается для начальной школы) был опущен не только до уровня средней школы, но и до начальной школы, а большими кусками и до детсадовского уровня.
И если раньше это называлось «школьная алгоритмика», то появляются первые работы, первые доклады об успехах, в которых закрепляется термин «дошкольная алгоритмика». Алгоритмика – это ведь не просто расхожая уже «информатика для малышей», понимаемая как крайне упрощенная «логика» с задачками типа «вот уточки розовые, уточки желтые, вперемешку, найди общий признак и рассортируй на две кучки». Да, нынешние учебники «Информатика» в большинстве своём вообще не содержат алгоритмики, которая про составление и записи планов действий в неопределенном будущем. В «дошкольной алгоритмике» дети реальные программы пишут, причем не все взрослые такие программы смогут написать, смогут решить предлагаемые дошколятам задачи. Почему? У этих взрослых в голове просто нет этих «рельсов для мышления» в части алгоритмики.