Рассмотрев структуру двух квалифицированных вычислительных систем, обратимся теперь к людям, решающим задачи. Здесь нашей основной заботой будет не то, как воплощаются знания, а то, какие из существующих знаний следует воплотить.
Хорошо, что некоторые сгустки знания, фундаментальные идеи, оказываются универсально полезными, появляясь в наших науках снова и снова. Распознавание таких фундаментальных идей и достаточно раннее их усвоение крайне важны для формирования интеллектуальной зрелости, и все же редко встречаются попытки обучить им детей непосредственно, за исключением неявного обучения через элементарную арифметику. Однако это положение можно изменить. Пейперт и связанные с ним люди продемонстрировали способы обучения фундаментальным идеям даже совсем маленьких детей. Давайте поэтому сначала установим контекст, удобный для обсуждения этих приемов, обрисовав тот маршрут, по которому пройдет ребенок, работая над проектом в лаборатории образования Пейперта.
Рис. 9.4. Дели могут писать программы, пользуясь машиной с ячейками для вставляемых карточек. Расположение по рядам карточки, снабженные определенными кодами, определяют движения механической черепахи. Цветные карточки позволяют организовать переход к ряду, имеющему тот же цвет. Работающие машины имеют размер четыре на десять ячеек и более
Дети могут обучать механическую черепаху двигаться по той или иной траектории
Ребенку предоставляют так называемую черепаху, небольшую радиоуправляемую тележку, которая выглядит как прозрачный домик на колесах. Ребенок быстро усваивает управление черепахой, пользуясь командами ВПЕРЕД, НАЗАД, ВЛЕВО, ВПРАВО, которые подаются либо через терминал, либо путем набора определенных кодов с помощью карточек, вставляемых в щели на панели, которая изображена на рис. 9.4. Квадрат со стороной в десять сантиметров можно задать с помощью набора из восьми инструкций:
Вскоре ребенок пишет программу, КВАДРАТ, которая позволяет ему заставить черепаху двигаться по квадрату любого размера. Для этого требуется просто набрать несколько инструкций и использовать переменную вместо числа 10.
После этого, напечатав КВАДРАТ 20, он заставляет черепаху пройти по квадрату со стороной 20 сантиметров.
Несколько таких экспериментов подготавливают ребенка к осуществлению проекта по летней миграции черепахи. Цель черепахи попасть в северную часть комнаты, как изображено на рис. 9.5.
Рис. 9.5. Задача по перемещению механической черепахи состоит в том, чтобы приблизить ее к северной стене, обойдя препятствия
Поскольку на пути могут встретиться препятствия, то разумной подцелью могло бы быть наделение черепахи способностью обходить вокруг препятствия. Если такая программа уже имеется, то к ней можно обращаться всякий раз, когда детектор столкновения подает сигнал, и от нее можно отказываться, когда движению в северном направлении ничто не мешает. Написание такой программы обхода препятствия представляет интерес, потому что черепаха должна поддерживать постоянный контакт со стенкой, чтобы обнаруживать углы. Учитель может прийти на помощь, предложив эксперимент, в котором ребенок с завязанными глазами сам должен обойти вокруг некоторого препятствия. После выполнения такого эксперимента становится ясно, что здесь уместны два соображения:
Если возникает контакт со стеной, то черепаха должна повернуть слегка вправо. В противном случае возрастает трение, что может привести к полной остановке, в особенности в районе вогнутых углов.
Если контакт со стеной теряется, то черепаха должна повернуть слегка влево. В противном случае она может отойти от препятствия и начать бесцельное блуждание в пространстве. Такая ситуация особенно вероятна у выпуклых углов.
На рис. 9.6 представлена траектория движения черепахи или человека в соответствии с этими программами. Заметьте, что необходим некоторый опыт, чтобы определить коэффициент коррекции направления движения. Он должен быть достаточно большим, чтобы избежать промахов на углах, и достаточно малым, чтобы движение вдоль стены оставалось достаточно гладким. Эти соображения учитываются такой очень простой программой:
Рис. 9.6. Обойти препятствие нетрудно. Механическая черепаха поворачивает вправо при ощущении контакта со стеной, или влево в противном случае. Требуются определенные усилия, чтобы выбрать оптимальную степень поворота, когда путешествие вдоль стены получается достаточно гладким, и в то же время траектория обхода остается достаточно экономной
Строка 1 заставляет черепаху продвинуться вперед на небольшое расстояние. Вторая строка определяет, привело ли это движение к касанию стенки или увело от нее. Строки 3 и 4 указывают на соответствующие корректирующие действия. Строка 5 позволяет образовать цикл движение-тест-реакция и повторять его снова и снова. Таким образом, эта процедура итеративна. Другая возможность достичь того же эффекта содержится в следующем рекурсивном варианте:
В таком виде программа ОБОЙТИ почти готова для включения в систему миграции черепахи. Необходимо лишь периодически делать проверку направления, прекращая работу программы, когда отклонение от севера становится нулевым:
Конечно, здесь предполагается, что направление становится известным через переменную ОРИЕНТАЦИЯ, точно так же как факт контакта известен через переменную КАСАНИЕ-СЛЕВА.
Рис. 9.7. Ловушка для черепахи. Если известна только ориентация, то механическая черепаха ошибочно полагает, что препятствие обойдено, как только направление движения становится ориентированным на север
Результатом является адекватная программа, которая большую часть времени работает хорошо. Она, правда, не справляется с ловушкой, показанной на рис. 9.7. Внутри нее черепаха ошибочно считает, что она обошла препятствие, тогда как в действительности она лишь обнаружила место, где вогнутость дает ей возможность двигаться к северу. Черепаха обречена. Она повторяет свою ошибку снова и снова. Очевидно, что недостаточно знать лишь текущую ориентацию. Черепаха нуждается в сведениях о полной величине поворота. Тогда движение вперед возобновляется не раньше момента, когда полный поворот станет равным нулю, и, конечно, не всякий раз, когда переменная ОРИЕНТАЦИЯ становится равной нулю.
Обучение черепах перемещению помогает детям усвоить фундаментальные идеи
Разумеется, ребенок приходит в восторг. Используя черепах и другие роботоподобные устройства, он решает задачи методами, которые коренным образом отличаются от большинства предметов в начальной школе. Тут он имеет возможность сам чем-то управлять - ситуация обратная по сравнению с ситуацией, обычной для ребенка. Естественная реакция ребенка состоит в том, что он не чувствует никакой учебы, все, что он делает,- это одно развлечение.
Но он учится, он обучается концепциям, которые традиционно считаются и глубокими, и важными. Они представляют собой такие фундаментальные идеи, как, например, следующие:
Представление о состоянии и переменных, отражающих состояние. Трудно представить себе отрасль науки, в которой понятие состояния не применялось или не могло бы быть применено с большой пользой для дела. Ясно, что если научная дисциплина связана феноменом изменения, то в ней используются описания состояний до, после и, быть может, во время изменения. Обычно эти описания даются в форме чисел, суммирующих конкретные аспекты ситуации, относящиеся к пониманию или предвидению изменения. Это переменные, отображающие состояние. Они могут быть непрерывными или дискретными переменными. Примером может служить температура в комнате, величина тока в проводнике, координаты предмета. В случае мигрирующей черепахи переменными, описывающими состояние, являются ориентация и положение.
Представление о входной и управляющей переменной. Если мы хотим чем-то управлять, то к системе должен быть доступ через некоторую входную или управляющую переменную. В простой ситуации между выбором величины управляющей переменной и результирующим изменением состояния имеется непосредственная связь. Установка термостата и результирующая температура в комнате связаны между собой просто в том смысле, что установка более высоких значений у термостата влечет за собой повышение температуры в помещении. На некотором более точном уровне эта простота исчезает из-за эффектов, связанных с внешней температурой, запланированным или неожиданным гистерезисом, воздушными потоками и тем, горит ли камин. Если имеется несколько переменных состояния, которыми необходимо управлять, то можно рассчитывать на наличие равного числа входов, каждый из которых сказывается на величине только одной такой переменной. В геометрии, связанной с перемещениями черепахи, входами являются команды перемещения и поворота, которые независимым образом управляют изменениями значений переменных состояния, определяющих положение и ориентацию. В ньютоновской физике состояние тела задается его положением и скоростью. К сожалению, единственным управляющим фактором является сила, которая непосредственно влияет на скорость и косвенно - на изменение положения.
Представление о подзадаче и под цели. "Разделяя побеждай" - первейший принцип научной атаки. Задача разбиения трудного вопроса на обозримые фрагменты часто оказывается, по существу, единственной задачей. Хотя мы это специально не оговаривали, это соображение неявно использовалось при управлении черепахой, поскольку процесс мигрирования - это перемещение к северу плюс обход различных препятствий.
Представления о независимости и взаимодействии локального и глобального. Понимание сложных систем происходит посредством выяснения роли отдельных частей, а затем того, как они взаимодействуют. Хорошо, если они объединяются линейным образом, так что их совместное поведение представляет собой просто аддитивный результат их индивидуального поведения. На некотором уровне абстракции комбинация процесса ОБХОДА с другими процессами носит линейный характер, поскольку рассмотрение локальных свойств постепенно ведет к пониманию явления в целом. Наука процветает на изучении систем, ведущих себя линейным образом, и мучается с системами, ведущими себя иначе.
Представление об обратной связи. Обратная связь распространена повсеместно: и в природе, и в искусственных системах. Она является определяющей для нашего организма, от нее зависит экономика и ее используют инженеры. Обычно понятие об обратной связи не встречается в начальных курсах. Но оно реализовано в случае управления черепахой. Иначе никак нельзя было бы обойти препятствия.
Представление об итерации и рекурсии. Эти два понятия составляют фундамент для концепций управления. Они иллюстрируются двумя формами для простого процесса ОБОЙТИ.
Представление об отладке. Первоначальный анализ тяжелой задачи редко бывает успешным, но если исходные идеи хороши, выглядят убедительными, то было бы глупо начинать все снова. В этом случае следует атаковать слабые места первоначального анализа с помощью упорядоченной процедуры отладки. Ошибки и расхождения следует рассматривать как потенциально полезных друзей, а не относиться к ним, как к нежелательным чудовищам. Отладка в случае черепахи необходима и при обходе препятствий, и при обходе ловушек. Кое- что получилось.
Представление об обобщенной переменной состояния. Если задача представляется неразрешимой, то трудность может заключаться в недостатке знаний о состоянии и может быть целесообразным увеличить число переменных, описывающих состояние, или же расширить значение уже имеющихся переменных. Обобщение понятия переменной, отвечающей состоянию ориентации, явилось верным шагом при решении проблемы ловушки для черепахи.