Алгоритмическое мышление позволяет увидеть решение задачи в виде алгоритмов. Например, маршрут, который мы проложили, решая головоломку «Ход конем» и загадку экскурсовода, явился результатом серии инструкций, выполняя которые, нужно посетить все достопримечательности или все клетки на доске и вернуться к началу. Наше решение — простой алгоритм для экскурсии по городу и обхода доски. Можно использовать несколько маршрутов, при этом разные алгоритмы могут стать решением для одной задачи. Мы увидели, что фокусы — это тоже алгоритмы и фокусники используют их, чтобы создать магический эффект. Алгоритмы позволяют выигрывать в крестики-нолики и хорошо понимать пациентов с синдромом «запертого человека». Существуют алгоритмы приобретения знаний, которые в целом позволяют нам создавать разумные машины. При помощи алгоритмов зарабатывают деньги и создают произведения искусства. Более того, они спасают жизнь, будучи встроенными в медицинские приборы.
Почему, решив проблему, важно записать алгоритм? Во-первых, после этого ему можно следовать столько раз, сколько понадобится (снова и снова проводить экскурсии, всегда безошибочно играть в игру, каждый раз спасать жизнь...), и при этом не придется снова и снова решать одну и ту же задачу. Мы даже можем дать кому-то другому задание следовать алгоритму (например, младшему ассистенту, если вы менеджер туристического агентства; всем, кто посещает пациента с синдромом «запертого человека» в больнице; ассистенту фокусника...). В этом случае человеку не понадобится искать решение задачи с нуля. Сегодня алгоритмам следуют не только люди, как это было на протяжении тысячелетий. В эпоху компьютеров их превращают в программы, и на основе этих программ работу могут выполнять машины.
Компьютерное моделирование
Крайне важный элемент алгоритмического мышления — компьютерное моделирование.Можно взять из реального мира какое-то явление, которое хотите лучше понять, например погоду, и создать алгоритм, симулирующий это явление в виртуальном мире. Запустив этот алгоритм, вы будете прогнозировать погоду — например, пойдет ли завтра дождь. Если у вас есть хорошая компьютерная модель, то, симулируя различные процессы, вы будете в состоянии провести массу экспериментов. Это дает результаты гораздо быстрее, чем эксперименты в обычной жизни. А еще можно обработать модель математическими методами и сделать выводы о вероятных последствиях.
Компьютерное моделирование — главный способ, с помощью которого вычислительное мышление преобразует все остальные сферы. Например, существуют компьютерные модели работы мозга и функционирования экосистем. Биологи создают алгоритмические модели, например, сердца или раковых клеток и проводят виртуальные эксперименты. Кроме того, это позволяет меньше использовать подопытных животных, так как доступны виртуальные животные.
Экономисты создают компьютерные модели экономики, чтобы спрогнозировать, к каким потенциальным эффектам могут привести планируемые политиками изменения. Климатологи обращаются к моделям для прогнозирования возможных последствий глобального потепления. Компьютерные модели использовали и для того, чтобы понять природу творчества, например оценить, что отличает хорошую литературу и искусство.
К компьютерному моделированию прибегают в физике, биологии, химии, географии, археологии... и многих других областях. Оно позволяет найти новый подход к теме, какой бы она ни была. Кроме того, новаторы, создавая экономические отрасли будущего, обнаруживают новые ниши для бизнеса.
Компьютерное моделирование даже изменило мир компьютерных игр. Например, World of Warcraft — это просто компьютерные модели фантазийного мира, а спортивные игры — компьютерные модели занятий спортом. В обоих случаях в программы встроены модели физических законов, чтобы, например, все, что поднимается вверх, непременно опускалось вниз!
Расцвет компьютерного моделирования показал, что, чем бы вы ни занимались, крайне важно иметь навыки вычислительного мышления, а не просто уметь обращаться с компьютером и использовать информационные технологии.
Научное мышление
Для практикующих вычислительное мышление не менее важно и научное мышление. Чтобы поддержать научный процесс, скажем, компьютерным моделированием, надо знать, как правильно заниматься наукой. Например, нужно понимать, что результаты, полученные для модели, справедливы только для нее. Они рассказывают именно о конкретной модели, и если она не соответствует реальности, то не соответствуют и результаты. Все расчетные данные нужно проверять, выдвигая новые гипотезы и тестируя их. Но если вы не упускаете из виду этот момент, вычислительное мышление дает вам мощный инструмент для понимания мира. Научное мышление необходимо и в других отношениях — в частности, для оценки алгоритмических решений. Научные методы обеспечивают ряд способов, которые позволяют проверить, соответствуют ли цели наши алгоритмы. Мы еще вернемся к этому пункту.