Алгоритм — это система последовательных операций (в соответствии с определёнными правилами) для решения какой-либо задачи.
Зная даже некоторые общие принципы, гораздо легче овладевать конкретными навыками. Общими принципами для всех навыков являются базовые алгоритмы, из которых строятся схемы, а также методы построения алгоритмов и их свойства. Например, известный факт, что, освоив один иностранный язык, другой осваивать уже намного проще, благодаря усвоенному алгоритму изучения языка.
Изначально ребёнок не обладает алгоритмами взаимодействия с окружающей средой. Его автоматические алгоритмы, которые генетически заложены (например, дышать или хватать), снабжают его лишь базовой системой познания окружающей среды, поэтому мышление с помощью алгоритмов ему ещё недоступно. Чтобы воспитать в себе алгоритмическое мышление, ребёнку необходимо взаимодействовать с окружающей средой, используя свою сенсомоторику (
dic.academic.ru/dic.nsf/psihologic/1645) и выстраивать «стиль общения» со всем, что его окружает.

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

Для чего нужно развивать алгоритмическое мышление?
Алгоритмический способ мышления — это главный навык программистов, но он не связан только с вычислительной техникой. Такой навык помогает решать задачи в любой сфере деятельности людей.
В процессе жизнедеятельности человек, так или иначе, применяет алгоритмический подход. Художник, мечтающий написать прекрасный пейзаж, никогда не сможет этого сделать, пока не начнет мыслить алгоритмически. Он должен предпринять некоторые последовательные шаги: выбрать натуру, продумать композицию, освещение, цвета. Наконец, что-то сделать конкретно – подняться, пойти, найти, организовать, написать. В этом плане программисты и художники очень похожи (
habr.com/company/edison/blog/301790/).
Способность мыслить точно, формально (и понимать, где это требуется), становится одним из важных признаков общей культуры человека в современном высокотехнологизированном мире.
Вот некоторые умения, которые требуются во многих сферах:
- Разбиение общей задачи на подзадачи.
- Умение планировать этапы и время своей деятельности.
- Оценивать эффективность деятельности.
- Искать информацию.
- Перерабатывать и усваивать информацию.
- Понимать последовательные, параллельные, недетерминированные действия.
Конечно, ещё Гёте заметил, что сущее не делится на разум без остатка. Но разум очень помогает в жизни. Когда говорят, что человек умеет думать, обычно подразумевают развитое алгоритмическое мышление.

Как развить алгоритмическое мышление?
Как и всё, что требует развития, алгоритмическое мышление нужно тренировать. Можно тренировать бессистемно, например, играя в стратегические игры. Но так развитие получается однобокое (
ok.ru/thevenusproject/topic/69163712738709). Хуже всего будет развито понимание свойств и ограничений.
Пониманием и построением алгоритмов занимается информатика. Информатика также изучает их свойства. Логично предположить, что изучение дисциплин, связанных с информатикой и программированием, разовьёт алгоритмическое мышление наилучшим образом.
Из такой широкой области как информатика, стоит выделить программирование. Изучать свойства алгоритмов и учиться с ними работать лучше всего на примере программирования (
cyberleninka.ru/article/n/formirovanie-algoritmicheskogo-myshleniya-v-obuchenii-programmirovaniyu-igr). Ещё и сам компьютер — интересная и полезная вещь, что тоже добавляет мотивации при обучении программированию. Академик А. П. Ершов ещё в 1986 году говорил, что «компьютерная грамотность – вторая грамотность».
Грубо говоря, алгоритмическое мышление необходимо развивать, чтобы понимать, «как все устроено». Для решения задач приходится с чем-то взаимодействовать, и для построения своего алгоритма надо понять алгоритм существования исходной системы. Самое главное – необходимо желание думать, без этого ничего не получится. Увы, в нашем сегодняшнем социуме с этим беда (
youtu.be/wGB_z3mt_wI).

Структурное мышление
Структурное мышление — это выявление связей между фактами. Этот вид мышления описывается фразой «разложить все по полочкам». Иными словами – сгруппировать факты так, чтобы была видна внутренняя структура явления. Этот навык также является основным в работе программистов.
Мир слишком сложен, чтобы пытаться понять его без подготовки. Информации вокруг океан, и попытка думать обо всем сразу обречена на поражение.
Чтобы сократить объем материала для обдумывания, структурное мышление начинает работать не с отдельными элементами, а с группами (
tilda.education/courses/web-design/psychophysiology/). Психолог Джордж Миллер установил, что человек может одновременно обрабатывать в среднем семь элементов информации (
is.gd/ZErY2d). Возможно поэтому мы зачастую группируем объекты по семь:
• семь дней в неделе;
• семь чудес света;
• семь смертных грехов.
Для анализа фактов их нужно объединить в группы так, чтобы число групп было не более семи.
Группировка фактов похожа на сбор чемодана: пока вещи разбросаны, унести их невозможно. Но вот мы уложили их в чемодан, взялись за ручку – уже можно нести. Вот так и группа: собрали факты вместе – можно их обрабатывать. Однако механический сбор фактов ничего не даст.
Нужно понять внутреннюю логику явления и выявить признак, по которому мы можем объединить факты. Это и есть структурное мышление.
Для выявления структуры нужно взять собранные факты и внимательно обдумать ответы на следующие вопросы:
• Какие факты наиболее важны?
• Какие факты повторяются?
• Можно ли найти общий признак у некоторых фактов?

Как создать структуру
Решая проблему, большинство людей сначала собирает данные, а затем переходит к их анализу. Программисты отличаются от «простых смертных» тем, что они в первую очередь строят гипотезы о путях решения проблемы (
youtu.be/6QsTfL-uXd8), а потом анализируют их. В основе этого метода лежит принцип пирамиды, разработанный Барбарой Минто. Ее идеи до сих пор используются в консалтинге и во многих других сферах.
Суть пирамиды проста — вы делите проблему на части. Верхушка — это основной вопрос, ситуация. Дальше — ряд идей, которые не пересекаются, но, дополняя друг друга, создают весь возможный спектр решений поставленного вопроса. На следующем уровне вы детализируете каждую идею, находите аргументы — и так до самого конца, пока разбивка не приведет вас к конкретным решениям.
Комментарии 1