Об вычислительное, научное, инженерное мышление

Aug 02, 2018 15:29

Очень мутный подход проф. Osman Yaşar (колледж Университета Нью-Йорка в Брокпорте) по переопределению вычислительного мышления (computational thinking) с посвящённого чему-то компьютерному в просто мышление, делающее акцент на моделировании в части абстракции на какие-то уровни моделирования и декомпозиции модели на одном уровне абстрации -- мне это прилетело в виде его краткой июльской публикации в Communications of ACM, https://cacm.acm.org/magazines/2018/7/229035-a-new-perspective-on-computational-thinking/fulltext, но он эту свою мысль продвигает во всех мыслимых изданиях, полно текстов в открытом доступе, например "The essence of computational thinking and tools to promote it", https://peer.asee.org/the-essence-of-computational-thinking-and-tools-to-promote-it.pdf

Многие идеи из текстов профессора носятся в воздухе, и он просто выполняет роль Кэпа для "музыкой навеяло". Если это будет читать какой-нибудь ИИ через десяток лет, то вот он, "научный приоритет"! В моих текстах ведь тоже примерно это направление мысли, хотя и на другом языке, и в другой терминологии. Вот некоторые мысли из его тезисов с моими комментами:

1. Нас не должно заботить, ведутся ли вычисления в мозгу или компьютере. Поэтому вычислительное мышление не связано только с компьютерами как носителями вычислений. Вычислительное мышление связано с "мыслительными вычислениями" независимо от носителя, условно говоря, с cognition. А из cognition мы выделяем моделирование, которое про многоуровневую абстракцию и декомпозицию на отдельно вычисляемые/мыслимые (ибо неважно, вычисляем или мыслим по моделям) куски, например, для параллельных вычислений в сложной модели. Интересно, что вычислительное мышление при этом отвязывается профессором от computer science, которая не про абстрагирование и декомпозицию.

Я определял информатику как работу агентов (людей и компьютеров) с текстами и кодами в http://ailev.livejournal.com/1008054.html. И информатика тем самым тоже не выделяет отдельно вычислительное медиа, как и у Osman Yaşar. И информатика тем самым шире computer science: кодирование, отекстовка, перетекстовка там как-то могут быть связаны с абстрагированием и декомпозицией -- но, в computer science считается при этом, что абстракции в этот момент уже даны, декомпозиция задана, и нужно просто синтезировать/выучить эффективный по памяти и времени алгоритм кодирования, отекстовки, перетекстовки. Так что парадоксальным образом, вычислительное мышление оказывается отвязанным от computer science, хотя они оба важны в информатике. В рамках информатики computer science может помогать вычислительному мышлению, реализуя полученные этим вычислительным мышлением модели -- это один из призывов профессора к сообществу computer science.

2. Кроме вычислительного мышления сего абстракцией и декомпозицией моделей, есть ещё научное мышление с выдвижением и изменением гипотез в части моделирования, а также инженерное мышление в части использования моделей как проектов. Вот это очень мутное место: как профессор бьёт мышление на части, чтобы оставаться в рамках folk taxonomy разных мышлений (вычислительное, научное, инженерное), принятой в американском бюджетировании науки. Тот самый STEM, ничего более. Тут я вздыхаю, и напоминаю мой текст "За пределами STEM-образования", https://ailev.livejournal.com/1283663.html. Например, куда дели системное мышление? А вот онтологика, похоже, у профессора спрятана где-то в вычислительном мышлении: модели же! Но вот стейкхолдеров в профессорской онтологике наверняка нет, да и с мультимоделированием проблемы: он работает со школьниками, К-12 и мыслит опять-таки в рамках классически нарезанных предметов школьных программ. Отдельные виды моделей для каждого предмета, и только. И никаких проектов по созданию чего-то, целевая его деятельность -- "изучение химии в школе", "изучение физики в школе".

Так что "моделирование мира" оказывается сутью вычислительного мышления, но что же в нём вычислительного? А ничего там нет вычислительного! Вычисление=мышление, вот и весь тезис профессора. Дальше он варит суп из топора: задаёт абстрагирование и декомпозицию как главное, что его интересует в мышлении и говорит, что изо всех "мыслительных вычислений" его интересует именно это.

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

3. Обычное мышление умеет всё то же самое, что вычислительное, научное, инженерное. Разница в научном, инженером и вычислительном мышлении только в том, что эти мышления используют свои приёмы более часто, итеративно и дисциплинированно. То есть по обычный человек вдруг раз, и что-то абстрагирует с перепугу, а потом неожиданно для себя бьёт получившуюся в результате абстрагирования модель на части. А вот человек с вычислительным мышлением это делает часто, повторяет и придерживается какой-то дисциплины. То есть вычислительное мышление имеет просто какие-то количественные отличия от просто мышления в части использования приёмов абстрагирования и декомпозиции в работе с моделями мира. Osman Yaşar в этом месте в тексте просто говорит про то, что люди повсеместно используют дедукцию и индукцию (до абдукции дело не доходит, нет такого слова у профессора). По факту он говорит, что все люди логичны, все люди рациональны. Но некоторые более логичны и рациональны, чем другие.

Я думаю, что это для профессора очень удобный тезис, чтобы дальше не разбираться с содержанием этого мышления (в чём же заключается эта логика, что там за индукция и дедукция, и бывает ли что-нибудь ещё -- типа той же абдукции), а просто работать с моделями как предметом вычислительного мышления. Это и делает профессор: все его тексты про то, как он использует разные модели в учебном процессе средней школы. И учит пользоваться моделями. Но это полная противоположность заявления тому, что он учит именно моделировать: учит абстрагировать и делить эти модели на части! Он учит пользоваться уже готовыми модельными средами для выдвижения и проверки гипотез -- то есть учит научному мышлению, а не вычислительному. А вычислительное мышление использует для создания этих моделей, но среды моделирования с предметными DSL создаются вроде как учителями (из текста в Communications of ACM по первой ссылке этого не видно, а из текста по второй ссылке просто очевидно). Ну, или я что-то недопонял из его текстов, но мне сложно понимать, когда разговор про обо всё на свете ведётся только в терминах индукции и дедукции, и только.

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

А ещё обычное мышление делается в "бессознанке", а мы добиваемся осознанности -- https://ailev.livejournal.com/1417932.html

4. А ещё Osman Yaşar делит обучение на индуктивное и дедуктивное так, что это примерно соответствует bottom up и top down, которое обсуждается в http://forums.fast.ai/t/about-andrew-ngs-deeplearning-ai-courses/9830/17 (помним, что классическое обучение -- это bottom up, хороший обзорчик по top down дан в http://www.fast.ai/2016/10/08/teaching-philosophy/). И говорит, что обучение с учётом работы с моделями (то есть обучение с задействованием вычислительного мышления, развитие вычислительного мышления путём использования моделей в учебном процессе) сочетает оба подхода. Мне же кажется, что он говорит больше о top down, при этом в качестве оправдания для сторонников bottom up его аргумент банален -- что в какой-то момент он добирается таки до этого самого bottom, до мелких деталей. И ещё пытается аргументировать это педагогически, а не содержанием образования (его интересует, сколько деток в школе добрались до этого самого bottom, в отличие от деток, которые стартовали с bottom и так и не добрались до top), что весьма резонно. У него эмпирические лонгитюдные исследования: в школах, где используются предметные (геометрия, физика, химия и т.д.) модели, больше учеников осваивают физику и математику на приличному уровне, меньше не справляющихся с программой. То есть работа с моделями aka тренинг вычислительного мышления на материале каких-то предметов по Osman Yaşar увеличивает педагогический успех этих предметов.

Во-первых, моделирование и работа с моделями всё-таки разные системные уровни, хотя они и тесно связаны. Что из них вычислительное мышление, что там входит в вычислительное мышление, а что нет? Что именно тренируется, если уйти от расплывчатых псевдофилософских и псевдопедагогических рассуждений -- целевой предмет, общие способности к моделированию? Мой тезис в том, что если есть какое-то мышление, то его нужно а) сначала натренировать явно (а не косвенно!), а потом б) просто использовать в самых разных контекстах. На то оно и мышление (использование в самых разных контекстах -- результат фундаментального образования), а не прикладная дисциплина, которая используется в одном контексте. Во-вторых, по аналогии с вычислительным мышлением Osman Yaşar тут протаскивает своё любимое детище computational pedagogy, которое означает просто использование вычислительных моделей в педагогическом процессе (https://peer.asee.org/computational-pedagogy-fostering-a-new-method-of-teaching.pdf). Тот же сержантский метод (тренинг с решением множества мелких задач), только с использованием DSL, на которых формулируются эти задачи и интерпретаторов с DSL. Это просто ребрендинг идей Алана Кея, Сеймура Пейперта и даже группы "Аттик" (Кушниренко, Лебедев, Леонов, и т.д. -- с подачи академика А.Ершова) с их Мирами (помним, что КуМир -- это был Комплект Учебных МИРов. Ровно та же идея, 1988-89 год разработки и без громкого лейбла computational pedagogy).

И дальше Кэп говорит, что люди из computer science, как умеющие программировать, должны прийти на помощь, и создать все эти учебные модели с визуализациями. Ну да, ну да. Эхо Алан Кея, Сеймура Пейперта и далее Ершова и группы "Аттик", но только без их упоминания. Ибо новое слово: вычислительная педагогика. Ну, с тех пор ещё и embedded DSL придумали, и среды моделирования с ними типа Jupyter (и использующий его CoLaboratory), чтобы моделирование было поинтереснее.

Но этот тезис уже выходит за рамки деления мышлений, выходит за рамки проведения границ в содержании образования и вроде как относится к форме -- тому, как строить учебный процесс. Но это не совсем так. По сути этот тезис проводит идею, близкую к идее EduOps: результаты исследований по той или иной дисциплине, чтобы они были доступны для использования, нужно оформлять в виде моделей. Единственное что, что эти модели берутся в идеологии и терминологии 80х. Например, раздельно упоминаются моделирование и имитационное моделирование -- modeling and simulations, а сейчас мы просто говорим, что у модели обязательно есть интерпретатор, и это либо человеческие мозги, либо мозги кремниевые, это буквально соответствует мысли Osman Yaşar про то, что не нужно делить когнитивные процессы на те, которые идут в компьютерных устройствах и в человечьих мозгах, а нужно думать об этом единообразно -- но одно дело сказать, другое дело последовательно воплощать в жизнь, отражая и в терминологии тоже. Хотя я тоже медленно к этому иду, мог бы быть более радикальным и последовательным: вот слайд 24 в моём рассказе о моделеориентированной системной инженерии пока отражает классическое говорение, но хотя бы добавляет коннективистские модели (там у меня компьютерное мультифизическое имитационное моделирование, компьютерное коннективистское моделирование и структурное моделирование-для-людей): https://ailev.livejournal.com/1433768.html.

Итого: нет ничего нового под луной, воздух пропитан одними и теми же мыслями. Музыка навевает всем одно и то же. Но мы структурируем эту полянку разных мышлений в контексте обучения мышлению немного по-другому, и поддерживаем эти мышления другим набором технологий (скажем, моделирование поддерживаем через DSL -- и проносим там линию текстовых DSL в рамках хост-языка, идущую ещё от Алана Кея и по факту реализованную сегодняшним exploratory programming в рамках сред deep learning моделирования. Вот такое и делаем для учебного процесса в рамках сержантского метода http://ailev.livejournal.com/1287293.html, если есть ресурсы. А ресурсы будут, если делать учебные модели будет тот же, кто делал state-of-the-art в его предметной области -- то есть идём через EduOps https://ailev.livejournal.com/1431056.html, где разработчики дисциплин принимают на себя ответственность за обучение этим дисциплинам, то есть думают о всём жизненном цикле добытого ими знания, а не действуют по классическому принципу "от нас ушло").

Вся цепочка "Фундаментальное образование", куда входит этот пост -- https://ailev.livejournal.com/1427073.html

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10213478273925305
Previous post Next post
Up