Задание 2.
Мы вместе со Стёпой[16] изобрели язык программирования для дошкольников (мне кажется уместным назвать его «Малыш»). Так как некоторые стадии его обдумывания связаны с ранними занятиями, не отражёнными в дневнике, да и сам язык требует самостоятельного описания, я сделаю здесь длинное отступление.1.
На одном из занятий из числа первых двадцати, не попавших в дневник (точный номер его я не помню — кажется, где-то в районе № 15), дети получили следующее задание: я построил на столе башенку из деревянного конструктора (рис. 53) и попросил ребят построить башенку точно такой же высоты, но только на полу.Рис. 53.
Ещё когда Диме было всего три года, я давал ему аналогичное задание на ступеньках крыльца на даче. Тогда он видел свою задачу в том, чтобы вершины башенок находились на одинаковом уровне. Сейчас он, как и все остальные, уже понимал, что высота является инвариантом перемещения. Поэтому он строил башенку примерно нужной высоты, а потом брал её за верх и за низ и пытался приложить к башенке, стоящей на столе. К его сожалению — и к моей тайной радости — башенка, которую он пытался поднять к столу, всё время рассыпалась.
После третьей неудачной попытки я ввёл новое правило: башенки не трогать и никуда не переставлять. Последовала минутная пауза. Потом вдруг Дима закричал:
— А-а, я понял, понял! — и построил на полу башенку в точности из тех же элементов конструктора и в той же последовательности, что и у башенки на столе.
Такое решение оказалось для меня несколько неожиданным; я почему-то не предусмотрел его заранее. Тем не менее я, вопреки своей обычной неповоротливости, похвалил ребят и сказал, что они молодцы и с задачей справились (и в самом деле, я ведь вначале никак не фиксировал, из какого материала следует строить башенку на полу).
— А теперь другое задание, посложнее, — сказал я. — Нужно построить башенку такой же высоты, но только вот из этих (пластмассовых, разноцветных, стандартного размера) кубиков.
Опять воцарилась пауза, на этот раз более длительная. Мне очень не хотелось заканчивать задание на минорной ноте, поэтому я, вопреки своему правилу, решил сделать подсказку. Как бы невзначай я положил на стол верёвочку и сказал:
— Думайте, думайте.
Они тут же схватили верёвочку и стали её вертеть по-всякому, но как её применить, не знали; в основном, прикладывали её концами к вершинам обеих башен. Тогда я принёс палочку и сказал:
— Может быть, палочка поможет.
Но и палочка не помогла — они тоже прикладывали её к вершинам, получая наклонную линию. Пришлось дать ещё одно наводящее соображение:
— А что выше — палочка или вот эта башенка?
Оказалось, что палочка выше, но зато на ней есть царапина ровно в том месте, где кончается башенка. Это, наконец, натолкнуло на идею, и ребята построили вторую башенку на полу ростом до той же царапины.
2.
Примерно через три занятия мне пришла в голову замечательная идея: оформить процедуру построения башенки в виде алгоритма. Вот как это реально выглядело.Во-первых, я ещё раз дал им задание на построение башенки. На этот раз они справились с заданием идеально и быстро, что, кроме всего прочего, продемонстрировало хорошее усвоение материала.
— А теперь, — сказал я, — давайте подумаем, какие действия мы делаем и в какой последовательности.
И, конечно, получил естественный ответ:
— Сначала ставим несколько кубиков, потом измеряем, и тогда один кубик или прибавляем, или убавляем.
(Действительно, при первоначальном построении башенки на глаз они ошибались не более чем на один кубик.) Я стал нудеть, что надо разбить задачу на самые маленькие действия, например, ставить всего по одному кубику, а не сразу много, и т. п.
После этого я им показал вырезанные заранее карточки из плотной бумаги. На них было (Аллой) нарисовано следующее:
1) прямоугольная карточка: мальчик ставит кубик;
2) прямоугольная карточка: мальчик измеряет башенку (на полу);
3) карточка-ромбик: в ней большой вопросительный знак (имеется в виду молчаливый вопрос: ну как, равны?);
4) карточка-прямоугольник поменьше: на ней (печатными буквами!) написано слово КОНЕЦ;
5) ещё из той же плотной бумаги был вырезан набор стрелок — несколько маленьких одинаковых стрелок и одна длинная; на двух маленьких стрелках были написаны слова ДА и НЕТ.
Показав всё это, я спросил, в каком порядке нужно делать нарисованные здесь действия. Такой тип вопросов был уже ребятам знаком, так как до этого они выполняли два следующих задания:
(А) Определить порядок утренних дел (одевание, умывание, просыпание, завтрак, катание на санках, зарядка, потягивание в кровати и т. п.) — из книги Тамаша Варги «Блок-схемы, перфокарты, вероятности».
(Б) Определить, в каком порядке следует надевать различные предметы одежды и обуви (трусы, майку, носки, ботинки, рубашку, брюки, свитер, шубу, шарф, шапку).