Детская информатика

Jul 13, 2012 23:07

Анатолий Левенчук рассказывает об обучении детей информатике. Весьма интересно.

Итак, в конце восьмидесятых стало очевидным, что в сложных технических устройствах завелось что-то трудноуловимое, что уже не охватывается мышлением среднего человека. Почему только тогда? Вспомните 1985-й год, где в СССР были персональные компьютеры, хоть какие-нибудь? IBM PC выпускался на Западе только с 1980 года, в СССР его практически не видели ещё. Какого размера тогда были доступные компьютеры? Если не считать простейших калькуляторов, то самая маленька СМ-4 была размером со стенной шкаф. Но вычислительная мощность у неё была несопоставимо меньше, чем у меня сейчас в телефоне - в разы и разы меньше. Если взять разрешение экрана современного телефона, то в крупных научных институтах пикселей на экранов всех компьютеров, наверное, не хватало бы в 1985 году, чтобы сравниться с числом пикселей экрана этого карманного телефона.


<..>
И в этих условиях вся страна вдруг начала учить информатику. Никто не знал, как её учить. В МГУ на мехмате собралась группа «Аттик», которая разработала вузовский учебник информатики, а затем разработала школьный учебник информатики и определила в нём, в чем, собственно это обучение информатике заключается. Выяснилось, что в голове среднего человека действительно нет сформированного куска мозга, умеющего выполнять вполне определенные операции, связанные с планированием действий в неопределенном будущем. То, что я сейчас вам буду говорить, это и есть вот настройка мозга на какую-то определенную деятельность. Мозг настраивается на деятельность, «становится на рельсы» -- и далее по этим рельсам привычно выполняет все необходимые операции.

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

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

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

Школьная алгоритмика - это ровно про это умение. Люди из группы «Аттик» пишут школьный учебник информатики, о целях которого говорят: «учить надо составлению планов в неопределенном будущем». Они простейший алгоритмический язык, который так и назвали - «школьный алгоритмический язык» Правильное название - Ершол (в честь академика А.П.Ершова, который этот язык придумал, и неформально так этот язык все и называют). Язык не меняется уже двадцать пять лет сейчас ЕГЭ по информатике принимают на Паскале, Си и Ершоле.
Люди из группы «Аттик» сформулировали, чему учить, и попытались понять, как учить. Они придумали методику обучения и попробовали учить сразу во всех классах -- с первого класса по 10-й класс. Обнаружилось (последним мне об этом говорил Сергей Бебчук, работавший с одарёнными детьми), что до шестого класса детей алгоритмике учить бесполезно, а начиная с седьмого класса обучение происходит без особых трудностей. На основе этих экспериментов было принято решение, что обязательное образование по информатике проходит, начиная с седьмого класса. Учебники алгоритмики были написаны именно для 7-го класса, тираж только учебника Кушнеренко-Лебедева-Сворня был больше 10 миллионов экземпляров.

Курс алгоритмики, который считался на тот момент курсом высшего образования, в существенной его части был опущен до уровня курса для седьмого класса. В те бескомпьютерные времена были легенды о соревнованиях между учениками, которых учили алгоритмике с компьютерами и без компьютеров. Выяснилось, что ученики тех классов, кто учили вот школьный алгоритмический язык без компьютеров (с доской, тряпкой и листочками бумаги), часто побеждали учеников тех классов, которые учились с компьютерами. Почему? Для алгоритмики важно, чтобы в голове были сформированы навыки правильных мыслительных операций, чтобы в голове проложились рельсы, по которым двигается мышление. А с инструментом, или без инструмента - для скорости мышления это уже неважно. То есть вам поставили какой-то особый тип мышления, и это мышление начало работать, вы можете решать задачи в какой-то предметной области. В случае алгоритмики вы можете разворачивать какие-то конструкции с ветвлениями, у вас в голове появляется понятие последовательности, понятие цикла, понятие ветвления, условного оператора, понятие логических переменных, сложных условий. И когда это всё у вас в голове есть, вам все равно, на каком языке писать, и какие именно алгоритмы или планы писать.

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

Прошло 20 лет, и в прошлом году мне люди из той команды «Аттик» говорят: «У тебя дитенок во втором классе? Мы тут вот программку сделали, ты ему задачки с этой программкой дай порешать. Он сможет, эти задачки мы вообще для детского сада выдумывали». Дал я дитенку эти задачки, смотрю, они действительно, простые. Я сообщаю: «Ребята, задачки эти мой дитенка решил решил». И тут они говорят: «А теперь дай ему наши давно известные задачки для 7-го класса». Я пытался возразить, что терпеливо жду, пока он дорастет до 7-го класса, потому что до того момента учить алгоритмике бесполезно. Они уговорили меня попробовать. Я исключительно из уважения решил попробовать.

День или два ушли у меня на объяснение того, что в «детсадовской» программке надо было мышкой кликнуть, а затем перетащить какую-нибудь команду-стрелочку в нарисованную ячеечку для команды, а в программе для седьмого класса нужно было словом эту команду написать. Например, цикл для детсада - это поместить значок «повторителя» в ячейку для повторителя команд, а тут начало цикла нужно было словами выражать в редакторе текстов. Через несколько часов буквально, у дитенки в голове что-то щёлкнуло - он понял, что эти вот операции мышкой с командами-картинками и ячейками, и операции с написанием слов - это одни и те же операции. И тут же решил первые задачи курса Ершола для седьмого класса. Я ему следующие подсунул, он и их решил. А когда я на больную голову вечером понял, что я какую-то задачу сам не могу решить минут 20 уже, когда у дитенки случился на какой-то задаче затык, я понял, что в этой задаче были уже какие-то уже рекурсии вложенные, штук пять или шесть подпрограмм, и я вообще не понимаю, как мой дитенка добрался до решения подобных задач. Я только тогда начал интересоваться, что это за задачи мне дали. Выяснилось, что задачи эти для физматшколы, что было уже несколько поколений технологии обучения алгоритмике для седьмого класса, и семиклассников таки научились быстро учить писать программы на Ершоле. Но почему эти задачи смог решать мой второклассник?! Выяснилось, что через 20 лет произошло то же самое, что произошло с делением в итальянских университетах. Люди из постепенно разобрались с тем, как нужно делить, и после этого начали этому обучать других. Сначала студентов, а не только философов и докторов, а потом - вот у нас сейчас деление проходится чуть ли не в первом классе школы. Так и группа «Аттик» сумела понять, как учить информатике, и добавка решения нескольких задач в хитрой программе с командами-картинками и ячейками для этих команд-картинок вдруг обрушила тот порог, который не давал учить алгоритмике маленьких детей.

Выяснилось, что в обучении алгоритмике есть три существенных части, которые нужно учитывать. Первая часть - это, собственно, алгоритмическое мышление, это вот те самые рельсы в мозгу, которым нужно научить. Вторая часть - это синтаксис языка программирования, потому что алгоритм нужно как-то выражать, и без синтаксиса конктретного языка его не выразить. Третья часть - это необходимость работы алгоритмического мышления с объектами из какой-то среды, и поэтому учить на языках чисто процедурных нельзя, а надо подняться хотя бы на ступеньку так называемых «пакетных» языков типа Модула или Ада. Замечу, что речь даже не идет об объект-ориентированном современном программировании, это более элементарный уровень. Для школьного алгоритмического языка эта «пакетность» была сформулирована как необходимость наличия какого-то предметного мира, и связанного с этим миром исполнителя (а программное средство, поддерживающее этот подход назвали КуМиром - Комплектом Учебных Миров).

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

Как сказала одна из принявших участие в эксперименте воспитательниц, «я в первый год не верила, что вообще дети-шестилетки могут освоить оператор цикла, я думала, что их предел - только последовательность команд. На второй год я поняла, как этому циклу шестилеток-подготовишек учить, и теперь верю, что научить можно всех шестилеток. А эксперименты мы ведём уже со старшей группой, и эти эксперименты успешны». На моих глазах, глазах одного поколения, вузовский курс (я учил программирование на химфаке в 1975 году примерно в том же объеме, какой сейчас обсуждается для начальной школы) был опущен не только до уровня средней школы, но и до начальной школы, а большими кусками и до детсадовского уровня.

И если раньше это называлось «школьная алгоритмика», то появляются первые работы, первые доклады об успехах, в которых закрепляется термин «дошкольная алгоритмика». Алгоритмика - это ведь не просто расхожая уже «информатика для малышей», понимаемая как крайне упрощенная «логика» с задачками типа «вот уточки розовые, уточки желтые, вперемешку, найди общий признак и рассортируй на две кучки». Да, нынешние учебники «Информатика» в большинстве своём вообще не содержат алгоритмики, которая про составление и записи планов действий в неопределенном будущем. В «дошкольной алгоритмике» дети реальные программы пишут, причем не все взрослые такие программы смогут написать, смогут решить предлагаемые дошколятам задачи. Почему? У этих взрослых в голове просто нет этих «рельсов для мышления» в части алгоритмики.

Когда с простейшим синтаксисом и учебным миром мы проходим ступенечку понимания с маленькими детками и кладём первый участок этих «рельс алгоритмического мышления», то дальше оказывается возможным пройти и весь курс седьмого класса. Секрет был просто в облегчении прохождения маленькой первой части большого сложного курса. Дитенка не может сразу одолеть сложный текстовый синтаксис, сложный мир робота, понятия алгоритмики. А упрощённый синтаксис и упрощенный мир на меньшем числе операторов алгоритмического языка он одолеть может, и после одоления первой ступеньки этой лестницы сложности дальше легко проходится вся лестница - до самой её вершины. На это изобретение ушло двадцать лет, а без первой ступеньки вся лестница была недоступна.

компьютеры, дети, образование

Previous post Next post
Up