Вычислительное мышление в интеллект-стеке уровнем выше, чем системное

Что выше по интеллект-стеку -- вычислительное мышление, или системное мышление? Разлепить эти две трансдисциплины в жизни практически невозможно, они весьма тесно переплетены. Но нам разлепить таки нужно: надо как-то выстроить обучение.


Что выше по интеллект-стеку -- вычислительное мышление, или системное мышление? Разлепить эти две трансдисциплины в жизни практически невозможно, они весьма тесно переплетены. Но нам разлепить таки нужно: надо как-то выстроить обучение.

1. Вариант "вычислительное мышление с онтологикой ниже системного мышления, сначала нужно освоить вычислительное мышление".
По факту, это продолжение линии Дэвида Дойча про его сцепленные намертво четыре теории, вместе составляющие классическую "теорию всего", рациональное мировоззрение (https://yadi.sk/i/Rv9Tob18A6mxyA, стр.398):

"по отдельности все четыре теории [квантовая физика в интерпретации Эверетта, вычисления в докрученной Дойчем до разных физик вычислителя интерпретации Тьюринга, эпистемология в интерпретации Поппера с добавкой самого Дойча и теория эволюции с репликаторами в докрученной Дойчем интерпретации Докинза] содержат объяснительные пробелы из-за которых они могут показаться узкими, бесчеловечными и пессимистичными. Но я считаю, что как только их будут рассматривать совместно, как единое объяснение структуры реальности, это неудачное свойство изменится на прямо противоположное. Далекое от отрицания свободной воли, далекое от помещения человеческих цен­ностей в контекст, где они становятся тривиальными и неважными, далекое от пессимизма, это фундаментально оптимистичное мировоз­зрение помещает человеческий разум в центр физической вселенной, а объяснение и понимание — в центр стремлений людей".

Бесконечное познание и поэтому бесконечное улучшение мира: для защиты от катастроф нам просто не хватает знаний: наши предки умирали раньше от того, от чего нам бы в голову не пришло помирать сегодня. Знания непрерывно улучшаются (даже не увеличиваются: становятся более универсальными) -- это эволюция и эпистемология, они появляются в том числе в ходе вычислений, которые физичны в мире, описываемом теми же знаниями. Физика-эпистемология-вычисления-эволюция в одном флаконе.

В системном мышлении мы явно говорим о воплощении системы (физический мир) и об описаниях системы/veiws, методах описания системы/viewpoints -- и вычислительное мышление в этом клубке "теории всего" нам нужно для того, чтобы вести тут внятный разговор в рамках системного мышления.

Например, если мы берём такие описания, как требования системы, то в интеллект-стеке начинает работать рассуждение на уровень ниже. По Дойчу, так требование выдвигается, как "гипотеза" или им же предложенный термин "заблуждение" (все эти нюансы с выявляется/discover по Дойчу абсолютно однозначны: ничего не выявляется, а прямо изобретается/придумывается творческим мышлением). И выдвигается огромное количество требований, которые конкурируют между собой за своё качество сначала в голове выдвигающего требование, а затем и в коллективе людей и компьютеров проекта.

Качеством моделей/описаний (в нашем случае требований, но это просто пример общего паттерна мышления) занимается эпистемология. Она отвечает на вопрос "как вы узнали"? SoTA эпистемология говорит, что хороша та модель (те требования), которая нам даёт объяснение, а не просто предсказание. И что вот так понимаемое качество — это про то, какое описание из многих возможных нужно выбрать (а потом оказывается, что всегда можно сделать описание получше, но это только потом, когда найдётся случай, плохо описываемый — жизнь и описание расходятся). Этот выбор описаний (требований в их начальных вариантах) осуществляется путём фальсификации вариантов двумя путями:
— доказательством непротиворечивости (в том числе с ранее известными хорошими описаниями). И тут вспоминаем, что доказательства -- это вычисления, информатика это "наука о доказательствах", чуть подробней тут: https://ailev.livejournal.com/1540866.html (впрочем, и выдвижение требований это тоже вычисление, generative алгоритмы именно про "творческое мышление").
— измерением предсказанного описанием (эксперимент). Тут do-calculus, контрфактуальность, вычисления байесовских сетей, причинный вывод/causal inference. Тоже вычисления/вывод/доказательства.

Про такие описания, как требования, всё это вполне применимо. И тут же вылезает тот самый assurance case, который про доказательства (в том числе логические, и в том числе экспериментальные — описания). Для работы с требованиями через assurance case нужно вычислительное мышление. Нет -- вместо культурной работы с требованиями будет работа "на коленке", "требовательное кулибинство" (pun intended).

Разница только в том, что в требованиях мир (целевую систему) подгоняют потом под описания, а в классической эпистемологии описания под требования. В этом плане инженерия (в том числе инженерия требований) -- это reverse-epistemology, на этом уровне интеллект-стека это ближе к прагматике и праксиологии. И эту мысль нужно ещё продумать. Если требования невыполнимы в принципе — то это плохие требования. Они должны быть возможны. Это одна из проверок описаний, их физичность (выполнимость в жизни) — как раз это Дойч хорошо описывает, он в этом направлении хорошо дополнил SoTA эпистемологию Поппера. Так что да,
-- выявление требований, валидация требований и проверка требований с использованием assurance case берём из практик системной инженерии
-- объекты (целевая система) и их описания (требования) берём из системного мышления,
-- а вот читать для более глубокого понимания, что это такое и зачем нужно Дойча (который рекомендует читать более старого Поппера, чьи идеи он разделяет) -- это эпистемология, вычислительное мышление, эволюция, физика. Поверх всего этого читаем Judea Pearl, который говорит о том, что все эти объяснения — это объяснения причин и следствий, и даёт формальную модель для этого.

2. Вариант "вычислительное мышление выше системного мышления, сначала нужно освоить системное мышление".
Тот же Дойч в этих описаниях использует системное мышление: он явно говорит о системных уровнях (уровнях крупности вещества, у него же там в самом низу физика) и эмерджентности, требующей на каждом системном уровни новых объяснений. Квантовая физика имеет своё знание, свои объяснения -- частицы, атомы. А вот молекулы -- это другой уровень, работает эмерджентность, описания/объяснения там свои. Клетки и биохимия -- там уже новый уровень, новые эмерджентные свойства, поэтому новые описания/объяснения.

Но Дойч не использует в полной мере понятия "система": кроме системных уровней и эмерджентности у него из системного подхода нет практически ничего. Да и вряд ли он знает о системном мышлении в его современной версии. В старинных работах по общей теории систем системное мышление выглядит как ряд простых идей вокруг понятия "эмерджентность", это и использует Дойч. Это используют и другие авторы более-менее системных "теорий всего", тот же Уилбер, у которого вместо физики и реализма на ведущем месте вдруг "духовность", а из системного мышления идея холона трактуется более-менее произвольно в части соблюдения отношения часть-целое и эмерджентности, зато множественность методов описания/viewpoints на первом месте. У Дойча множественность методов описания по факту не отмечается, он всё больше про "универсальность" говорит и у него практически ничего про прагматизм и разделение труда, разнообразие ролей и интересов/concerns, влекущих разнообразие методов описаний. На более-менее полноценную трансдисциплину, которая рассказывает о структурировании мышления о проектах, а не только о целевых системах этих проектов, системное мышление 1.0 из общей теории систем не претендует, и именно оно у Дойча. А вот современная версия 2.0, развиваемая в системной инженерии -- она уже претендует. Тем не менее, идея "на разных системных уровнях используются разные описания, разные доказательства" -- она уже требует для своего понимания системного мышления.

А ещё в вычислительном мышлении нужно говорить о вычислительном стеке: внизу там физика, выше конструкция вычислителя, выше софт. Что-то по линии текста "сколько уровней в интеллект-стеке", https://ailev.livejournal.com/1382464.html (7 уровней только аппаратуры классического компьютера, и при этом я интеллект-стек я понимал как стек вычислителя, это сейчас я работаю именно с понятием интеллекта и мышления, обсуждая этот стек в "Образовании для образованных 2020").

Ход от вычислительного мышления (computer science) к инженерии (computer engineering, software engineering -- стек там слишком большой, чтобы говорить об одной инженерии) тоже требует системного мышления, ибо сегодня вся частная инженерия по факту специализация системной. Делаем-то successful computer system, successful software system. Но это не слишком сильное тут соображение в пользу "сначала системное мышление, потом вычислительное", ибо можно сказать, что "сначала вычислительное мышление, потом системное, потом уже инженерия, менеджмент, предпринимательство".

3. Почему системным мышлением и вычислительным мышлением нужно заморачиваться прямо сейчас?
Вот тут несколько моих комментов по поводу выступления Ольги Максименковой на тему современного IT-образования: https://www.facebook.com/olga.maksimenkova/posts/3812043265482152.

Вычислительное мышление как трансдисциплина -- это общее образование, и его можно понимать как айти образование, но не только для айтишников, а для всех образованных людей. Чтобы эти образованные люди могли хотя бы поддержать разговор с айтишниками. Далее вопрос: если вот так образованный для разговора с айтишником человек с каким-никаким вычислительным мышлением (и системным мышлением!)придёт к образованному айтишнику -- что он там встретит?! По идее, такое же вычислительное мышление, как у него (но кто научит ему сегодня айтишника?!) плюс что-то за его пределами (ибо речь идёт об образованном своим прикладным дисциплинам айтишнике, а не каком-нибудь условном директоре стадиона, которому даём просто трансдисциплины).

То есть для определения успешности айтишника после окончания его обучения рассмотреть не только самого айтишника в момент его работы как целевую систему, но и его в окружении других людей -- и предъявить требования к окружению. Мне кажется, что в сегодняшнем мире, где нет проектов без вычислителей (сложной сети из мозгов и классических компьютеров, а кое-где уже и квантовых компьютеров), от окружения айтишников нужно требовать умения с этими айтишниками разговаривать.

Если нет, то каждый айтишник должен стать учителем по вычислительному мышлению для окружающих его людей. Просто чтобы мочь обсудить постановку задачи с тем же условным директором стадиона на уровне чуть выше, чем "сделайте мне красиво".

Представим человека, который в шикарном ресторане обращается даже не к повару, а к официанту: "принесите мне поесть чего-нибудь". Конечно, принесут, именно "чего-нибудь". Приготовлено будет на уровне лучших мировых образцов, но может оказаться нелюбимой и ненужной для клиента едой.

Айтишникам же примерно так задачу и ставят: "Нарисуйте нам айти стратегию, а затем реализуйте её". То есть у айтишника в образовании должна быть ещё и учительская компетенция для дисциплины "вычислительное мышление" aka "информатика 2020" (и это ни разу не школьная сегодняшняя дисциплина).

При этом в самом айти огромное количество системных уровней (в модели OSI только семь!). Каждый из них требует своей дисциплины, своей практики, своего инструментария/технологии. Системность (а не систематичность) образования именно во многоуровневости, программы развития айтишника должны быть многоуровневыми. Для этого нужно учить айтишника работать с айти системно. Это где в его образовании?

Если неайтишное окружение айтишника и сам айтишник будут работать на разных системных уровнях, то ведь не договорятся никогда! А образователи не договорятся, чему учить. Так что сама идея системных уровней в образовании по вычислительному мышлению, похоже, уже должна присутствовать.

Но системности в разговоре про современные вычисления -- с гулькин нос, только эхо от разговоров старых компьютерщиков. В этом-то и беда момента. А поскольку парадигма вычислений меняется (алгоритмы AI это не алгоритмы Кнута, квантовый компьютинг -- это даже не функциональное программирование), и время этой смены становится сравнимым со временем образования, бессистемность становится вообще фатальной. Тему непонятно без этой многоуровневости даже как обсуждать. Разве что ограничиться "принципиальной вычислимостью" как у Тьюринга: формально, академично, но бесполезно без последующего развития в сторону неизбежной многоуровневости вычислителей.

4. А если таки попробовать говорить на системном языке в вычислительном мышлении с самого начала? Сделать системное мышление пререквизитом?

В курсе "вычислительное мышление" мы должны дать понятийный минимум: объекты внимания, нужные неайтишникам (и, конечно, айтишникам) при разговоре о вычислениях. По факту говорим о том, как описывать систему "вычислитель": зачем нужна эта система, из чего она состоит и как работает. Вычисления -- это и есть функционирование вычислителя! Мышление -- это функционирование интеллекта, а интеллект -- это тоже вычислитель.

Алгоритм -- функциональное (время работы) описание вычислителя. Система определяется по её функции. Вычислитель определяется по его алгоритму работы. Код или инф.модель харда -- это описание вычислителя (включая его поведение: вычисления), его можно документировать. Вычислитель -- воплощение системы, описанной алгоритмом. Вычислитель физичен!

Дальше нужно коснуться вопроса о данных, это потребует дополнительной онтологической проработки: все эти тонкости презентации (физичности) и репрезентации (символичного/модельного представления чего-то в физическом мире).

В системном языке вроде как получается меньше размахивать руками, и потом проще переходить к инженерии. Поэтому пока выбираем вариант "вычислительное мышление в интеллект-стеке уровнем выше, чем системное".

Источник: блог А.Левенчука