Вычислительное мышление. Метод решения сложных задач - Питер Макоуэн
Шрифт:
Интервал:
Закладка:
Как это применимо к нашей головоломке? Дело в том, что многие находят ответ и у них получается переправить фермершу, собаку и зерно через реку. Однако они упускают последний шаг — не возвращают сиденье на другой берег. Правильное решение представлено на рис. 74.
Если этот последний шаг не включен в ваш план, значит, вы допустили в своем алгоритме то, что называют ошибкой после выполнения. Вы сосредоточены на цели, но забыли, что после выполнения подцели нужно кое-что доделать, то есть вы сделали ошибку на стадии планирования. Еще проще забыть что-то вроде этого, занимаясь повседневными делами. Мы не совершаем подобных ошибок каждый раз, когда для этого создаются условия. Все зависит от того, как много еще надо удержать в голове. Если краткосрочная память заполнена другим, вероятнее всего, вы забудете о подобных завершающих задачах. Краткосрочная оперативная память индивидуальна, поэтому некоторые делают такие ошибки чаще. Но если в голове нужно держать достаточно много, рано или поздно их делают все.
Так что, по крайней мере в этом отношении, мы не похожи на компьютеры. Они четко следуют плану. Нашему мозгу трудно это сделать без помощи.
Машина протягивает руку помощи
Итак, мы делаем ошибки, но машины могут помочь их избежать. Банкоматы на улице — хороший пример того, как программирование позволяет повысить или снизить вероятность такого рода ошибок. Когда они только появились, вы получали деньги, а потом карту (в некоторых странах это до сих пор делается так). Выяснилось, что многие люди уходили с деньгами, но без карты. Почему? Потому что у них была цель — взять деньги. Как только главная цель была достигнута (пришли и получили деньги), они уходили, мысленно уже обращаясь к следующей цели. Предыдущая подцель — вставить карту — выполнена и забыта... а вместе с этим забыта и появившаяся новая подцель — забрать карту.
Решение для этой конкретной «ошибки после завершения» оказалось простым. Программист написал для банкомата код, в соответствии с которым он не выдает наличность (ваша цель), пока вы не заберете карту (не выполните завершающую подцель). Таким образом, вы вынуждены кое-что доделать (подцель), прежде чем достичь цели. Так сейчас работают банкоматы в Великобритании. И это не единственное решение. Например, на бензоколонках карту просто прокатывают — то есть вам вообще не нужно ее куда-то вставлять. Хорошая проработка помогает преодолеть недостатки в обработке информации, свойственные нашему мозгу, но без посторонней помощи мы делаем ошибки. В этом случаи машины должны помогать. К сожалению, урок не был усвоен в более общем плане! Когда магазины начали вводить кассы самообслуживания, вдруг обнаружилось, что многие, оплатив покупки, забывают карты. Обобщенное решение было проигнорировано.
Потеря карты, ее блокировка и получение новой — досадные неудобства, но подобные недостатки могут быть запрограммированы в самых разных устройствах. Как мы знаем, больницы набиты чудесами техники, которые помогают спасать жизнь, но плохая конструкция может привести к тому, что жизнь оборвется. Например, медсестры должны настраивать инфузионные насосы для вливания. Эти устройства могут иметь тот же недостаток, что и банкоматы. Настраивая их, необходимо закрывать зажим, чтобы прекратить поступление лекарства. Но как только компьютер настроен на верную дозу, зажим надо открыть. Это как раз тот самый шаг, о котором легко забыть. А медсестры должны помнить и делать гораздо больше, чем вы, когда стоите у банкомата. Это как раз те ситуации, когда машина должна помогать, а не препятствовать.
Качественное вычислительное мышление означает проектирование компьютеров, которые помогают преодолеть «недостатки», мешающие нам думать как компьютер.
Сбивая со следа
Нашему мозгу приходится иметь дело с различными ограничениями в работе, а не только с конечным объемом краткосрочной памяти. Кроме того, у него нет полного понимания ситуаций, и, чтобы достаточно быстро реагировать на окружающий мир, ему необходимо обрабатывать большие объемы информации, которые поступают от органов чувств. Оказывается, в ходе этого процесса мозг делает много разных ошибок.
Как мы видели на примере с банкоматом, если понять, какого рода ошибки делают пользователь, можно создать системы (компьютерные и другие), которые смогут их не допустить. Конечно же, порой мы заинтересованы в том, чтобы люди делали ошибки и принимали ошибочные допущения, не имеющие оснований, — на этом и строятся фокусы. Итак, давайте на примере фокуса посмотрим, как человеческий мозг старается увидеть подлинную реальность и промахивается там, где у компьютерного мозга проблем не возникает.
Мы знаем, что сосчитать пять монет слева направо — абсолютно то же самое, что сосчитать их справа налево. Однако если мы создадим систему, которая намеренно введет некое несоответствие, при котором два предположительно одинаковых явления не совпадают, а зритель этого не замечает, то можно организовать довольно интересный фокус, навязав ошибку, свойственную человеку.
Невозможное ограбление
Покажите другу классический сюжет фильма. Как во всех хороших фильмах об ограблениях, в конце будет неожиданный поворот. Герои и реквизит — это два вора и пять драгоценных камней. Их играют одинаковые небольшие монеты, всего семь. Две монеты представляют воров, а остальные пять — драгоценные камни.
СЪЕМКА «ИЗ ЗАТЕМНЕНИЯ». История начинается с того, что пять драгоценных камней выкладывают в прямую линию на столе.
СЦЕНА 1. Два вора, которых изображают две монеты, по одной в каждой руке, как это обычно бывает в фильмах об ограблениях, спускаются с потолка на веревках. Вы изображаете это, держа руки над столом. Сначала вы показываете монеты в руках, потом сжимаете кулаки и опускаете руки. Теперь воры собирают драгоценные камни — вы по очереди поднимаете по камню (монете) со стола обеими руками и зажимаете их в кулаках, пока не заберете все.
СЦЕНА 2. Драматичный момент. Должно быть, последний камень выскользнул, и включилась сигнализация. Охранник вот-вот подойдет, поэтому воры быстро возвращают камни на стол — один за другим. А потом поднимаются на веревках на безопасную высоту, чтобы их не засекли. Уловка срабатывает. Охранники видят все пять камней на месте, отключают и снова включают сигнализацию и уходят, не потрудившись посмотреть вверх.
СЦЕНА 3. Два вора спускаются и снова и по одному забирают драгоценные камни. Кажется, это сойдет им с рук. Но вот финальный поворот сюжета: охранник замечает воров, когда они уже готовы убежать по крыше, и начинается схватка, которую вы демонстрируете, тряся кулаками над столом. Схватка заканчивается, вы театрально разжимаете кулаки, и два вора удивительным образом оказываются в одном, а пять камней — в другом.
ЗАТЕМНЕНИЕ. В невозможном ограблении происходит загадочный и неожиданный поворот — но как это провернули?