?

Log in

Лабораторный журнал
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Anatoly Levenchuk's LiveJournal:

[ << Previous 20 ]
Wednesday, July 27th, 2016
2:36 pm
Тренажёр "меты" в мышлении
Василий Сартаков сделал тренажёр "меты" для тренинга системности мышления -- https://play.google.com/store/apps/details?id=com.ksyslabs.Holon (описание мотивов к разработке тут: https://www.facebook.com/vasartakov/posts/10210107771587688).

Можно спорить, правда ли в тренажёре именно холоны (например, для меня холоны обязательно физичны -- а в тренажёре они вдруг объявляются "уровнями абстракции"), действительно ли там можно натренировать беглость в работе с уровнями системы (это предположение нужно проверять экспериментально), но для меня это, несомненно тренажёр работы с "мета" -- тренируется сам принцип работы с каким-то стеком мыслительных объектов, тренируется "мета". Это тренажёр для формального (в противовес материальному) образованию -- http://ailev.livejournal.com/1263511.html, это тренажёр на "налёт часов" примерно того типа, который я предлагал в http://ailev.livejournal.com/1278095.html

Так что я глубоко приветствую это начинание. Хотелось бы только, чтобы тамошняя онтология (и отчасти терминология) более точно соответствовали набору тренируемых мышлем из http://ailev.livejournal.com/1278600.html (а поскольку тренажёр на английском, то у нас есть и вариант этого рассказа про системы и на английском, это продукт Русского отделения INCOSE: http://arxiv.org/abs/1502.00121).

В любом случае, качайте, тренируйтесь, и дайте мне и Василию знать о ваших впечатлениях -- что вам удалось на этом тренажёре натренировать!
12:59 am
Штудии по Студиям
Пост про Студии за двое суток породил обсуждение о 105 пространных комментах про редакторы, IDE, REPL, AI и их взаимоотношения в условиях неизбежного в условиях множества языков и viewpoints столпотворения (от слов "столп" и "творение", то бишь строительства Башни в Вавилоне, а не от слова "толпа") -- http://ailev.livejournal.com/1280626.html. Это в ЖЖ. В фейсбуке, ВКонтакте и фрифиде, вестимо, тишина.

Конечно, таких проектов в мире много, все они опираются на разные принципы, но крутятся вокруг одного и того же. Вот, например, 21 июля 2016 после практически годичного перерыва появился пост с progress report работ Chris Granger на Eve, где можно углядеть следы многих (но не всех) тем моего поста и последовавшего обсуждения: http://www.chris-granger.com/. Как минимум, он говорит не про IDE, а про UI -- точно так же, как и я пытаясь избежать всей этой уводящей в сторону дискуссии про IDE, редактор и REPL, и имея в голове конечных пользвателей бухгалтера и исследователя рака. Системную терминологию он использует, но программистскую больше. У него не бэкенд, а прикладная платформа. А у меня заранее понятно, что бэкендов может приключиться много, равно как и фронтэндов -- и в этом главная проблема, интеграционная задача у меня на переднем плане, а у Криса её почти и нет, у него акцент не на programming-in-the-large, а на programming-in-the-small (как и в LightTable).

В любом случае на несколько дней придётся прерваться с этим systems framework и studios для создания мегамоделеров: завтра у меня будет день NLU для инженерных текстов, а потом подготовка к тренингу в воскресенье (пятый тренинг из шести, тема там инженерия предприятия и ArchiMate -- нужно чуток обновить материал в связи с выходом ArchiMate 3.0 со стратегией и физикой, http://ailev.livejournal.com/988360.html).

Заодно вытащил мой пост 2009 года про оргмоделирование -- http://ailev.livejournal.com/701018.html, http://ailev.livejournal.com/675572.html. Немного ж с тех пор изменилось, кроме резкой популярности Архимейта и закрытия им самых зияющих брешей в оргмоделировании-для-людей. А в мире оргмоделирования-для-компьютера идея с generative design/programming (мечты об этом были в http://ailev.livejournal.com/542835.html) таки провалилась -- развитие языков программирования с хорошими IDE, а также веб-архитектур по линии развития SOA дали прирост в производительности программирования. Моделирование, даже в варианте внешних DSL не сработало. А внутренние DSL -- это то же программирование, моделирование в нём не нужно выделять, и моделеры в нём это те же IDE.

Графические же языки и модели (увы, включая и Архимейт) имеют предел в сложности моделирования. Вот только сегодня Максим Осовский дал большой пост про презентацию доклада Леонтия Бызова "Об организации института графического языка" (https://www.facebook.com/osovskiy/posts/10208256458067271), так я ему там в очередной раз написал:
картинки хороши для промывания мозгов, демонстраций, обсуждений крохотных моментов в жизни системы. А для серьёзной работы нужны текстовые представления, графические языки отваливаются. В серьёзных же системах работы с текстами мало кто разбирается, они не попсовы, но именно на них опирается сейчас цивилизация, и это не случайно. А графика, инфографика и прочие языки плаката -- они так и остались, как интерфейс к широкой публике, средства популяризации, искусство и прочая полусерьёзная вещь. Полусерьёзная -- потому как политика и силовики, большие бабки и прочая важная механика идут на лубках и красивых картинках. Это серьёзно, да. Но для работы -- для работы свыше какого-то предела сложности начинаются тексты.
Тем не менее, архитектура предприятия -- это прежде всего социальная работа, её ведут не программисты, а инженеры, а архитектурные диаграммы имеют прежде всего коммуникативную для людей функцию. Визуальные viewpoints поэтому в мегамоделерах нужно поддерживать, а на курсах по системному менеджменту рассказывать про Архимейт. Но в любой ситуации, где моделировать нужно поподробней и модели получаются детальней и больше -- текст, только текст и рядом какие-то деревья для его организации и навигации в этом тексте. Впрочем, для навигации не столько деревья, сколько всё более и более интеллектуальный полнотекстовый поиск. И вообще, развитие тут пойдёт по линии интеллектуальности: генерация кода может прорваться не по линии компилирования вручную составленных моделей на каких-то DSL, а по линии "добавления мультур к культур" -- intelliscence, language intelligence, использования интеллектуальных дополнений для моделей, это ведь всё та же генерация речи/текста/кода по намерению: http://ailev.livejournal.com/1269236.html. В принципе, для оргмоделеров и прочих концептуальных моделеров это всё может быть не менее актуально -- особенно, если придумать, как создать такие интеллектуальные системы. Увы, в этой части пока не всё хорошо, прогресс хоть и есть, но не такой стремительный, чтобы можно было что-то взять, подрихтовать под себя и потом радостно пользоваться.

Но это я опять про инструментарий для определения системы, из чего состоит мегамодель системы, зачем включать интеллект-студию, это я пошёл на второй круг Штудии по Студиям. Стоп, уже час ночи. Почитаю-ка я лучше книжку https://bookmate.com/books/d9zsVi7S
Tuesday, July 26th, 2016
2:42 am
lytdybr
Число известных мне составителей заданий для тренажёра системного мышления на прямо сейчас -- аж шестеро. Например, напроситесь во френды к https://www.facebook.com/alex.turkhanov, он публикует свои задачи в режиме "только для френдов". А аспиранты, помогающие мне вести занятия, свои задачки пока нигде не публикуют. Я не боюсь публикации задач, я боюсь публикации ответов. Ибо студенты, как известно, не хотят тренироваться, а хотят копипейстить из интернетов. Впрочем, они и копипейстить обычно не хотят. В коммерческих группах ситуация совсем другая, там интересуются практически все. Но хватит ли интереса работать с тренажёром -- это мы осенью посмотрим. Пока же ежедневно один-два человека признаются мне, что Демидовича прорешали полностью, все 4тыс. его задач. Но один признался, что перерешал полностью не Демидовича, а Сканави. Он не на физика учился, а на инженера. Ему можно.

Отрок сегодняшний день посвятил пониманию свойств ортоцентра и решению на этот счёт разных задачек. Мы такого в школе не проходили, а вот современные школьники в восьмом классе проходят. Сначала догадайтесь, из какого это предмета. А какие свойства ортоцентра вы знаете? А если без Гугля и Яндекса?

Пару дней назад он вернулся из путешествия к родственникам жены в деревню под Вязьмой (смоленская область). За пару суток получил впечатлений больше, чем от пары недель подмосковной лагерной жизни. Посмотрел фотографии. Под Вязьмой хорошо: где были дороги, там теперь обильно травка зеленеет. Где были деревеньки, там теперь едва хуторки. Где была плохая экология, всё наладилось, то есть успешно одичало. Гринписовцы в округе Вязьмы могут спать спокойно, жизнь оттуда ушла (хотя по их мнению -- как раз пришла).
Monday, July 25th, 2016
11:32 pm
Разбор заданий тренажёра системного мышления
Публикация лишь примера заданий оказалась недостаточной, чтобы работа по составлению задач пошла массово. Так что я дам тут разбор этих задач с комментариями. Повторюсь: если не читать учебник (http://techinvestlab.ru/systems_engineering_thinking/) или не проходить очно какого-то курса системного мышления, то ничего не будет понятно -- ни в задачах, ни в разъяснении. Итак (задачи из http://ailev.livejournal.com/1279331.html):

1. Какие из нижеперечисленного списка объекты не являются системами? Укажите уточнения, при которых могли бы быть и другие варианты ответа.
а) Маша -- да, этот вариант для прямого тренинга отождествления обычного упоминания системы с воплощением системы.

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

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

г) еда Маши -- да, уточнение чья именно еда не влияет на суть дела. Еда физична.

д) поедание Машей её еды -- да, это процесс и Маша и еда в нём участвуют.

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

ж) фильм едящей Маши -- те же ответы, что в предыдущем пункте. Тренируется, что объекты могут быть 4D, описания могут учитывать и развёртку во времени.

з) приложение выбора еды в телефоне Маши -- нет, это только описание системы. Да, если речь идёт о моменте, когда приложение работает и Маша выбирает еду. В этом пункте тренируется случай с софтом (стр. 118-119).

и) свидетельство о рождении Маши -- нет, это описание Маши

к) система диеты, которой пользуется Маша -- нет, это описание каких-то процессов, которые идут с Машей

л) доброта Маши -- нет, это свойство Маши. Да, если перефразировать это в "добрую Машу" как полную темпоральную часть Маши, которая осуществляет акты доброты (то есть в момент причинения миру непоправимой доброты).

н) классификатор Маш по уровню их доброты -- нет, даже если классификатор называется "пятиуровневая система доброты Маш"

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

п) профессиональный стандарт инженера по требованиям -- нет, стандарт это описание системы-функционального объекта, а не сам функциональный объект

Эта задача тренирует понимание разницы между альфами определения и воплощения системы (стр. 117-119 учебника), в том числе особые случаи представления процессов и софта в момент исполнения как физических объектов в 4D.

2. Опишите эти процессы как системы:
а) Петя пилит сук, на котором сидит -- в системе как физическом объекте участвуют Петя, пила, сук (стр.66).

б) каскадёр пилит сук, на котором сидит -- то же, что в предыдущем пункте, только вместо Пети стейкхолдер каскадёр
(физический, хотя и функциональный объект -- стр.64), пила, сук.

в) садовый рабочий пилит сук, на котором сидит -- то же, что и предыдущий пункт, только вместо стейкхолдера каскадёра стейкхолдер садовый рабочий

г) написание стихотворения Машей -- в системе-процессе участвуют Маша и инструменты для письма (само стихотворение игнорируем)

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

е) фотографирование пейзажа Колей -- в системе-процессе участвует Коля, фотоаппарат, пейзаж

ж) фотографирование пейзажа туристом -- то же, что предыдущий, только вместо Коли стейкхолдер турист (физический, хотя и функциональный объект -- стр.64).

з) фотографирование пейзажа фотографом -- то же, что и предыдущий, только вместо туриста стейкхолдер фотограф

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

к) подготовка Оли к экзамену -- в системе-процессе участвует Оля

л) подготовка студента к экзамену -- в системе-процессе участвует стейкхолдер студент (физический)

м) подготовка преподавателя к экзамену -- в системе процессе участвует стейкхолдер

Тут тренируется ход на представление процесса 4D физическим объектом из участвующих/взаимодействующих в процессе отдельных объектов (стр.66), плюс понимание, что стейкхолдер -- функциональный физический объект (стр.64).

3. Выберите лучшее описание танца как системы, объясните выбор:
а) Листок с расписанной последовательностью танцевальных движений, сочинённый Олей. Именно по этому листку Маша и Оля потом выучили танец. -- нет, и это самая распространённая ошибка. Этот листок не танец-система, описание танца.

б) процесс танца, производящий изменения в зрителях при его прохождении -- хорошо, ибо процесс легко представить как систему (на стр.66 как раз и приводится пример именно с танцем!).

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

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

д) видео эталонного исполнения танца на флешке -- это не система, это описание системы-танца

е) изменения положений рук, ног, тел Маши и Оли -- да, система-процесс изменения положений с участвующими в нём руками, ногами и телами Маши и Оли, но это менее полное перечисление, чем в пункте г)

Тут тренируется различие альф определения и воплощения системы (117-119) для случая системы-процесса. Более того, пример с танцем разобран в учебнике на стр.66, так что это просто перенос задания из учебника в тренажёр, с лёгкими модификациями.

В принципе, некоторые пункты из этих заданий не так уж и тривиальны. Может быть, их нужно будет из тренажёра выкинуть и поставить множество более простых и более тривиальных задач.

Тут нужно ещё понимать, что это задачи "на определения", они не прикладные. Нужны ещё и прикладные задачи, позволяющие тренировать типовые ошибки. Типа "Маша поручила Пете разработать чертеж пятимоторного дрона. "Что ты разрабатываешь?" -- спросила Петю Оля. Петя ответил, что его целевая на ближайшие три дня -- чертёж дрона. В чём неправ Петя? Какие есть риски в такой неправоте?". Тут путается целевая система "дрон" и её описание -- "чертёж дрона". Целевая система Пети -- сам дрон, его воплощение, физический объект. И если Петя не настроен на это как цель, то чертёж дрона будет, но выполненный по этому чертежу дрон может не полететь -- и Петя не будет считать себя за это ответственным, в голове у него не будет этого момента жизненного цикла дрона, когда он эксплуатируется, ибо для него сам дрон не цель, не system of interest.

Все эти (и многие другие) различения важно иметь хоть как-то натренированными, когда разбираешься с ситуациями типа "проектов по созданию технологий" -- http://ailev.livejournal.com/1275676.html. Там я говорил:
"технология" -- это удобное всёнакрывающее слово, которым можно обозначать и целевую систему, и использующую, и обеспечивающую в их воплощениях, а также описания всех них и любые сочетания всего названного, по потребности. Весь мир состоит из проектов, технологий и систем, эти три слова можно добавлять как квалификаторы к чему угодно! Вот настоящие всеохватные слова для bullshit-bingo! Более общее и ничего не означающее слово тут будет только "объект", но это слово не добавляет очков говорящему. Его и не говорят. "Проект гвоздя", "система гвоздя" и "технология гвоздя" говорят, это по-умному звучит и намекает на то, что вокруг гвоздя что-то ещё есть, кроме самого гвоздя. А вот "объект гвоздь" ничего больше не намекает, мудрости не добавляет, вот это слово в bullshit-bingo и не попадает.
Вот и нужно тренировать восприятие, чтобы студенты в подобных текстах "о технологиях" могли заподозрить что-то неладное и задать уточняющие вопросы. Ну, и чтобы подобные тексты сами писали с осторожностью (только если намеренно хотят напустить туману). Это самое элементарное использование тренажёра: хотя бы научиться узнавать в текстах и далее в реальном мире предметы из учебника, чтобы затем формулировать к текстам и миру уточняющие вопросы.
Sunday, July 24th, 2016
9:49 pm
Студии разные нужны, студии разные важны
Студия (от итальянского studio) -- это помещение для занятия каким-то искусством, оборудованное соответствующим образом (аудиостудия аппаратурой звукозаписи, художественная студия -- мольбертами и палитрами). Ещё студией называют комнату, в которой жилое помещение и кухня объединены в одну комнату. Давайте обсудим виртуальные студии, которые нам нужны, чтобы делать различные прикладные информационные системы -- они предполагают как специальные viewpoints для своих "искусств", так и объединение "кухни" по разработке с "жильём" -- использованием уже разработанного, т.е. exploratory programming/modeling/designing/querying.



Сегодня всевозможные Studio -- это некоторое обобщение IDE (interactive development environmet) на описания (veiw), не сводящиеся к программному коду. Так, Visual Studio Code https://code.visualstudio.com кроме языков программирования позволяет редактировать и "запускать в дело" (отлаживать) всевозможные текстовые данные (начиная с форматов CSS и XML), а Azure ML Studio https://studio.azureml.net даёт возможность интерактивной работы над числовыми данными. Если данные главным образом числовые и не стоит прямой задачи разработки приложений, а только анализа данных, то эти Studio не менее часто называют Lab (laboratory), например MoBILAB https://sccn.ucsd.edu/wiki/MoBILAB для обработки данных mobile brain/body imaging (MoBI).

Конечно, начав с анализа, неизбежно оказываешься в синтезе программ моделирования: анализ данных это разработка (development) разнообразных моделей -- любая Lab растёт в сторону Studio. И наоборот, когда ты разрабатываешь какую-то модель (алгоритмическую или любою иную), то тебе отчаянно нужны средства exploratory modeling/programming/querying, прежде всего REPL.

А ещё как для данных, так и для создающихся моделей нужно управление конфигурацией.

Вы уже догадались: на следующем шаге вам мало будет одного viewpoint и захочется их иметь десяток, мало будет одного окна и захочется иметь их множество, к этим viewpoints захочется добавить intellisence, потом потребуется привлечь к работе сотрудников на другом конце планеты -- разработчики Studio и Labs сталкиваются с примерно одинаковыми concerns, и поэтому их продукты проходят более-менее похожие пути развития.

Вот, например, Azure ML Studio. Начиналась она с поддержки viewpoint визуальных dataflow сценариев работы со скриптами (главным образом в R и Python). Но там не было REPL, плюс визуальные языки оказываются хорошо демонстрируемыми и продаваемыми, но не такими уж хорошими в работе. Классический тут пример -- дегустация с одного глотка напитков, при которых побеждают сладкие напитки, но если пить нужно бутылку -- побеждают менее сладкие, об этом красиво рассказывал Малкольм Гладуэлл в книге "Озарение", http://www.marketing.spb.ru/lib-around/socio/momentary_opinion.htm. Так и тут: графические языки хороши на демонстрациях и в коротеньких работах, но при серьёзной долгой работе уже не обойтись без текстовых представлений быстро распухающих сценариев с быстро растущим числом параметров в их шагах. Нуже полноценный язык программирования, плюс REPL. И множество view, конечно. Чтобы получить это всё, в состав Azure ML Studio включили многоязыковую студию с multi-view и REPL, а именно -- включили Jupyter Notebook (https://blogs.technet.microsoft.com/machinelearning/2015/07/24/introducing-jupyter-notebooks-in-azure-ml-studio/) с классическим обоснованием exploratory programming/modeling: Jupyter Notebooks provide a delightful interface for quickly running code, visualizing data, exploring insights, and trying out ideas. Так сказать delightful interface от Jupyter внутри delightful interface для того же самого от Azure ML Studio. Бутылочку несладкого текста, которую можно пить внутри бутылочки сладкого визуального первого глоточка: visual dataflow выигрывает на демонстрациях и суперпростых задачах, но потом аппетит вырастет, и вы всё равно перейдёте к традиционным вычислительным экспериментам с текстами code snippets и графиками результатов в Notebook.

Посмотрите roadmap в конце поста про включение Jupyter Notebook в Azure ML Studio по приведённой ссылке: скоро ожидается больше intellisence, PowerShell integration, Git integration, средства публикации разработанных в Notebook моделей. А контейнеризация, масштабируемость по подтягиванию ресурсов из облака у них уже есть "из коробки", это ж Azure!

Все заявленные в roadmap свойства, как и многие другие, неспецифичны именно для Azure ML Studio + Jupyter Notebook. Любая IDE работы с каким-то одним языком дрейфует в сторону относительно похоже выглядящих многооконных и многоязыковых Studio и Lab, всем им хочется иметь одни и те же фичи, независимо от предмета разработки. Это не случайно, эту похожесть в фичах "идеальных" Studio и Lab, получающихся в ходе многолетних разработок и выполнения длинных список фич в их таких разных, но таких одинаковых roadmaps, можно предсказать заранее, без понимания специфики приложений этих систем.

Для этого можно вспомнить о системной информатике и обсуждении возможных архитектур программных средств для построения сложных систем: новинки архитектуры systems framework http://ailev.livejournal.com/1277009.html, доступность в нём "нейро" и машинного интеллекта http://ailev.livejournal.com/1275143.html, http://ailev.livejournal.com/1273208.html, и это всё на базе формулирования практики "системная информатика" -- http://ailev.livejournal.com/1274210.html, http://ailev.livejournal.com/1272169.html.

Да, системная информатика -- это более-менее давно известная (хотя и менее популярная, чем computer science и software engineering) дисциплина "информационные системы" (IS, только тут в более общем варианте, чем MIS, management information systems), только "с системным подходом в голове", как и системная инженерия -- это любая инженерия с системным подходом в голове.

Тем самым о многих и многих потребностях информационной работы по моделированию/изучению/проектированию какой-то целевой системы (даные о которых обрабатывают в ML Studio, создавая там программы машинного обучения), или нейросистемы (данные о которых обрабатывают в Lab, создавая там программы обработки сигналов) или учебной системы (создавая там задания и проверочные тесты для этих заданий) можно по большому счёту сказать заранее. И хорошо бы сделать код, поддерживающий эти потребности, одним и тем же для всех этих случаев. Это как операционная система на новом витке: ей пользуются (в её среде, ибо это framework) работают все приложения, будь это приложения для разработки machine learning алгоритмов, приложений обработки нейроданных или работы с учебными мирами в тренажёрах.

Нельзя сказать заранее только про конкретные способы обработки, конкретные методы описания целевой системы (viewpoints), используемые в них представления/языки данных и программ обработки этих данных. Операционная система тем и хороша, что в ней возможны самые разные приложения. А если позволять приложениям работать на "голом железе", то через некоторое время и много версий спустя выяснится, что в этих приложениях появляется как "криво написанный и неэффективный интепретатор Common Lisp", так и "криво написанная и неэффективная операционная система". А я добавлю: точно так же появляется и криво написанный и неэффективный systems framework, поддерживающий работу с мультимодельным описанием системы и контролем конфигурации. Инструментарий для мегамоделирования (разработки и интеграции множества методов описания/viewpoints и далее редактирования множества частных описаний/views). Это я уже подробно прописывал, смотрите материалы по ссылкам в абзаце чуть выше.

Так что я бы приветствовал разработку специального инструментария, systems framework (http://ailev.livejournal.com/1277009.html) который "из коробки" обеспечивает необходимые свойства разрабатываемых на его основе прикладных студий.

А теперь, насмотревшись на сегодняшние разной степени осознанности подходы к организации systems framework, попробуем в полной осознанности и с выраженным чувством мечты наступить на сороколетней давности грабли "эффекта второй системы" (http://webkomora.com.ua/ru/articles/web/management/man-month/5.html, когда после первой удачной версии с минимумом фич и элегантной архитектурой во вторую версию втыкают одновременно все возможные фичи и архитектура безнадёжно деградирует, равно как требуемые для разработки ресурсы).

"Пустой" systems framework не умеет ничего, как и любой framework. Он будет мигать окошками, не более. Напомню, что framework -- это как кассетница, куда нужно вставлять какие-то plug-ins (обеспечивающие различные viewpoints) и add-ons (обеспечивающие рост базовой функциональности). Но в любом случае, для начала работы потребуется программировать эти плагины и аддоны, для чего нужно будет создать на базе пока ещё пустого system framework
-- мультиязыковую IDE: для разработки исполняемого программного кода плагингов и аддонов и редактирования их структурированных данных. Та же Visual Studio Code или Eclipse Che тут хорошие примеры.

Для нормальной работы различных IDE требуется довольно много интеллекта, а хоть и для intellisence. Если мы хотим пойти по пути расширенных подсказок (http://ailev.livejournal.com/1269236.html -- автоматизации добавления мультур к культур), то нам потребуется полноценная система создания интеллектуальных приложений на базе машинного обучения, т.е.
-- интеллект-студия: для разработки интеллектуальных систем машинного обучения, которая должна закрывать уровни интеллект-стека (http://ailev.livejournal.com/1210678.html -- 1. Прикладной уровень, 2. Когнитивная архитектура, 3. Обучающиеся алгоритмы, 4. Вычислительные библиотеки, 5. Вычислительные языки программирования, 6. Аппаратное ускорение вычислений). Все эти уровни требуют различных viewpoints на создаваемую интеллект-систему, так что смело можно считать, что требуется поддержать несколько подстудий (уровней 2-5, ибо уровень 1 это уже уровень целевой задачи, а на уровнях 5-6 мало кто работает из прикладных разработчиков, там всё давно "коммодитизировано"):

2) собственно intellect studio: разработка когнитивной архитектуры. Тех же нейронных сетей обычно требуется множество разных, плюс нужны средства построения из них ансамблей и самых разных дополнительных обработок, в том числе с алгоритмами других школ машинного обучения, а также зачастую довольно хитрыми структурами обучения с подкреплением, использования внешней памяти и т.д.. Сегодня этот уровень ничем не поддерживается, кроме обычных IDE языка программирования и Notebooks для объединения в рамках одного multiview сниппетов кода с вызовами алгоритмов машинного обучения и графиков с результатами их отработки. Разобраться с этим уровнем и поддержать его специализированными viewpoints для описания когнитивных архитектур (вроде как язык описания структуры мозга из отделов мозга и связей между ними) -- это отдельная задача. Это сейчас направление главного удара. Уже упоминавшаяся Microsoft Azure ML Studio явно целится в эту точку со своим dataflow редактором сценария экспериментов над данными, но там явно ещё есть куда улучшаться -- для обкатки интеллекта тоже нужно использовать exploratory modelling/programming, и нужно иметь языковую консоль и REPL (а не только красивую визуализацию dataflow). Буквально три года назад архитектуры тех же нейронных сетей, как и задачи вероятностного программирования поддерживались непосредственно языком программирования и IDE с Notebook, а не специальными DSL (viewpoints) описания dataflow архитектур нейронной сети и вероятностными языками с их компиляторами -- а сегодня специализированные редакторы архитектур нейронной сети есть почти в каждом deep learning фреймворке, да и вероятностных языков программирования уже несколько. Но по большей части на этом уровне предлагаются не столько studio, сколько просто наборы отдельных API (ср. IBM Watson с http://www.ibm.com/cloud-computing/bluemix/watson/ и Cortana Intelligence Suite https://www.microsoft.com/en-us/cloud-platform/cortana-intelligence-suite, да и все эти deep learning frameworks предоставляют главным образом API, но не среду разработки сложных когнитивных архитектур). Нужно заметить, в intellect-studio вполне возможно задействование не только алгоримов машинного обучения, но и каких-то других алгоримов "ручной разработки" -- например, классических экспертных систем. Но предполагается, что в intellect-studio разрабатываются именно алгоритмы, а не прикладные системы. Прикладные системы и их интерфейсы идут уровнем выше. Например, умный алгоритм для интеллектуального чата или intellisence разрабатывается в intellect-studio, но информационная система колл-центра или учебного тренажёра, где будет задействованы эти intellisence или чат разрабатывается обычным образом, как прикладная система (то есть в моём варианте -- как приложение на базе systems framework).

3) neural network studio и probabilistic programming studio: разработка алгоритмов машинного обучения -- тут прежде всего dataflow диаграммы нейронных сетей (чаще всего приводят в пример TensorFlow), а также коды алгоритмов на вероятностных языках программирования. Такие архитектуры обычно нужно уточнять для каждого класса целевых задач, библиотеки тут редки (хотя и тут бывают. Например, AlexNet пример такой "именованной" структуры сети, которая может использоваться as is, в том числе и в обученном уже варианте, а не разрабатываться и тренироваться на этом уровне). Все текущие "редакторы-визуализаторы нейронных сетей" в сегодняшних фреймворках deep learning поддерживают именно этот уровень -- большинство картинок "архитектуры нейронной сети" и "полностью дифференцируемых архитектур" ровно отсюда, и эта работа выполняется в подобных редакторах.

4) numeric studio: разработка вычислительных библиотек (все эти Torch, Theano и т.д. начинались с библиотеки эффективно реализованных матричных операций, а алгоритмы типа backpropagation просто продолжили эти библиотеки. Опять же, вычислительные алгоритмы нужно разрабатывать и для вероятностных языков программирования (http://ailev.livejournal.com/1211950.html -- недаром говорят, что для байесовского обучения вероятностные языки программирования могут стать тем же, чем стало backpropagation для нейронных сетей) и много чего другого "численно-библиотечного", а хоть и разработка средств Autodiff для работы на более высоком уровне fully differentiable architecture. Тут уже не столько разработка "обучения", сколько разработка вычислительных строительных блоков для него. Именно на этом уровне имеет значение "проблема двух языков" (когда на скриптовом языке прототипируют алгоритм, а потом на Си реализуют быструю версию алгоритма), т.е. наиболее эффективно использовать Julia (http://julialang.org/) именно на этом уровне. Сейчас в качестве numeric studio повсеместно используют Notebook (обычно Jupyter notebook), за редкими исключениями. Вот и Azure ML Studio как intellect-studio добавили возможность экспортировать/импортировать данные через CSV для последующей их численной обработки на более низком уровне детальности, но с использованием REPL и полноценных языков программирования (а не визуального языка "когнитивного dataflow").

Когнитивные архитектуры, разработанные при помощи intellect studio и помогающих ей neural netwrok studio, probabilistic programming studio, numeric studio, вполне могут быть использованы в самых разных других прикладных системах, например при создании:
-- Neuro studio, которая помогает создать систему обработки данных о состоянии человека. Аппаратура и софт из http://www.gtec.at/Products/Hardware-and-Accessories/g.MOBIlab-Specs-Features и https://sccn.ucsd.edu/wiki/MoBILAB как раз позволяют ровно это. Но в нашем случае ситуация будет получше: мы будем использовать для создания neuro studio ровно тот же systems framework, в котором в плагинах уже доступны и numeric studio (для алгоритмов обработки сигналов) и даже полная intellect-studio. Тем самым не удивлюсь, если выяснится, что Neuro studio окажется лишь какой-то небольшой прикладной модификацией-настройкой intellect studio для работы с биоданными. Я склонен включать neuro studio в базовый комплект плагинов к systems framework, ибо в конечном итоге с информационными системами в большинстве случаев работают исполнители ролей стейкхолдеров из плоти и крови, и интересно было бы учитывать не только приходящую с клавиатуры информацию, но и разную другую (направление взгляда, cognitive load, утомляемость и отвлечения т.д. -- это могло бы помочь дать лучше UX для работы с итоговой прикладной системой).

-- trainer studio: разработка учебных тренажёров, студия для методистов учебных систем, описанных в тексте "мимо школы" (http://ailev.livejournal.com/1280262.html). Тренажёр изначально должен поддерживать несколько разных viewpoints -- позволять редактировать задания (вопросы и ответы, например, условие задачи и тестовые примеры при изучении алгоритмики), но также он должен уметь адаптивно строить образовательный маршрут, учитывая как уже пройденный и планирующийся к прохождению материал, так и успешность решения задач, и кроме того ещё и состояние обучающегося. Для это возможно задействование интеллект-алгоритмов (но у нас для этого уже есть intellect-studio), а также алгоритмов обработки биосигналов (но у нас для этого уже есть neuro studio). Тем самым каждый методист сможет при помощи trainer studio создать и отладить тренажёр для какого-то предмета, плюс дополнительно можно будет разрабатывать варианты комбинирования заданий из разных тренажёров с использованием как адаптационного обучения на базе алгоритмов машинного обучения/машинного интеллекта, так и состояния учащихся. Вообще, весь предлагаемый студий как плагинов и аддонов к systems framewrok -- это "скрипка Энгельбарта" (http://ailev.livejournal.com/1158826.html), на которой очень мало кто захочет учиться играть, ведь отнюдь не все горят желанием тратить своё время на овладение теорией музыки и искусством игры на инструментах, чтобы получать потом удовольствие от музицирования. К разработке сложных информационных систем это всё относится в такой же полной мере. Такая разработка требует беглости владения инструментом (в данном случае systems framework и его "студиями"), и нужно попотеть, чтобы добиться беглости (fluency, http://ailev.livejournal.com/1278095.html) в игре на таком сложном (не менее сложном, чем скрипка: учиться на нём играть может потребоваться тоже несколько лет) инструменте. Нужно играть гаммы и этюды, для этого нужно иметь тренажёр (см. темы про тренажёр в http://ailev.livejournal.com/1280262.html). Эти тренажёры тоже было бы неплохо поставлять "из коробки". Так что замкнутый круг: для разработки тренажёров нужно создать студию, разработать тренажёры и включить тренажёр в комплект поставки. Так что результатом заодно будет и набор тренажёров для конкретных учебных предметов, поддерживающих дисциплины system thinking, software engineering и information systems, numerical computing, deep learning и т.д. -- все те, технологии которых будут поддержаны обсуждающимися "студиями".

-- systems engineering studio: мегамоделер для MBSE (можно думать как о поддержке viewpoints для SysMoLan -- http://ailev.livejournal.com/1169972.html, ArchiMate 3.0, Modelica и прочих инженерных viewpoints/языков -- включая, возможно, разные эксперименты типа Mojulica http://ailev.livejournal.com/1168256.html, пункт 3 в http://ailev.livejournal.com/1218155.html, пункт 3 в http://ailev.livejournal.com/1271980.html). Я уж столько об этом писал, что не буду много повторяться. Ну, а другие желающие могут добавить OPM, SysML, AADL и всякое разное остальное.

-- conceptual studio: разработка концептуальной модели традиционно выходит за рамки MBSE, подробнее об этом я писал в "Коллективное моделеориентированное концептуальное проектирование и нейро-технологии" -- http://ailev.livejournal.com/1229950.html, и можно перечитать этот длинный текст по ссылке, переводя там написанное в приглашение к реализации на описанном в настоящем тексте наборе инструментальных средств на базе systems framework, включая интеллект-студию и нейро-студию.

Про PLM/issue tracker и организацию бэкенда к этому набору студий я писать не буду, но всё равно в связи с последними "студиями" есть интересный поворот: они уже не все "однопользовательские", не все их view предполагаются к работе в режиме АРМ (автоматизированное рабочее место). Некоторые требуют более-менее синхронной работы команды:
-- нейростудия подразумевает экспериментатора и человека, чьё состояние мониторится и, возможно, изменяется. Иначе не отладиться!
-- студия тренажёра требует работы методиста предмета и/или методиста по всем предметам (если образовательная траектория имеется ввиду общая) и ученика. Иначе тоже не отладиться.
-- студия системной инженерии сразу подразумевает командную работу.
-- студия концептуального моделирования тоже подразумевает работу команды.

Так что нужно будет поддержать и многопользовательский режим работы, в том числе и поддержку командного режима работы. Это поразумевает не только разработку "индивидуальных" компонент в составе итоговой системы, но и "групповых" -- примерно по тем линиям, что обсуждались на примере коллективного моделеориентированного концептуального проектирования и нейро-технологий http://ailev.livejournal.com/1229950.html. Но там (это давний текст ноября 2015 года) приведены отнюдь не все необходимые применения, возможные с нынешним планируемым набором студий. И даже мартовский 2016 текст про примеры для проекта создания виртуального фасилитатора сотрудничества http://ailev.livejournal.com/1256648.html не позволяет представить всех возможных функций. Так, можно думать об не только о поддержке группы в её работе по концептуальному проектированию, но и обучению её такому проектированию (включая обучение позиции фасилитатора) -- в том числе и обучению на специальном групповом тренажёре. А учитывая, что можно также разрабатывать тренажёры системного мышления и тренажёры для студии системной инженерии, то можно говорить о поддержке подобной системой инженерного образования.

Ну, и дальше можно думать ещё и многопользовательском варианте публичного образовательного сервиса, как это описано в тексте "мимо школы" -- http://ailev.livejournal.com/1280262.html, создание не только "методического портала", где разные методисты создают самые разные тренажёры для самых разных курсов, но и "чебного портала", где этими курсами могут воспользоваться ученики. Это добавит множество различные viewpoints и поддержку view для администраторов портала, идентификацию и аутентификацию для учеников, добавка к systems framework систем идентификации и аутентификации и т.д.

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

Мне кажется, что даже если ничего не делать, существующий инструментарий системного программирования будет приближаться и приближаться год за годом к описанному тут виду. Вопрос, не поставить ли этому неспешливому эволюционному процессу своё плечо. Ибо, как говаривал Алан Кей, лучший способ предсказать будущее -- это создать его.
Saturday, July 23rd, 2016
4:00 pm
Мимо школы
За последний месяц я провёл у себя некий обзор идей в части образовательных проектов (вот как-то рубрицированные ссылки на мои посты последнего месяца, с 23 июня по 23 июля 2016):
-- верхний уровень "педагогики" в целом по итогам серии четырёх круглых столов в МПГУ (ходы на безлюдную педагогику, развёртку содержания образования во времени, сшивки в педагогике всех остальных потребных для неё дисциплин типа психологии-нейролингвистики-философии и т.д., обучению педагогике себя и других как педагогика-1 и обучение всему остальному как педагогика-2, потребность поместить человека в группу -- семью, команду, нацию, человечество, разные теории по отношению к педагогике типа "лесничество-садовничество-инженерия" и "деятель-наблюдатель-предатель"): http://ailev.livejournal.com/1279588.html, подробности по ссылкам в первом абзаце. Все эти ходы отражают concerns самых разных стейкхолдеров, дают чеклист "интегральности" aka системности для потенциальных проектов. Это клиентская зона интересов: альфы "возможностей" и "стейкхолдеров".
-- построение образовательного предмета на базе дисциплины с выделением мыслем против псевдопредметного "образовательного салата" без опоры на дисциплину (на примере робототехники как потенциальной замаскированной системной инженерии -- http://ailev.livejournal.com/1278294.html, http://ailev.livejournal.com/1280086.html и там много по ссылкам, computer science против олимпиадной алгоритмики -- http://ailev.livejournal.com/1275421.html, http://ailev.livejournal.com/1274596.html, системного мышления -- http://ailev.livejournal.com/1278600.html):
-- идеи "сержантского метода" как эффективной ступеньки к "беглости мышления" в образовании (на примере тренажёра системного мышления -- http://ailev.livejournal.com/1278095.html, http://ailev.livejournal.com/1278936.html, http://ailev.livejournal.com/1279331.html).
-- эскиз образовательного проекта-2 http://ailev.livejournal.com/1277589.html как апдейт к эскизу-1 http://ailev.livejournal.com/961237.html, а также про системную сложность в его обсуждении: http://ailev.livejournal.com/1277840.html
-- обсуждение возможных архитектур программных средств для построения сложных систем (это уже архитектурный ход на возможную технологическую инфраструктуру, ибо "возможности" зависят в том числе и от понимания перспективных технологий): новинки архитектуры systems framework http://ailev.livejournal.com/1277009.html, доступность в нём "нейро" и машинного интеллекта http://ailev.livejournal.com/1275143.html, http://ailev.livejournal.com/1273208.html), и это всё на базе формулирования практики "системная информатика" -- http://ailev.livejournal.com/1274210.html, http://ailev.livejournal.com/1272169.html.

Я надеюсь, что в этих работах выхожу на достаточное число уровней абстракции в обсуждении. Ибо абстракции нужны для того, чтобы соединять между собой мышление о "далёких" друг от друга аспектах проблемы, "далёких" частях системы, "далёких" описаниях системы: http://ailev.livejournal.com/1274014.html. Образование штука сложная, последовательно обо всём думать -- это забывать о том, о чём думал некоторое время назад, так что абстракции более высоких уровней позволяют делать "кротовые норы" для связывания всех отдельно обсуждённых интересов по поводу системы в одно системное целое.

Что теперь со всем этим делать, если руки чешутся кого-то пообразовывать? Причём образовывать в масштабах всей страны, да что там -- мира! Нормальное такое желание, если речь идёт о конкурентном предложении, а не гособязаловке.

Первый вариант: ничего не делать, ибо если мы правильно всё понимаем, то в эту сторону всё само скатится. Есть чёртова туча сервисов, которые реализуют ровно те подходы, о которых я весь этот месяц писал. Вот, например, http://uchi.ru -- там пока только математика для начальных классов (курс у самых шустрых занимает 2 часа, у самых медленных 120 часов -- курс адаптивен, как и надо: https://www.facebook.com/uchi.ru/photos/a.251295175028529.1073741828.250152108476169/688668897957819/), но уже для первого класса есть геометрия, а математика для 5-7 классов будет вот прям на днях или раньше. Опять же, в академии Хана кроме объяснялок появились тренажёры, http://knewton.com вошёл уже чуть ли не в каждую американскую школу и уверенно заходит в университеты. Изобилие!

Вопросы начинаются сразу после того, как мы начинаем комплексировать это всё: например, 700 заданий по начальной математике (и даже геометрию) из http://uchi.ru захотим объединить с логикой из http://logiclike.com/ и добавить начальную алгоритмику из https://piktomir.ru/ -- и вопросы небезинтересные:
-- насколько они все пересекаются? Такое впечатление, что logiclike.com закрывает и оба соседних ресурса. Так ли это? Скорее всего, не так. Но эквивалентны ли будут результаты?
-- в каком порядке выполнять все эти задания? Сначала логику, потом математику, потом алгоритмику, или вперемешку? Алгоритм "образовательной траектории" на них на всех ведь не работает, только внутри каждого!
-- а ведь есть ещё http://dl.gsu.by/ -- и там тоже можно начинать с "логических" азов, и гарантия обучения олимпиадному программированию до самых-самых высот! Туда идти "вместе", или "вместо" предыдущих?
-- точно ли это правильное образование? Развитие образования ведь только тогда будет, когда мы меняем дисциплину, которой обучаем. Если дисциплина одна и та же, то это не развитие -- это просто совершенствование, скачок будет количественный, но необязательно он перейдёт в качественный.

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

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

В школе упор на формальное образование всё больше и больше проигрывает материальному (http://enc-dic.com/pedagogics/Materialnoe-I-Formalnoe-Obrazovanie-1014.html), искомый "баланс" стремительно сваливается в сторону весёлой дискотеки, выпуском в конечном итоге исключительно менеджеров-предпринимателей-проектных управляющих (весь пиар вокруг меня идёт в эту сторону), которые потом будут так же весело искать среди друг друга исполнителей своих проектов: инженеров, которые способны не только что-то предпринять, но и что-то сделать, ибо у них в голове есть не только "умение работать в команде" и "умение сформулировать бизнес-модель", но и дающаяся тяжёлым многолетним трудом безо всякой дискотеки "беглость" в STEM. Представляете себе стартаперов, которых учили стартапничать, но не учили при этом что-то делать?! Они радостно генерируют идеи, умело пиарятся, берут деньги, только потом ничего не могут сделать -- ибо это оказывается долго и неподъёмно, и требует нечеловеческого напряжения мозгов на базе опять-таки многолетнего обучения тому же STEM.

Так что дискотеку и веселье хотелось бы сохранить, но по мере приближения к старшему возрасту (намеренно ухожу тут от "классов") хотелось бы гарантировать примат формального образования над материальным -- и все курсы должны это отражать и работать на эту цель. Для этого нужно менять и сам набор курсов. Так, нужно специально работать над
-- языковой компетенцией, лингвистикой (вместо дурацкого нынешнего недопредмета "русский язык", см., например текст про школьные мифы о языке -- http://cyberleninka.ru/article/n/preodolenie-shkolnyh-mifov-o-yazyke-rol-obschelingvisticheskogo-komponenta-obucheniya-russkomu-yazyku-v-sredney-shkole, плюс нужно учитывать ещё и текущую революцию в лингвистике, которую обеспечивает прямо сейчас deep learning -- учёт "интуиций", а не только "правил"), школьники должны уметь разобраться в сложном тексте с одной стороны, и сами породить нарратив высокого качества. Что толку в потраченных на выучивание правил русского языка годах, если эти правила не помогают написать качественный текст, не помогают сформулировать внятную мысль из невнятного мычания и обрывков животных переживаний?
-- над системным мышлением, в ВУЗе это уже поздно: без этого трудно разобраться в жизни достаточно, чтобы осмысленно выбрать ВУЗ.
-- системной инженерией, чтобы понимали, что булки не на деревьях растут. Вся эта "робототехника" лишь попытка неявно преподать системную инженерию на примере роботов, но не менее интересно можно было бы преподавать её и на примере гидропонных вертикальных ферм, и на примере авиамоделирования, создания крутых телескопов-микроскопов, и на любых других примерах, а хоть того же мейкерства из IoT. Выход в физику и реальное пространство-время важны, "руки должны быть грязными -- мастерские должны быть", как говорят в MIT. И это вовсе не уроки "технологии" aka "рукоделия", ибо под ними вполне себе академический предмет: системная инженерия.
-- тренинг логики не прекращать в начальной школе (где он проходит часто под названием предмета "информатика" -- ох!), а продолжать его и дальше. Тот же http://hpmor.ru/ в школе не проходят, современная "рациональность" и использование логики в рассуждениях входит в деток только как народный фольклор -- специально ей не учат, и поэтому быть нелогичным у массы выпускников не считается зазорным.
-- "осознанность" в самых разных её трактовках, в том числе в условиях современной киберпсихики: http://openmeta.livejournal.com/237056.html
-- учить ориентироваться в современной культуре и современном языке 21 века, а не в древней литературе и древнем языке 19 века. Это означает, что весь этот десятилетиями копившийся хлам уроков "литературы" нужно вычистить, тем более что вместе с литературой сейчас в мире и много других не менее развитых художественных культур. Я совсем не против "интегрального подхода", когда не STEMом единым и не формальной логикой единой жив человек, но мне претит ложь, когда нравственность-патриотизм-народный психологизм как предметы изучения вдруг заворачивают в якобы изучение художественных произведений. Это "предмет"? Не смешите мои тапочки, это не предмет, а сплошная манипуляция, время и задания для промывки мозгов -- так же, как и история. Пусть официальная школа этим продолжает заниматься, но познакомить деток с существованием самых разных жанров компьютерных игр (раз уж они есть) и самых разных видов художественного творчества (пои, стрит-данс и т.д.) -- это им поможет сориентироваться в окружающей среде. Но для этого придётся смастерить какой-то "предмет", поднять академическую дисциплину, которая этим занимается -- культуроведение?
-- социология и политическая философия, а также экономика "по тяжёлой", также на базе дисциплин. Все эти "обществоведения" как и "краеведения" -- это дань официальной педагогики государству.

Итак, речь идёт не о том, чтобы умножить число образовательных ресурсов, которые поддерживают текущие школьные программы (хотя это и хорошо в плане финансов: только этим и можно массово торговать!), а о том, чтобы рядом с официальной выстраивать новую образовательную систему. Не бороться со старой системой, а для желающих (ниша! не массовый рынок) дать возможность пойти по совсем другим "образовательным траекториям", нежели предлагающимся в рамках типовых школьных программ. Не оптимизация образовательных траекторий в текущих школьных программах, как у текущих проектов "тренажёров", но выход этих образовательных траекторий в другие места, в которых сейчас полное образовательное бездорожье. Развитие, шаг в новизну (http://ailev.livejournal.com/1254147.html), к новым практикам, а не совершенствование уже существующих.

И для такого "исследовательского проекта" (в котором сочетается исследование -- построение школьного варианта дисциплины, разработка тренажёра, понимание связей учебных курсов по этим дисциплинам с их образовательным окружением из других дисциплин) можно уже думать о вариантах технической реализации:
-- классический "вебсайт", где команда педагогов с программистами реализуют курсы ровно так же, как все остальные такие же.
-- автоматический тьютор, который пытается жонглировать задачами и курсами из нескольких уже имеющихся вебсайтов по STEM (типа AirBnB для того, что уже есть, плюс совет куда уходить). Таких "навигаторов в море курсов" (и желающих их создать, типа https://asi.ru/projects/10214/) довольно много, проблема только в том, что в них хочется получить тренажёры по дисциплинам, которые ещё никто не сделал! А стоимость продюсирования тренажёра будет повыше, чем стоимость продюсирования онлайн-объяснялки с немногими задачками (типа Coursera или академии Хана).
-- инструментальный портал, в котором не только своя команда создаёт какие-то курсы как образец, но и разные всякие методисты создают свои курсы при помощи предлагаемого высококачественного инструментария. Такая платформа технологически поддерживает множество view для самых разных стейкхолдеров. Это systems informatics, это под капотом. Но для образовательного проекта это может быть enabling technology. Именно это может гарантировать должный уровень "безлюдности" самого обучения и лёгкость извлечения знаний из методистов (disclaimer: да, я понимаю, какой флейм можно получить из словосочетания "безлюдная педагогика", особенно если вспомнить про "тёмные фабрики" и попытки уйти в автомобилях и самолётах от слова "беспилотный". Тем не менее, автоматизация должна быть тотальной, и это может быть очень интересным ходом). В такой платформе может быть много интересного вынесено за скобки отдельных курсов: нейродиагностика внимания/когнитивной нагрузки, например. Или облегчение перевода на иностранный язык. Или учёт того, что у нас тут киберпсихика и поэтому публикация разных API для информационных виртуальных ассистентов учебника (и методиста, кстати, тоже).

Я склоняюсь к последнему варианту. Да, это что-то типа "аппстора", только я бы говорил тут даже не о "курсах" как единицах-приложениях, а об отдельных задачах в тренажёрах. Этот тренажёрный портал позволял бы собирать не гениальных объяснятелей, как Coursera, а гениальных составителей задач -- тех, кто дробит предмет на уровень мыслем, а потом придумывает для них задачи. Так сказать, тренинг на давальческих задачах. Огромное количество программистских тренажёров для олимпиад ровно так и устроено. Вот и мы это должны будем повторить. А редакционно-методическая группа (из людей? не факт!) будет приглядывать за целостностью итогового продукта, модерации быть.

Тем самым там минимально два интерфейса: к ученикам и методистам (с доступом, например, к статистике и исследовательским интерфейсом -- чтобы могли изучать плоды своего труда, обеспечить им условия для exploratory course programming).

При этом, как и Uber, это не будет сервис-посредник. Uber брался за то, чтобы пассажир добрался максимально дёшево, комфортно и быстро из точки А в точку B, и если для этого не нужны будут водители, то и хорошо (он уже заявлял, что готов купить 0.5млн. беспилотных Tesla в тот же момент, как они будут доступны, потом заключил партнёрское соглашение с Ford и сейчас уже тестирует такси-без-водителя на улицах Питтсбурга: http://triblive.com/news/adminpage/10484013-74/driving-self-car). Вот и мы будем браться подготовить бегло шевелящего мозгами молодого человека, но не обещаем, что это будут делать какие-то люди, в том числе даже и методисты. Это пока чистое шапкозакидательство, кроме эпатажа под этим моим заявлением ничего нет, ещё несколько лет об этом содержательного разговора не будет, но я вас предупредил.

А чтобы уж совсем добавить масла в огонь, так и ученики не обязаны быть людьми -- но мы ж должны из них сделать достойных членов общества! )))
Friday, July 22nd, 2016
1:34 am
Об "робототехнику" как дисциплину
Я только недавно писал про странную дисциплину "образовательная робототехника" http://ailev.livejournal.com/1278294.html, но с тех пор написал ещё втрое больше в комментах к постам А.Корнилова:

https://www.facebook.com/alx.kornilov/posts/1769201943291367

https://www.facebook.com/alx.kornilov/posts/1769509279927300

https://www.facebook.com/alx.kornilov/posts/1770177043193857

https://www.facebook.com/notes/aleksey-kornilov/%D0%BE%D1%82%D0%BA%D1%83%D0%B4%D0%B0-%D0%B5%D1%81%D1%82%D1%8C-%D0%BF%D0%BE%D1%88%D0%BB%D0%B0-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0/1770132496531645

(вот тут моих реплик нет, но на ту же тему "образовательной робототехники" -- https://www.facebook.com/photo.php?fbid=1770246816520213&set=a.1377271229151109.1073741827.100006047345324&type=3).

Нужно просто ходить по ссылкам и смотреть мои комменты (не буду их сюда выписывать, ибо там по большей части ответы на вопросы и нужно хоть как-то представлять контекст).

Я окончательно убедился, что нет такого предмета как "робототехника" -- это программа (пачка курсов, часть из этих курсов вполне предметны, основаны на какой-то дисциплины), рынок, отрасль какого-то министерства или института развития, и т.д.. А робота делает простого кто угодно "на коленке" (и это, скорее всего, будет не робот), а сложного -- системный инженер, который натренирован на технологиях именно робототехники: компоновки роботов, как собрать из манипулятора-тележки-контроллера что-то полезное. Ровно так же, как aircraft systems engineer ответственен за проект самолёта в целом в инженерной его части, и натренирован на архитектурах компоновки самолётов (а не холодильников и не роботов). А предмет? Предмет тут системная инженерия: как разобраться с требованиями, архитектурой, испытаниями -- но специализированно для роботов. Понятий из собственно робототехники минимум, разве что "манипулятор" и "захват", как в самолёте "крыло" и "фюзеляж", но это ж не понятия "предмета", не понятия "дисциплины"! Читайте подробности в разных обширных комментах по ссылкам выше.

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

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

UPDATE: тут ещё интересная дискуссия по этому посту в https://www.facebook.com/ailevenchuk/posts/10207616408982345
12:26 am
Кен Генисаретский и Олег Уилбер
Я поясню свою вчерашнюю мысль из http://ailev.livejournal.com/1279588.html, что О.И.Генисаретский и К.Уилбер для меня вдруг начали сливаться в их восприятии:

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

Оба пытаются удержать духовность от вымирания под напором современных изменений в обществе.

Один пытается вернуть в психологию душу (http://ailev.livejournal.com/1272745.html), второй пишет "интегральную психологию".

Один занимается развитием, а другой акмеологией (что оказывается про то же развитие).

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

Духовность в целом у них не центрирована явно на какой-то конкретной религии и вполне допускает более широкую трактовку, чем чисто религиозная духовность, хотя у одного явно выделено православие, а у другого буддизм.

Один явно неравнодышит к искусству во всех его проявлениях, второй так просто доктор искусствоведения.
Thursday, July 21st, 2016
2:03 am
Четвёртый круглый стол по педагогике -- фундаментальные исследования
Это мои заметки с серии круглых столов по фундаментальным исследования в педагогике (раньше было и когнитивным исследованиям в образовании, и фундаментальным исследованиям в образовании, мы ж тут за слова не цепляемся), стол нумер четыре (а предыдущие три были -- первый, второй-1/2, второй-2/2, третий).

Напомню основные мысли прошлых столов:
-- идея "когнитивности" была отвергнута как не-пойми-о-чём-это-слово
-- педагоги-от-сохи и инженеры-менеджеры говорят про педагогику совершенно по-разному, и их противостояние модератор (Олег Алексеев) запланировал намеренно
-- противостояние двух подходов: фундаментализма исторического (вживаться в мысли Аристотеля и Коменского) и фундаментализма современного (я выражал именно этот подход: к чёрту опору на древних, пока в них будешь много лет вживаться и искать якобы "утерянное", прозеваешь всё настоящее, никогда не дойдёшь до вживания в работы не менее умных людей 21 века, которого уже прошло 16%. Опять же: опора на вживание в образы великих людей прошлого по их письменным работам сделает то же самое с педагогикой, что и с философией: место обучения людей философствованию повсеместно обучают истории философии, так и тут вместо педагогики будут изучать исключительно историю педагогики, ни на что другое типа педагогической деятельности или собственных исследований времени не останется! И все работы будут "как я читал Коменского и что из них вычитал", а не "что я придумал сам")
-- противостояние трёх схем педагогики: а) Генисаретского на базе психологии с возвёрнутой в неё душой, но не на базе мышления, б) российско-германской с троицей дидактики-воспитания-организации образования и примыкающей к ним матетикой, в) англо-саксонской, где в педагогике появляется собственное ядро, несводимое к прикладным/дисциплинарным с этой точки зрения для целей меж/вне/трансдисциплинарной педагогики психологии, философии, этики, эстетики, политической философии и т.д. (я это маркировал раньше как "системная педагогика", а тут время от времени говорилось как про "фундаментальную педагогику").

Выступления присутствующих показали, что у большинства из них социологический заход, изредка перемежающийся с антропологическими вопрошаниями. Удивительно, но сегодня практически не было психологического захода, вообще не поминалась дидактика. Для меня это верный признак, что мушка у присутствующих сбита: социология или антропология это не педагогика точно так же, как и психология. Этот крен тоже нужно убирать.

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

На вопрос про "направления исследований" я по факту выполнил мозговой штурм на самом первом круглом столе -- http://ailev.livejournal.com/1267947.html, так что не буду повторяться.

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

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

Но дальше нужно задать фокус прикладности, ибо вся эта фундаментальность может развиваться в ходе исследований только тогда, когда прикладность указывает направления этого развития. Можно сравнить с математикой, которая невзирая на весь свой фундаментальный статус, время от времени признаётся как развивавшаяся в последнюю сотню лет главным образом в сторону поддержки физики. С этим многие спорят, но многие и соглашаются (флейм о прикладности vs фундаментальности в математике последний раз я разводил в 2009г., в http://ailev.livejournal.com/668305.html на 174 коммента и http://ailev.livejournal.com/669463.html на 59 комментов).

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

1. Необходимость тотальной автоматизации, вплоть до безлюдной педагогики (когда работающих с учениками педагогов нет, сплошные компьютеры, которых делают и настраивают "фундаментальные педагоги"). Для этого нужно очень хорошее понимание того, что именно автоматизируется: педагогику нужно будет понять настолько хорошо, чтобы объяснить её компьютеру. Я сам за последний месяц развернул некоторую программу собственных исследований по педагогике ровно в этом направлении -- я обсуждал и вопросы образовательного проекта-2, и обучения системному мышлению, и вопросы учебной робототехники (ссылок на посты тут не даю, ибо их будет слишком много: почитайте мои посты примерно на месяц назад от данного поста, там "все ходы записаны"). Ещё более интересно, что на том конце этой тотальной автоматизации не просто ученик, а ученик с киберпсихикой: учить нужно его и его компьютер (или его вычислительную среду в облаке, его виртуального ассистента и т.д. -- там нужно разбираться ещё). Вот что оказывается общим для всех проектов образовательных автоматизаций, это и будет фундаментальным в педагогике. Педагогика -- это искусство и наука создания стивенсоновских "Букварей для благородных девиц" или аланкеевских Dynabooks. Это не психология, не социология, не информатика, не просто системный подход, не инженерия и т.д. Это педагогика (хотя тут может повториться вся склока по тому, что такое робототехника или авиастроительство по сравнению с просто системной инженерией, даже если понимать, что это инженерия киберпсихики в спарке с инженерией системы искусственного интеллекта в "букваре-динакниге").

2. Необходимость определять содержание образования в его развёртке во времени. Всё это образование можно уподобить "окну внимания" в мировую культуру: выделение образованной личности из мирового культурного фона. Тут нужно уметь как-то управлять (проектно-активно, а также кейсово-реактивно) траекторией образования, рассчитывать curriculum learning (последовательность предъявления кусков предметов в зависимости от их содержания, уровня подготовки, желаемого уровня тренинга-специализации, индивидуальных особенностей психики, включая уровень кибероснащения психики -- разные уровни кибероснащения допускают разные образовательные траектории и разный выбор доступного содержания образования). Сюда же -- решение проблемы поднятия уровня готовности к специализации (сколько учить мышлению как таковому, формальному образованию) и сколько собственно специализироваться (материальное образование: тренинг каких-то предметных компетенций для беглой предметной деятельности, беглость ведь требует огромных затрат времени и лишние компетенции лучше вообще не приобретать -- про эту fluency я цитировал текст из Viewpoint Research Institute в http://ailev.livejournal.com/1278095.html). Беглость -- это также вопрос о соотношении обучения интуитивного плюс рассудочно-логического, т.е. учёт "неязыкового знания" в содержании образования, и тут вся линия исследований уместности "проектного образования", "тренажёров", "обучения в оргдеятельностных играх" полностью сюда попадает. Это не нейротехнологии по заливке знаний! Это определение того, что там из формальных и интуитивных знаний в каком порядке, когда (и только в последнюю очередь какими методами) заливать в киберпсихику. В том числе тут и учёт хотелок самого ученика, ибо в 0 лет у него никаких хотелок нет и это чистый материал, а в 25 лет все хотелки только уже от него -- с кучей промежуточных состояний, и это тоже сюда. Это опять же специфично исключительно для педагогики, и все остальные социологии-психологии-нейролингвистики-предметные дисциплины-антропологии-философии тут только инструментальны.

3. Необходимость самой сшивки в педагогике всех остальных потребных дисциплин (психологии-философии-нейролингвистики-предметных дисциплин.. -- я уже устал всех их перечислять, их несть числа). У меня когда-то была теория 33% занятий какой-то деятельностью: 33% на обеспечивающую систему и инструментарий ("мета"), 33% на саму деятельность и 33% на попытку использования результатов этой деятельности. Ещё 1% на попить-поспать-поесть-туалет. Так, чтобы делать "полнопредметную педагогику" как систему деятельности, нужно 33% времени заниматься инструментарием для этого -- это, похоже, будет инструментарий системного подхода, языковые компетенции (лингвистика), поддержание готовности (фитнес) и т.д., что нужно для собственно занятий полипредметной-полнопредметной педагогикой. Вот эта инструментальная "мета" и будет тут "системной педагогикой", "фундаментальной педагогикой", которая обеспечит формирование системы полной педагогики, включая все прикладные дисциплины (ага, включая философию, психологию и т.д., которые тут всего лишь прикладные сферы, "дисциплины" -- невзирая на все взбрыкивания и заявления о внедисциплинарности а хоть той же философии, если она нам пригодится). На создание этой "меты" и уйдёт 33% времени, это и есть фундаментальные исследования. Ещё 33% времени нужно будет потратить на собственно создание педагогики с помощью "мета"-инструментария "системной/фундаментальной педагогики". И 33% нужно будет учить детей, чтобы разобраться, что же это за целевую педагогику такую мы породили при помощи новой фундаментальной педагогики! Про киберпсихические аспекты этого всего, а также неязыковые "интуиции" в этой сфере я повторяться не буду. Инженерия педагогического предпринятия (организация образования), включая выбор практик для обеспечивающей системы педагогики, место в них исследовательских практик -- это всё тоже тут (как в рамках системной инженерии выделяют и системноинженерный менеджмент -- куда ж без него!). Можно сказать, что по этому варианту "фундаментальная педагогика" сводится к методологии создания педагогики, это методологический ход.

Следующие два варианта радовали присутствующих, но меня несколько напрягали:

4. Ещё один вариант "мета" -- это обучение обучению как педагогика-1 и обучение всему остальному как педагогика-2. Это логические уровни, Бейтсон в своё время насчитал их пять штук -- http://core.ac.uk/download/pdf/101767.pdf. Метафора обучения при этом очень похожа на метафору поиска (learning и search в машинном обучении не совсем синонимы, но всё же). В любом случае, поиск фундаментальной педагогике по этой линии приводит к педагогике второго порядка: научить человека быть педагогом первого порядка для самого себя, а также для других, т.е. научить учиться, стать парой педагог-ученик в одной киберпсихике (в том числе и группе киберпсихик). Фундаментальная педагогика -- это именно педагогика второго и высших порядков. Всякие рефлексивности-осознанности идут именно по этой линии. Это эволюционный и экологический ход, но он тоже в какой-то мере нормативен, методологичен: педагогика в нём воспринимается как постепенное обучение педагогов тому, как научать. Тут ещё Варела и Матурана с их аутопоэзисом и ряд кибернетиков (что меня пугает: всё, чем занимались кибернетики, даже "кибернетики второго порядка" -- всё сдохло, и этот вариант захода на "фундаментальную педагогику" имеет все шансы сдохнуть, унаследовав те же фундаментальные причины).

5. Потребность поместить человека в группу (семью, команду, нацию, человечество). Собственно, все эти "социологические" и "антропологические" крены отсюда, заход на предложенную Генисаретским "психологию с возвращённой в неё душой" как основание для педагогики тоже тут. Дидактика и организация образования были как-то отыграны в предыдущих пунктах, а тут во весь рост встаёт вопрос "воспитания" с обращением к морали, нравственности, монашественности, реактивности-проактивности по отношению к миру, и всем прочим, неизбежно заходящим из ненормативных наук гуманитарного цикла в махровую политическую философию и превращение педагогов в политическую партию, воплощающую результаты исследований в качестве закрепляемых законами и поддерживаемых полицией общественных норм. По этому пути в два счёта можно также получить "душу" из какой-то религии и педагоги станут сектой, или педагогика превратится в сплошной урок "литературы-по-школьному", где под видом изучения уже всех предметов, а не только художественных книжек нам будут внушать правильные идеи морали, нравственности и всего-всего, а также бороться против когнитивных подрывов духовных скреп и отрыва от корней через интернет-космополитизм. Всякие "сообщительности" против "автономности", "проблемы маленького человека", единение себя с группами или наоборот, отделение себя от единства с группами -- это тоже тут. Где-то тут я бы указал и путь Кена Уилбера: попытку увязать развитие человека и духовность, да ещё и сдобренные системным подходом. Я вот на этом круглом столе понял чуть ли не идентичность программы Кена Уилбера и программы Генисаретского, невзирая на разность почти во всех аспектах их деятельности. Осознанность тут рассматривается не меньше, чем по линии "обучения обучению", но внимание уделяется другим её аспектам. По этой же линии изучается "групповое обучение" (от команд до "воспитания граждан своей страны", т.е. патриотическое воспитание, членов своей конфессии и т.д.). Место крайне мутное, но сегодняшний круглый стол радостно всё это обсуждал. Эта "фундаментальность" (на грани с религиозным фундаментализмом в буквальном смысле слова) педагогики меня пугает, хотя от неё не удастся уклониться. Огромный портрет Путина (а не Ушинского или Коменского) напоминал присутствующим, что большинство педагогов понятно у кого на службе -- так что результаты исследований по этой линии должны быть обязательно "правильными".

Ещё из интересных для меня мыслей на этом круглом столе я бы отметил метафору лесничества (естественно растущий лес) против садовника-возделывателя-выращивателя и мастера с совсем уж проектным заходом изготовления-сборки. Для меня тут ход в том числе и на учёт эволюции, разбирательства с целеполаганием, единичного образования каждого ученика и общего образования человечества. Говорилось о книжке Matthew Fuller "Media Ecologies. Materialist Energies in Art and Technoculture" (2005, https://mitpress.mit.edu/books/media-ecologies) и каких-то других, всё это та же линия культурологии-социологии-антропологии и прочих STS (уж такой получился этот круглый стол), тем не менее.

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

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

На круглом столе довольно много людей было, представляющих системный подход в самых разных его версиях. Но сегодня уже был лингвист, занимающийся языковыми компетенциями школьников. Надеюсь, когда-нибудь появится и (философский) логик.
Wednesday, July 20th, 2016
3:08 pm
Три примера заданий для тренажёра системного мышления
Берём из списка системных мышлем http://ailev.livejournal.com/1278600.html первый же пункт (1. Гарантия присутствия системы в физическом мире: воплощение системы и 4D экстенсионализм) и сочиняем образцы заданий -- чтобы было что обсуждать с потенциальными авторами задач. Пока не заморачиваемся возможностью автоматизированной проверки, этим можно будет озаботиться чуть позже:

1. Какие из нижеперечисленного списка объекты не являются системами? Укажите уточнения, при которых могли бы быть и другие варианты ответа.
а) Маша
б) подруга Маши
в) дружба Маши и Оли
г) еда Маши
д) поедание Машей её еды
е) фотография едящей Маши
ж) фильм едящей Маши
з) приложение выбора еды в телефоне Маши
и) свидетельство о рождении Маши
к) система диеты, которой пользуется Маша
л) доброта Маши
н) классификатор Маш по уровню их доброты
о) инженер по требованиям, роль которого играет Маша
п) профессиональный стандарт инженера по требованиям

2. Опишите эти процессы как системы:
а) Петя пилит сук, на котором сидит
б) каскадёр пилит сук, на котором сидит
в) садовый рабочий пилит сук, на котором сидит
г) написание стихотворения Машей
д) написание стихотворения поэтом
е) фотографирование пейзажа Колей
ж) фотографирование пейзажа туристом
з) фотографирование пейзажа фотографом
и) фотографирование пейзажа камерой пролетающего мимо дрона
к) подготовка Оли к экзамену
л) подготовка студента к экзамену
м) подготовка преподавателя к экзамену

3. Выберите лучшее описание танца как системы, объясните выбор:
а) Листок с расписанной последовательностью танцевальных движений, сочинённый Олей. Именно по этому листку Маша и Оля потом выучили танец.
б) процесс танца, производящий изменения в зрителях при его прохождении
в) понимание процесса танца его стейкхолдерами (зрителями, танцорами)
г) Маша и Оля, пол, воздух с колебаниями, источник колебаний воздуха, зрители.
д) видео эталонного исполнения танца на флешке
е) изменения положений рук, ног, тел Маши и Оли

С одной стороны, эти все ситуации составлены так, чтобы максимально смутить тренирующегося. С другой стороны, они в их совокупности в чём-то "подводят" к пониманию, а не контролируют понимание -- цель тут тренинг восприятия мира, а не контроль понимания.

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

UPDATE: внимание! Кто не читал учебник http://techinvestlab.ru/systems_engineering_thinking, тот даже не поймёт, что именно тут тренируется! Это не интернет-тест "что я из своей прошлой жизни помню про системный подход", это не контроль знаний. Это именно тренажёр для содержания учебника! То есть не читавшие учебник просто не могут тренировать владение знаниями из него!

Если встретить задачу 2*2, и не знать, что это тренинг из учебника арифметики, то можно долго гадать о том, что же там требуется: то ли название телеканала вспомнить, то ли это 2 часа работы 2 дня в неделю, то ли 2-любая-подстрока-2 так зашифровано. У меня с предлагаемым к созданию тренажёром чётко: системных подходов много самых разных, контекстов его использования ещё больше, тренируем вариант по моему учебнику, сам учебник взят не из моего воспалённого ума, а из стандартов системной инженерии ISO 15288, ISO 42010, IEC 81346, ISO 15926, OMG Essence. Прилагаем содержание к инженерии, менеджменту, и даже цепляем немного предпринимательство-маркетинг (клиентскую зону интересов).

Дискуссия в фейсбуке: https://www.facebook.com/ailevenchuk/posts/10207605295064504
1:57 pm
Сервис Закон.Пробки
Машинное обучение полезло в законотворчество: статья "Predicting and Understanding Law-Making with Machine Learning" тут только первая ласточка -- http://arxiv.org/abs/1607.02109.

В "месте не для дебатов" США из почти 70тыс. законопроектов с 2001 по 2015 законами стали только 2513, т.е. около 4%. Модель, в которой все законы заранее считаются "непроходными" имеет вероятность угадывания 96%. Но когда она "промахивается", то вылетает чёрный лебедь -- и по экономическим и политическим последствиям обычно мало никому не кажется (например, the passage of the 2009 stimulus bill which cost $831 billion). Поэтому хорошо бы как-то вылавливать заранее те самые "проходимые" 4%, чтобы тратить политические усилия не на всё подряд.

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


Но не всё там сводится к лингвистике. Например, прохождение комитета оказывается мало значимым. Но вот внесение каким-то лидером комитета -- это оказывается значимым. Количество изменений, внесённых в текст по мере прохождения -- это тоже важно (совсем непроходимые законы обычно не правятся).

Это, конечно, не exitpolls по точности, но и не полная угадайка, и не тупая статистика -- это какая-то модель "мыслительного общественного процесса", отъезжающая от социофизики, но не учитывающая ещё всякие рефлексивные надстройки (например, что будет происходить, если вдруг все авторы непроходимых законов начнут активно использовать результаты этой модели: т.е. писать законопроекты не сами, а с помощью алгоритмов). Так и представляешь себе сервис типа Яндекс.Пробок, в котором более-менее точно предсказывается время прохождения разных пакостей через бешеный принтер. Для США авторы статьи сделали начальную версию такого сервиса, предсказания там обновляются ежедневно: http://predictgov.com/projects/congress/
Tuesday, July 19th, 2016
9:54 pm
Тренажёр системного мышления
Тренажёр для системного мышления ничем не отличается от любого другого -- по геометрии, русскому языку, матану. Это собранные воедино и предъявляемые в правильном дидактическом порядке (включая адаптивность к успехам каждого отдельного ученика) тысячи заданий. Заданий, ибо не всегда это "задачи", требующие решения. Нам же тренироваться нужно, а это не всегда "решать".

Эти тысячи заданий должны будут:
A) сначала натренировать узнавание и осознание онтологем (про мыслемы, онтологемы, логемы системного мышления см. подробней в http://ailev.livejournal.com/1278600.html) независимо от способа их репрезентации (картинкой, текстом с терминологией какой-то школы или стандарта, диаграммой из "квадратиков и стрелочек" и т.д.). Внимание натренированного человека должно фокусироваться на этих объектах автоматически, они должны выделяться из объектного фона без сознательного напряжения.
B) распознавание и осознание логем, проведение простейших рассуждений: при обнаружении какого-то входного паттерна онтологем выходной паттерн логемы должен приходить в голову автоматически, типа как паттерн 2*2 сразу вызывает в голову 4.
C) решение задачек-проблем (но не таких объемных и проблемных. как "кейсы"), требующих напряжения "интуиции" (т.е. выбора нужных онтологем и проведения каких-то многоступенчатых рассуждений с логемами). Нейронная сетка вполне себе работает с классификацией объекта по тысячам категорий, в этом её прелесть. Так что напрягать мозг на многоходовые системные рассуждения полезно: сначала они будут проходить туго, зато потом "интуитивный" системный ответ будет доступен сознанию мгновенно.

Задания эти:
-- не кейсы (чужие проекты) и не свои проекты. Задания сознательно мелкие, тренируют отдельные мыслемы и отдельные их связки, а не связное мышление в рамках всей предметной области -- это предмет отдельного рассмотрения, как получить результативность мышления in the wild, включая постановку проектных задач, а не только решение уже кем-то поставленных задач. Беглость мышления на мелких кем-то поставленных задачах и беглость мышления в реальном проекте различаются, но эту проблему пока не решаем (это ведь реальная проблема! Всё это тест-ориентированное обучение воспитывает умение проходить тесты, а не решать проблемы, олимпиады тут просто элитная форма тест-ориентированного обучения, ЕГЭ его апофигей -- и с этим никто не спорит. Но есть гипотеза, что лекарство просто стало болезнью -- гипотезу, что нельзя быстро получить беглость мысли в проектах без хоть какой-то беглости мысли в решении задач, никто не отвергал. Между учебником и проектами-из-жизни дистанция слишком велика, и нужна дополнительная ступенька. Без "тренажёров" прыгать в проекты можно, но получится дольше и с меньшим успехом.
-- не "контрольно-измерительный материал", так как главная цель тут не контроль и не измерение знаний, умений, навыков, а тренирока. Наборы заданий -- это "тренажёры". Так что каждый "затык" ученика тренажёры не столько выявляют, сколько исправляют дополнительным тренингом. Запнулся -- получи ещё пяток задач на эту тему. Тренажёры в обучении -- это не тесты, значит у нас не тест-ориентированное обучение!
-- их реально много (тысячи, а не десятки), ибо для нейронной сетки мозга важен тренинг (привет бихевиористам, я никогда не отказывался от больших к ним симпатий даже в периоды больших на них гонений). Человек, конечно, может научиться чему-то с первого предъявления, но именно что "чему-то", не всему. Так что для многих и многих мыслем наученное нужно ещё как-то закрепить, нужно структурированное время внимания (обычно не меньше трёх часов в день, чтобы достигать профессиональных результатов) на этих мыслемах, нужны возвраты из-за кривых забывания, нужен "налёт часов" в занятиях каким-то концентрированным мышлением именно в предмете обучения, а не рассеянным тысячей других дел и занятий, как это обычно бывает в "проектах". Тренажёры как раз позволяют получить необходимую концентрацию, необходимое время. Задач в тренажёрах мало не бывает, при серьёзных занятиях (а это и есть фундаментальное образование) они используются до конца. Хотя, конечно, объем и длительность заданий можно регулировать: нам ведь не всегда нужно получать профессионала.
-- последовательность предъявления заданий важна (в deep learning это называется curriculum learning). Так, М.Долинский в цитировавшемся уже материале пишет: "Для заданий, вызывающих трудности у большинства учеников, встроены системы автоматических подводящих заданий, пошагово обучающих выполнению проблемного задания. Для учеников, имеющих серьёзные проблемы с определёнными типами заданий, например: нахождение отличий, составление фигурок танграма, выполнение заданий по аналогии и др., созданы специальные пакеты заданий, называемые «Техминимумами» для целенаправленного формирования соответствующих навыков у конкретного ребёнка".

Мне представляются интересными две формы организации заданий в тренажёре:
-- классические "тесты" с пятью специально сбивающими с толку возможными ответами (как у https://www.facebook.com/alex.turkhanov/posts/10209643873430704 -- хотя там задания больше на мыслемы практик жизненного цикла системной инженерии с упором на практику управления конфигурацией и изменениями, а не собственно системного мышления). Такой формат проще всего проверять автоматически.
-- более свободный формат "рабочей тетради", который предполагает мало писать, но тем не менее приходится напрягать мозг, и много думать при его заполнении. Вот пример такой «рабочей тетради» для геометрии: http://www.otbet.ru/gdz/class-7/geometria/reshebnik-rabochaya-tetrad-k-uchebniku-geometriya-7-9-atanasyana-l-s/. Такой формат проверять много труднее, тем не менее я бы сразу от него не отмахивался.

В любом случае, я рассматриваю "эскиз образовательной системы-2" (http://ailev.livejournal.com/1277589.html) с его технологиями, который сейчас изложен в приложении к обучению алгоритмике, вполне подходящим и для обучения системному мышлению. При всех оговорках из поста про системную метанойю (http://ailev.livejournal.com/1278095.html) про проблематичность перехода от натренированного "знания" мыслем к реальной беглости их использования в проектах in the wild: в тренажёре нельзя научить ставить задачи, для этого нужны другие методы учебной работы. Так что тренажёр это лишь один из инструментов, это явно не краеугольный камень обучения системному мышлению (да и любому другому -- алгоритмическому, системноинженерному). Это лишь одна из ступенек учебной лестницы, для обычных не умеющих перепрыгивать через ступеньки не-гениев, типа нас с вами.

Ну, и главное прямо сейчас не автоматизация (хотя без неё никуда), а получение большого числа заданий для тренажёра -- а их взять неоткуда, их все нужно придумывать.
9:24 pm
Системные мыслемы
Мыслемы (или "мышлемы"? тренируем ведь не мысли, а мышление. Мне даже прислали вариант "мыслеммы", тоже хорошо -- не сами мысли, а... леммы к ним. Я сам шёл по пути "стратегирование -- стратагемы", "фонетика -- фонемы" и т.д.) -- это то, что должно быть натренировано на многих мелких заданиях. Такая тренировка ак.А.П.Ершовым была названа "сержантским методом".

Вот как описывает такой подход Михаил Долинский (гомельская школа обучения алгоритмике, http://dl.gsu.by/NForum/posts/topicshow/76.dl?postid=59214#59214):
Будучи старшим школьником и студентом я тренировал детские футбольные команды.

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

Когда нам потребовалось развивать МЫШЛЕНИЕ, мы пошли аналогичным путём – попытались выделить и сформулировать отдельные навыки,

Мы назвали их базовые мыслительные операции.

Мы пытались искать в Интернете, что делали другие в этом направлении, что-то придумывали сами.

И на сегодняшний день наш перечень базовых мыслительных операций включает 21 БМО, классифицированных в 5 групп:
  • Операции над парами: сравнение, упорядочивание, ассоциация
  • Операции над множествами: объединение, пересечение, вычитание
  • Операции на множестве: классификация, структуризация, обобщение
  • Логические операции: отрицание, дизъюнкция, конъюнкция, эквивалентность, импликация
  • Комплексные операции: анализ, синтез, аналогия, абстракция, воображение, позиционирование, запоминание.

Соответственно мы ставим задания на развитие каждого навыка в отдельности.

На сегодня обучение включает семь уровней сложности таких заданий.
Я б делил мыслемы на два вида:
-- онтологемы (подведение под класс: выделение фигуры на фоне, тренинг интуитивного внимания и вывода этой интуиции в осознание -- называние). Это тренинг моделирования, при этом метамодель предзадана.Нужно уметь "видеть в мире" системы, физические тела, математические точки -- чтобы уже потом использовать на этих объектах всю мощь логем.
-- логемы (логические операции, у М.Долинского это БМО -- базовые мыслительные операции, у него одна предметная область, поэтому онтологемам у него не так много придаётся значения). Рассуждение на разнородных онтологемах (т.е. последовательное проведение над онтологемами базовых мыслительных операций, т.е. операций логического мышления) для нейронной сетки тяжело, нужно как-то натренировать его до интуитивности, бессознательности, ментальной лёгкости. Так что логемы это простейшие трансформации модели, навигация по модели, рассуждения на материале модели. Онтологи могут считать, что логемы -- это про отношения (которые, конечно, тоже объекты, но это тут неважно).

В моём курсе системного мышления предполагается следующий (не думаю, что полный -- но для первого прохода по задачам этого набора будет достаточно) набор системных мыслем (мыслем системного подхода). Я уже приводил их рубрикацию в http://ailev.livejournal.com/1278095.html, но раскрою их тут чуть подробней в части онтологем и типичных ошибок. И это точно не порядок их объяснения! Это классификация, а не учебный поурочный план:

1. Гарантия присутствия системы в физическом мире: воплощение системы и 4D экстенсионализм
-- 4D индивид (тренируется критерий определения: протяжённость в пространстве-времени. Ошибки: описания, 3D представление, системы типа "система Станиславского). Границы системы как состав системы
-- работы (изменения: процессы, проекты, кейсы) как 4D индивид,
-- события как 3D индивид
-- софт как 4D индивид (ошибка: исходный код как система)
-- предпринятие как 4D индивид
-- индивиды как полные темпоральные части
-- методологическое время против реального (в 4D)
-- логема экстенсионализма: совпадение двух объектов в пространстве-времени -- это один объект

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

3. Холон: уровни системы, отношение композиции ("часть-целое"), целокупность и эмерджентность
-- отношение композиции ("часть-целое" в 4D)
-- уровень системы
-- логема эмерджентности для уровней системы (и
-- целевая система
-- использующая система
-- подсистема
-- система в операционном окружении
-- логема холона: связь целевой, использующей, подсистемы, системы в операционном окружении (ошибки: "объективная система", неверность в определении границ системы, "принцип почтальона" по слишком далёкой использующей системе, пропущенная использующая система + лингвистическое использование слова "использует" -- "мужчина использует женщину", игнорирование команды: обеспечивающая система как целевая, подсистема как целевая)
-- логема приёмки

4. Определение и описание (идеальное против материального, междисциплинарность и мегамоделирование)
-- определение (definition)
-- описание системы (description) как рабочий продукт
-- потребности (стейкхолдеров)
-- требования / стратегия
-- контрольная точка
-- архитектура / ограничения
-- архитектурное решение
-- архитектурное требование
-- частное описание (view)
-- метод описания (viewpoint)
-- модель
-- вид модели -- мета-модель
-- мультимодель
-- мегамодель
-- логема проверки (описания и системы, описания и описания)

5. Функциональное/компонентное против конструктивного/модульного, размещения
-- архитектурное описание
-- компонента
-- порт
-- логема целевой системы как компоненты
-- модульная диаграмма (логическая архитектура, принципиальная схема)
-- модуль
-- интерфейс
-- размещение
-- логема совмещения компоненты и модуля
-- логема платформенного стека

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

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

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

Кроме того, обратите внимание на отсутствие тут понятий конкретных практик системной инженерии (скажем, инженерии требований с их шаблонами требований или языками требований, или управления конфигурацией, даже V-диаграммы нет) и системного менеджмента: там свои veiwpoints с их онтологемами, свои мыслемы, свои для них тренажёры.

Если кого заинтересовало содержание этих мыслем, то вам сюда:
-- учебник системноинженерного мышления: http://techinvestlab.ru/systems_engineering_thinking
-- видео тезауруса понятий системноинженерного мышления: https://www.youtube.com/channel/UCJ0Uq_WB7GLmY-NTz2oFoUQ
-- очные курсы системного менеджмента: http://system-school.ru/
Monday, July 18th, 2016
11:17 am
Об образовательную робототехнику, образовательную педагогику и системную робототехнику
Очередное бурное обсуждение существования образовательной робототехники, а заодно и просто робототехники, а заодно и того, что такое "робот": https://www.facebook.com/alx.kornilov/posts/1769201943291367

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

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

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

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

Рассуждение интересное, но для меня это не критерий для учебной дисциплины.

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

Именно поэтому педагогика и исследования связаны обычно: если кропается теория, то на этой базе и создаётся учебный курс "предмета".

Практика=дисциплина/теория (хотя бы эмпирическая, понятия и эвристики на их базе) + технология (поддерживающая эту теорию в инструментах).

Если говорить о робототехнике, то либо "робототехника" это просто такая вербальная лингвистическая маркетинговая метка, классификатор для чего-то интересного маркетёрам, либо нужно искать какие-то исследования и интересоваться теорией. Ну, и какая теория в робототехнике?! Основное понятие, вестимо, "робот" (в определение которого как раз и входит его преходящесть: т.е. роботы каждый год будут другие -- ибо "вчера" каждый год будет другое).

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

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

Как только появится фраза, которую ни к какому учебнику нельзя отнести, кроме как "образовательная робототехника", так сразу можно спор заканчивать, предмет есть. Если не появится -- предмета нет, споры зря.

А если нет теории, то есть маркетинговый термин внутри самого образования. И такого полно. Тот же "инженерный менеджмент" ни разу не дисциплина, или "технологическое управление". Для этого я предложил салатную метафору на примере инженерных и менеджерских дисциплин (в каждой из которых есть своя теория, или хотя бы набор эвристик) вот тут: http://ailev.livejournal.com/1160014.html. Я там говорил:
в одну и ту же голову магистра можно загрузить знания как по разным менеджерским дисциплинам, так и по инженерным в одной программе. У меня для описания сегодняшнего устройства образования кулинарная салатная метафора. Салаты "оливье" и "цезарь" не перепутаешь, но "оливье" могут дать, например, неожиданно со свежим огурцом вместо солёного или ветчиной вместо курицы -- вдруг кому понравится! Каждый ВУЗ готовит такие знаниевые салаты в голове у будущих инженерных менеджеров и менеджеров технологий по-своему
Пока для меня "образовательная робототехника" не означает дисциплины, а означает предложение научить образовательному салату, у каждого "образовательного робототехника" своему. Никакого, конечно, отношения к возможностям выходных конструкций роботов это не имеет, спор зряшный: суть дела-то никто и не будет обсуждать, предмет никто и не будет делать, это чистый маркетинг. Оправдание простое: вдруг этот образовательный салат в голове как-то переварится и когда-нибудь потом выпускники смогут в реальной жизни справиться с реальной задачей: например, найти плохой контакт в реальном роботе.

В чём претензия Корнилова в комментируемом посту? Он явно этого не говорит, но как я понимаю, в салате "образовательной робототехники" отсутствует ингредиент системной инженерии. В результате детки умеют паять, гнуть железо, красить и даже чуть-чуть программировать. Но робота в целом, способного хоть что-то сделать -- вот этого они создать не могут.

Для меня это продолжение советской школы инженерии, где такому в принципе в голову не может прийти учить. Системный инженер aka генеральный конструктор (прихватывающий попутно и все менеджерские занятия) должен прорасти сквозь асфальт, проявить смекалку и сообразительность (которым в явном виде не учат) -- и в пожилом уже возрасте начать клепать настоящих роботов, пройдя какую-то "школу жизни" на робототехнических предприятиях. Системных инженеров не было традиции учить, это зарубежное развлечение выпускать системных инженеров -- давать знания "генеральных конструкторов" прямо в ВУЗе. Я об этом писал неоднократно, не будут повторяться.

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

Я тут не злой, я просто последовательно провожу рассуждение с парой одних и тех же идей. Например, про педагогику и исследования (там ведь тоже есть попытка преподавать "образовательный салат" из психологии, этики и кучи других вполне добропорядочных дисциплин), и я пытался выйти на понятие "системная педагогика" в связи с педагогическими исследованиями (http://ailev.livejournal.com/1272887.html -- мои заметки на втором круглом столе по образованию). Примерно по той же линии я пытался проводить рассуждение про "системную информатику", хотя там только намёки в части соответствующих исследований, но они там есть (http://ailev.livejournal.com/1272169.html и после этого я написал ещё штук пять постов на эту тему).

Так что или нужно говорить о формулировании "системной робототехнике" и запускать соответствующие исследования, чтобы надстроиться над салатом из ТАУ/ТАР, электротехники, кинематики и т.д., или закупать попкорн и наслаждаться вечными дискуссиями в стиле "в интернете что-то не так с роботами, робототехникой, образовательной робототехникой и педагогикой для робототехников".

UPDATE: ещё небольшая дискуссия тут -- https://www.facebook.com/ailevenchuk/posts/10207588663168717
Saturday, July 16th, 2016
6:48 pm
Системная метанойя
Мыслемы -- это отдельные элементы мышления (как стратагемы -- это типовые элементы стратегий). В том варианте системного мышления, который я даю, их немного:
-- гарантия присутствия системы в физическом мире (воплощение-индивид, 4D экстенсиональная онтология)
-- деятельностная субъективность в определении системы (стейкхолдеры, их интересы)
-- холон: уровни системы, отношение композиции ("часть-целое"), целокупность и эмерджентность
-- определение и описание (идеальное против материального, междисциплинарность и мегамоделирование: viewpoint, veiw, definition, description)
-- функциональное/компонентное против конструктивного/модульного, размещения
-- жизненный цикл 2.0 (система деятельности с выделенной стадией эксплуатации, состоит из компонент-практик).

Вот тут было альтернативное изложение того же самого: http://ailev.livejournal.com/1221425.html (прошлогодний пост "Системные координаты: увы, их много").

Задача: как можно быстрее развить беглость (fluency) в системном мышлении, в совместном использовании этих мыслем. Каждая отдельная мыслема -- как клавиша на рояле, её относительно легко понять и применить. Но есть проблема: беглость. Умение играть на рояле -- это не умение извлекать из него звуки (это и двухлетний ребёнок умеет, и даже собаку легко этому научить). Умение играть на рояле -- это беглость в нажатиях на клавиши.

Как говорят во Viewpoint Research Institute (главный в нём Alan Kay, я писал об этом в 2007г. http://ailev.livejournal.com/1221425.html):
Мы хотим помочь детям развить реальную беглость (fluency) во многих областях образования, включая мышление, математику и науки. Каждый из этих предметов не поддается "естественному обучению" (как учатся ходить и говорить). Довольно много времени и энергии нужно потратить, чтобы получить беглость выше пороговой. Тут интересное сходство с искусством, музыкой и спортом, для каждого из них также требуется довольно много времени и энергии, чтобы получить беглость. Эти искусства могли бы называться "тяжелое развлечение" (hard fun). Математики и ученые знают, что они занимаются искусством, равно как тяжелым развлечением. "Мышление" это более высокая категория, чем "просто" математика, наука и искусства. Оно представляет синтез интуитивного и аналитического подходов к пониманию мира и поведения в нем.
Мы теперь лучше понимаем про "синтез интуитивного и аналитического подходов" -- это про коннективизм в синтезе с символизмом, речь идёт как об "автоматической", бессознательной интуиции натренированной нейронной сетки с распределёнными представлениями (distributed representations) в мозгу, так и о тяжёлом сознательном моделировании логического символьного мышления в локальных представлениях, понятийных рассуждений, медленно сознательно эмулируемых на этой же нейронной сетке -- главным образом для проверки результатов быстрых интуитивных бессознательных озарений.

Результат тренинга беглости Peter Senge предложил называть словом "метанойя", заимствованном из религиозных психопрактик. Нам нужна системная метанойя, результат тренинга беглости в использовании системных мыслем. Как и метанойя психопрактик, она даётся нелегко, нужно пройти несколько этапов обучения. Велик соблазн вслед за Peter Senge утащить из религиозных психопрактик и какую-нибудь попсовую байку про достижение метанойи (aka достижение просветления), например сутру "Десять быков дзен" (http://mahabon.blogspot.ru/2013/04/blog-post_4.html) про десять этапов этого тяжкого "пути". В китайском языке есть слово для обозначения мастерства, требующего долгого труда: кунг фу. Вот системное мышление, высшая математика, игра на рояле и тайцзицюань -- это всё варианты кунг фу. Учиться долго и тяжело (обычно годы), похвастаться перед публикой результатами удаётся далеко не сразу.

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

0. Заинтересованность: есть понимание, что системный подход зачем-то нужен. Переход от неосознанной некомпетентности к осознанной некомпетентности. Это самая трудная ступенька на пути к беглости. Нет мотивации -- не будет вложений труда, не будет hard fun, никакой метанойи не случится. На мои коммерческие курсы люди приходят уже заинтересованные, и у них дальше всё получается. Студенты приходят обычно никак не заинтересованные -- и не все из них становятся заинтересованными даже к концу курса. Но часто возвращаются поучиться второй раз (заинтересованность появляется уже после прохождения курса). У меня нет никакого понимания, как побыстрей проходить эту стадию, как делать людей заинтересованными в том, о чём они и понятия не имеют. Я могу лишь демонстрировать системность своего мышления и намекать, что другие тоже так могут, если вложат какое-то количество времени в тренинг.

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

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

3. Беглость: умение применять мыслемы системного подхода в их совокупности по потребности in the wild, в реальных проектах. Это совсем отдельное качество: уметь решать задачи (а хоть и олимпиадные) и уметь ставить задачи, выделять их из перезапутанного окружающего мира. Беглость -- она именно в этом, не в решении задач из задачника, она в решении задач из жизни. Вот тут могут быть и кейсы, и реальные проекты. Результат прохождения тренинга беглости даёт метанойю: нейронная сетка научается думать системно, это мышление уже не требует осознанных усилий и привязано к объектам окружающего мира. Неосознанная компетентность, системная метанойя.

UPDATE:
Тут я буду собирать разные варианты задач (без обсуждения, чтобы вводить студентов в соблазн):
-- https://www.facebook.com/alex.turkhanov/posts/10209643873430704 (там больше заданий на онтологемы практик системной инженерии -- например, практики управление конфигурацией, чем базовых понятий собственно системного мышления, тем не менее хорошо ясна форма заданий).
Friday, July 15th, 2016
12:52 pm
Системная сложность есть, а поговорить не с кем
Современные системы не сложны, а очень сложны. Именно поэтому они реализуются обычно как наборы связанных через (желательно стандартные) API программных или аппаратных (или программно-аппаратных, что всё чаще) модулей из относительно независимых платформ, каждая из которых реализует свой кусочек предметной сложности. Но есть ещё системный уровень, где все эти предметные сложности встречаются в жизни и наоборот -- разделяются в проекте.

Я написал вчера пост про образовательный проект, который для большинства людей просто непонятен, запредельно сложен: http://ailev.livejournal.com/1277589.html

Это потому что для его понимания нужно:
-- что-то понимать про образование в STEM в общем, на уровне людей, которые пробовали учить, а не получили это образование сами. Более того, ещё и примерно понимать, что происходит в образовании по алгоритмике, устройство всех этих online judge, что делает гомельская школа обучения алгоритмике и московская группа Аттик, и организации типа http://informatics.mccme.ru/ (а их много!). Опять же, попробовать не только поучиться самому, но и поучить кого-то.
-- поразбираться в адаптивном обучении, образовательной теории и технологии. Примерно представлять, что и почему делает Knewton, чем это круто, и кто у них из конкурентов на хвосте. Вот, для примера, блог Knewton: https://www.knewton.com/resources/blog/
-- представлять, что происходит в deep learning в частности, в машинном обучении в целом, и далее в AI: границы достижимого сегодня. Скажем, мониторить https://vk.com/deeplearning
-- что происходит в системной информатике (все эти systems frameworks и как из них делать большие онлайн системы). Например, регулярно читать ленту https://www.infoq.com/
-- а ещё там есть "нейро" (желающие могут думать о "когнитивистике", это такое же расплывчатое слово).
-- и технологическое предпринимательство (когда пытаются делать "бизнесы", а не "стартапы").

То есть минимальная команда на верхнем уровне -- это:
-- системный инженер
-- учитель/тьютор/дидакт информатики (про математику-геометрию-физику молчу, это потом, "на следующей итерации")
-- системный программист (в старинном понимании этого слова, бытовавшем в 90-х), он же будет и system architect (мы ж про минимальную команду!)
-- инженер по машинному обучению
-- нейротехнолог-когнитивист (что бы это ни значило: тот, кто может рассуждать и что-то делать руками в направлении замеров cognitive load)
-- предприниматель

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

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

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

UPDATE: ещё комменты в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10207566145245783
Thursday, July 14th, 2016
11:55 pm
Эскиз образовательного проекта - 2
Первый эксиз образовательного проекта я делал 2011-11-11 (http://ailev.livejournal.com/961237.html). Но тогда я делал упор больше на постановку задачи и не приводил никаких реализационных идей или прототипов, да и устарели бы они с тех пор: каждые пять лет технологии обычно существенно меняются (хотя образование не рыночно, и там технологии могут меняться существенно медленней).

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

Про технологии пять лет назад было сказано так: "10. Языкоориентированность ... задачи решаются в комплекте учебных миров, но устроенном как language workbench (с доработками в части управления образовательными модулями с их задачами и разными языками)". Сегодня понятно, что речь идёт о systems framework, поддерживающем различные языки -- я подробно писал об этом буквально вчера (http://ailev.livejournal.com/1277009.html). Целевая система при этом -- мегамоделер, настроенный на предметную область обучения STEM.

Прототипом "задачников" по программированию тут могут быть системы гомельской школы обучения программированию, а также ПиктоМир и КуМир (http://ailev.livejournal.com/1275421.html). Что должно поменяться?
-- онлайн среда exploratory programming, а не только проверка подготовленных в оффлайн-IDE ответов (почему бы и нет! https://juliabox.org/, а ещё тот же https://www.eclipse.org/che/ -- IDE в браузере уже общее место)
-- не один язык, а много (поэтому в основе должен быть systems framework).
-- понятный API по подгрузке своих наборов задач и языков

Алгоритмы адаптивного обучения (https://en.wikipedia.org/wiki/Adaptive_learning, не путать с более старинным программированным обучением https://ru.wikipedia.org/wiki/Программированное_обучение) можно реализовать как используемые в наработках гомельчан, так и по модели Knewton -- https://www.knewton.com/resources/blog/adaptive-learning/adaptive-learning-around-world/, https://www.knewton.com/resources/blog/adaptive-learning/deep-learning-make-better-learning/

Но на начальных стадиях вполне можно использовать know-how учителей, строя curriculum learning на знании о типовых ошибках и типовых задачах. То есть нужно поступать, как Facebook со своим виртуальным ассистентом "М" -- сначала должны поработать люди, а потом появится некоторый объём понимания и учебного материала, на котором можно будет тренировать нейронные сетки и другие механизмы автоматизированного адаптивного обучения. Учитель обычно:
-- тщательно диагностирует, что именно не понимается. Это самое важное: суметь вообразить, что происходит в мозгу ученика, что он делает не так, в чём именно заты.
-- обычно затык не уникален, и часто даже имеет описание в педагогической литературе (ибо совсем индивидуальные ошибки редки).
-- после этого пытается объяснить разными методами (выводит ошибку на уровень сознания), но кроме этого в обязательном порядке добавляет тренинг спецзадачами на данный затык (для этого и нужна педагогическая литература: очень часто находится методичка какого-нибудь пензенского учителя, который сочинил десяток задач на эту тему).
-- продолжает объяснять и тренировать затык даже после того, как он исчез. Проблема тут в том, что любой затык – это «уже есть неправильные связи в мозгу», а переучивать сложней, чем учить. Ну, и кривые забывания (http://www.happydoctor.ru/info/92) никто не отменял, навыки угасают и проявляются старые ошибки. И очень часто начинает не хватать задач какого-то типа.

У каждого ученика есть свои затыки в понимании, и индивидуализация учебной траектории тут ключ к успеху -- использование нашей образовательной системы должно приводить к более глубоким знаниям при меньшем времени обучения. То, что для одного «гештальт» на один раз и на всю жизнь с одного предъявления, для другого ученика нужно разложить на пять-шесть разных подприёмов, все из которых придётся долго и нудно тренировать, пока не отрастут соответствующие связи в мозгу -- а потом ещё и много раз повторять тренинг из-за действия кривых забывания.

Как при этом выглядят задачники по математике-геометрии-физики (не говоря уж о задачниках по моделированию данных, инженерии и прочей экзотике) пока не обсуждаем. Как говорилось в первой версии этого текста, это просто другие Миры, другие языки (другие viewpoints). Все эти Миры должны обеспечивать прежде всего "наглядность", а только потом "аналитичность" (четвёртый абзац в http://ailev.livejournal.com/1277251.html).

В любом случае, начать можно с поддержки курса алгоритмики, а потом только расширяться на другие предметы STEM -- заручившись при этом возможностями платформы, взяв systems framework. И тогда курсы типа геометрии http://www.euclidea.xyz/ru/ будут туда свободно включаться, это ж будет просто ещё один viewpoint со своими данными.

Я бы ещё включил какие-то простейшие варианты нейроконтроля: вплоть до выдачи ученикам гаджета, который будет снимать биометрию и отдавать в компьютер -- замеры уровня сосредоточенности-рассеяности, частоты отвлечений и в конечном итоге попытки управлять cognitive load -- http://openmeta.livejournal.com/236784.html, http://openmeta.livejournal.com/237342.html.

Бизнес-модель вполне может быть как у Knewton: продажа школам и университетам для поддержки их курсов алгоритмики (при этом курсы можно брать самой системы, но учителям можно и свои создавать).
3:56 pm
lytdybr
Покемонная реальность оказывается по факту не наложенная, а параллельная. Первая же рекомендация -- немедленно отключить синхронизацию камеры и покемона, переключиться на виртуальный мир и вообще не связываться с отображением реального. Например, это идёт первым же советом в https://youtu.be/sUVsVqvoEJY (а пропедевтика "что это такое" очень кратенько тут: https://youtu.be/oglUmHzAqyQ и даже более красочно и долго тут: https://youtu.be/9sH1QHj1ouo). Опять же, магазины выглядят как интернет-магазины, а не торговые ряды, ибо с настоящими деньгами нужно расставаться удобно и быстро, а не красиво и медленно. В России официально это наваждение появится к 17 июля 2016.

Прошёлся по своим постам системной информатики и заменил везде workbench на framework. Хоть платформа для диаграммного редактора и называет себя до сих пор workbench (https://www.eclipse.org/sirius/), немногие выжившие со времён language workbench называют себя уже language framework (http://www.eclipse.org/Xtext/ и в особенности http://typefox.io/).

Мой свежезамеренный словарный запас в английском -- 21600 (https://www.facebook.com/ailevenchuk/posts/10207549770316420), что, скорее всего, враньё. Пару лет назад это было 13500 по другому тесту: http://ailev.livejournal.com/1095125.html, и даже сегодня я повторил тот старый тест http://testyourvocab.com и получил сравнимые 12400 (не выспался? более честно отвечал? забыл английский? меньше перевожу письменно? -- разница в пределах статистической погрешности, но улучшения-то за пару лет нет!).

Отрок тупит с планиметрией восьмого класса. Это у него с раннего детства: в совсем нежном возрасте он не мог составить плоский пазл, а объемные пазлы щёлкал уровня "для взрослых". Впрочем, это у всех деток его поколения, на это часто сетуется в методичках (я смотрел несколько таких, когда писал последний абзац к http://ailev.livejournal.com/1080678.html в 2013). "Наглядности" в 2D у него по факту нет, наглядность появляется для него в 3D -- и мне даже интересно, будет ли у него наглядность в 4D?! Или там уже "символьные представления", аналитика? Вот, например, предисловие к "наглядной геометрии" 1936г. (http://ilib.mccme.ru/djvu/geometry/kon-fossen.htm): "Что касается геометрии, то в ней тенденция к абстракции привела к грандиозным систематическим построениям алгебраической геометрии, римановой геометрии и топологии, в которых находят широкое применение методы абстрактных рассуждений, символики и анализа. Тем не менее и ныне наглядное понимание играет первенствующую роль в геометрии, и притом не только как обладающее большой доказательной силой при исследовании, но и для понимания и оценки результатов исследования. Здесь мы будем рассматривать геометрию в её современном состоянии с наглядной стороны. Руководствуясь непосредственным созерцанием, мы сможем уяснить многие геометрические факты и постановку вопросов и благодаря этому во многих случаях мы сможем также изложить в наглядной форме методы исследований и доказательств, которые приводят к пониманию теорем без введения в рассмотрение деталей абстрактных теорий и выкладок". В оффлайне я веду сейчас вялые разговоры про обучение алгоритмике, и всё чаще и чаще там поминается что-то типа "наглядной алгоритмики". Может, уже пора ввести этот термин, в противовес аналитической computer science.
Wednesday, July 13th, 2016
11:47 pm
Новинки архитектуры systems frameworks
Мне очень нравится термин "language smartness provider" из архитектуры поддержки многоязыковости "инструментов" различными "языковыми серверами": https://github.com/Microsoft/language-server-protocol. Вот короткий список реализаций редакторов и IDE для этой архитектуры (https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations): VS Code -- https://code.visualstudio.com, Eclipse Che https://www.eclipse.org/che/ и пока всё, стандартам Microsoft пока никто больше не следует).

Smartness в языке -- это autocomplete, goto definition, find all references и т.д.. Дальше будут language intelligence providers, начиная с линии "завершить по высказанному намерению" (http://ailev.livejournal.com/1269236.html), протокол для них уже есть.

Интересно, что архитектурно в "редакторе кода" выделен "редактор текста", который может, например, автономно встраиваться в браузер (скажем, из VS Code выделен редактор Monaco -- https://github.com/Microsoft/monaco-editor) и уже там поддерживать все сервисы language smartness provider. В принципе, и над редактором много чего можно надстроить -- в том числе и без поддержки протокола языковых серверов, а "на коленке" (например, над Atom-редактором от GitHub надстраивают многоплатформенную IDE от Facebook -- https://nuclide.io/, или одноплатформенную IDE для IoT проектов -- https://www.particle.io/dev).

В любом случае, можно выделить две части: персональную и групповую, т.е.
-- IDE/САПР/фронт-энд (поддержка veiw и viewpoint) становится модульным и скоро тут нужно ждать интересных API, и
-- workspace server/ALM/PLM бэкенд (управление конфигурацией и изменениями) тоже становятся модульными: управление версиями (обычно сейчас это Git на его API) и issue tracker (пока не цепляется по умолчанию, но это обязательно будет) пока сами по себе модули и проблема наоборот -- в их интеграции. Тут не нужно забывать, что ещё кроме репозитория описания системы есть и воплощение системы, т.е. сама система. Для программистов это работающий код. Workspace server в Eclipse Che с поддержкой инструментария DevOps решает как раз и проблему контроля конфигурации за пределами интеграции с Git, но и автоматизируя deployment. Для "железячников и бетонщиков" думайте о разнице представления системы в PLM, ERP и EAM -- в EAM как раз учитывается конфигурация реальной системы, и различия во всех этих системах идут главным образом от разительно более долгого жизненного цикла "железа и бетона". Программисту с их "утром в куплете, вечером в газете" и концепцией DevOps трудно понять, почему все данные о системе нельзя собрать в рамках одного репозитория, а вот каким-нибудь строителям с отдельным КБ и отдельным owner-operator такое понять легко. Но функционально там во многом одно и то же, обсуждать нужно этот софт похожим образом!

Для этих частей хорошо бы вспомнить и разделение на персонального и группового ассистентов из нейронета, плюс необходимость поддержания какого-то уровня privacy. Но это дело не ближайшего будущего.

От текстов (кода ли на сотне языков, CSS или XML или JSON, или даже SciFi на каком-нибудь тамильском) неизбежен переход к их унифицированному представлению во view с не-текстами. А пока не-тексты появляются, но как-то "сбоку" например, в VS Code 1.3 New API to open non-text resources -- https://code.visualstudio.com/updates/June_2016. Главное, что не-тексты уже рассматриваются! От "редактора текстов" до "редактора текстов/кода и моделей" уже буквально один шаг. Но шаг довольно-таки большой: достаточно поглядеть на "редактор 3D модели". Впрочем, машиностроительные САПРы с веб-интерфейсом уже более чем распространены (https://www.onshape.com/, http://www.autodesk.com/products/fusion-360/overview), так что и тут идёт архитектурная унификация с другими видами моделеров. А уж просто exploratory programming над какими-то базами данных на SQL -- этого тоже полно, с тем же интерфейсным инструментарием на http://electron.atom.io/ -- вот, например, графики по базам данных и код запросов в одном IDE рядышком: https://www.wagonhq.com/.

В принципе, и графические языки можно встраивать, и новые языки делать, для этого можно использовать остатки древней language workbench Xtext, сейчас они себя называют language framework. Проект с Xtext продолжает развиваться в сторону создания viewpoints с DSL, встраиваемых в современные редакторы (те же Visual Studio Code и Eclipse Che) --http://www.eclipse.org/Xtext/, http://typefox.io/. Есть и modeling workbench для графических языков, с ними и Xtext тоже работает совместно для текстового варианта языка -- https://www.eclipse.org/sirius/

Сейчас прото-systems frameworks появляются как эклектика из самых разных технологий (например, Architecturally, Visual Studio Code combines the best of web, native, and language-specific technologies. Using Electron, VS Code combines web technologies such as JavaScript and Node.js with the speed and flexibility of native apps. -- https://code.visualstudio.com/docs/editor/whyvscode). В лидеры пока выбились системы на node.js, но это явление временное, скоро подтянутся и другие языки и интерфейсные фреймворки (скажем, Eclipse Che не использует node.js сам, но работает с node.js как одним из viewpoint: https://eclipse-che.readme.io/docs/get-started-with-nodejs-and-che). Кто дочитал до этого места: как вы считаете, почему взлёт популярности node.js пару лет назад закончился? Куда ушёл фронтир и кто подхватил эстафету? Вот пруфлинк: https://www.google.com/trends/explore#q=node.js

Это я продолжаю линию на формулирование предмета системной информатики (http://ailev.livejournal.com/1272169.html, http://ailev.livejournal.com/1274210.html, http://ailev.livejournal.com/1273208.html, http://ailev.livejournal.com/1275143.html): идёт потихоньку поиск в области архитектуры systems framework, начиная пока с
-- редакторов кода (они работают с файлами в папках ОС) и потом постепенно продолжаясь на
-- IDE (они работают с проектами в репозиториях), а затем захватывая и
-- моделеры различных языков моделирования-онтологизирования
-- САПР (3D, технологические) и симуляторы
-- dashboards к базам данных для редактирования этих разной, в том числе NoSQL структуры баз данных.
-- стыка с разными workspaces, в которые входят обычно распределённые системы управления конфигурацией (контроль версий, базы данных, wiki -- это ведь тоже системы контроля версий для текстов!) и изменениями (issue trackers, и чаты -- тот же slack и прочие IRC для разработчиков. Issue перед тем как стать issue имеет свои две минуты вопросов в чате, и только потом оформляется как issue и далее проходит свой путь уже как task и потом notice. Управление изменениями -- наиболее мутный кусок, сюда ведь и case management входит с шаблонами кейсов и CMMN, и управление проектами, и "методологии разработки" утыкаются именно сюда).

Редактирование в таких средах в ходе разработки идёт как "руками", так и из языковых сниппетов (язык запросов к данным, он же язык программирования -- как в REPL реализация exploratory programming, так и "просто программирование"). Редактирование и (пошагово-ручная и автоматизированная) обработка данных (кода, моделей, текста, картинок и т.д.) плюс средства автоматизации этой обработки в одном флаконе. В игровых "песочницах" тоже так: что-то делается "руками", но что-то -- любовно написанными скриптами, ибо "нельзя же так долго и плохо". Но "рукам" место находится всегда, ручные просмотр/редактирование (browsing/editing) должны быть всего описания системы, равно как и исполнение (executing/evaluation) кода должны быть предусмотрены для напускания на всю мегамодель. Мегамодель aka "описание системы" тем самым -- "база знаний" по старинному определению: в ней лежат не только данные описания системы, но часть этих данных -- программы по их обработке. "Базой знаний" называли раньше базы данных, в которых хранились программы по обработке этих баз данных, каковые программы находились и вытаскивались языками запросов к базе.

Проблема, которую решает системная информатика, одна: в полноценном проекте нужно моделировать систему и при этом управлять конфигурацией и изменениями и данными. Для этого нужно сделать
-- systems framework/engine, который будет поддерживать множество разных view, для чего иметь какой-то протокол подключения разных viewpoints, репозиториев для них и механизмы exploration programming/modeling/querying плюс issue tracking, в том числе обеспечивая работу команды внутренних и внешних стейкхолдеров. Systems framework подразумевает и протокол подключения разной степени smartness и intelligence для viewpoints ("языков" -- программирования, моделирования, проектирования и т.д.) и общие механизмы smartness и intelligence для системного уровня (интеграции всех этих view и обеспечения индивидуальной и групповой работы), включая и "нейро" -- скажем, отслеживание cognitive load и помощь в управлении чиксентмихаевским потоком. У игровиков это "игровой движок".
-- мегамоделер, в который превращается systems framework путём начинки его необходимым набором плагинов, реализующих viewpoints и добавленную для этих viewpoints различную smartness и intelligence. Некоторые viewpoints могут подразумевать работу не с репозиториями данных, а с hardware (ибо речь может идти о симуляционных описаниях системы -- все эти hardware-in-the-loop). Мегамоделер настроен на описание какого-то класса систем, поддерживает необходимый для этого набор рабочих мест с предметно-ориентированными view и имеет репозиторий для хранения всех необходимых для проектов разработки этого класса систем данных. У игровиков это собственно игра, в том числе и её моды (разрабатываемые, вестимо, на движке).
-- прикладная система разработки для какой-то системы: мегамоделер, начинённый данными модели какой-то системы и содержащий необходимые для работы конфигурационные файлы для всех view и viewpoint, удобные для работы с данными моделей конкретной системы или их класса сниппеты кода, профили конкретных разработчиков и всё прочее, что отличает свежеразвёрнутый моделер от моделера, в котором уже год-два проектируется какое-нибудь нейроприложение, атомная станция или ГМО (life sciences ведь тут не исключение -- это ж "информатика", она для всех!). У игровиков это "сервера".

Конечно, таких архитектур будут тьмы, тьмы и тьмы. Впрочем, не "будут". Их уже огромное число: все эти "мультиязыковые редакторы" и "фреймворки приложений" уже есть. Так что нужно просто научиться
-- очень компактно об этом рассказывать, сравнивать такие системы между собой и находить их killer features
-- обсуждать пути их развития, обсуждать необходимо следующие из системного подхода функции, требуемые к реализации в рамках systems framework,
-- наоборот к предыдущему пункту: поскольку такие системы отражают практику, обогащать системный подход поддерживаемыми системными фреймворками не артикулированными явно новыми приёмами системного мышления, артикулировать эти приёмы мышления явно
-- обсуждать архитектуру таких систем и инструментарий для того, чтобы лучше их строить, быстрее развивать и с меньшими рисками эксплуатировать (systems framework engineering, можно ещё поглядеть, насколько это отлично от information systems engineering в классическом разделении software engineering, information systems, information technology, computer science -- см. типичные определения типа https://blog.soton.ac.uk/comp6044/2011/11/20/05-information-systems/ или разделения типа http://www.geteducated.com/careers/521-computer-information-systems-vs-computer-science или http://www.computersciencedegreehub.com/faq/difference-computer-science-degree-computer-information-systems-cis-degree/).

Это и есть системная информатика, interdisciplinary approach and means to enable the realization of successful information systems:
-- междисциплинарный -- то бишь с системным подходом в голове, множество viewpoints, оформляющие concerns самых разных stakeholders
-- обеспечение воплощения -- это инженерия, "от мысли к изменению мира, реализации"
-- информационные системы -- речь идёт о системах для описания систем
-- успешные -- системы для описания систем, удовлетворяющие нуждам множества стейкхолдеров.
Sunday, July 10th, 2016
11:50 pm
На Дерибасовской
По Дерибасовской гуляют постепенно, и сегодня я именно этим занимался утром и вечером.
Слово "Одесса" я выговариваю правильно от рождения, и тут все удивляются -- я первый москвич, которого они не поправляют. А я ведь не коренной москвич, я ж ростовчанин. Из своих 58 лет я первую половину жизни жил в Ростове-папе и Анапе, а половину в Москве. А вот жена у меня коренная москвичка, и она каждый раз, когда я поминал перед отъездом Одессу, ровно наоборот -- удивлялась, как я странно (с её точки зрения) произношу это слово. Москвичи произносят как Одэсса, повбывав бы!

Эти строчки я пишу на балкончике своего номера на Дерибасовской, в квартале от оперного театра (спасибо организаторам поездки!). Гулять постепенно вот прямо сейчас некому, ибо вместо гуляния все толпы расселилсь за столиками вдоль улиц огромными толпами, пьют пиво и глазеют на какой-то футбол, а я к этому футболу совсем-совсем равнодушен, равно как равнодушен к наблюдению за наблюдающими этот футбол. Зато вчера в пляжном True Man я побывал на афтерпати конференции по компьютерному зрению, который был совмещён с афтерпати анимефеста, плюс сегодня зашёл после работы на этот анимефест (о чём есть фотопруф: https://www.facebook.com/photo.php?fbid=10206975455650373&set=a.2079088422325.2101420.1398461359.

Развиртуализировался с некоторыми людьми из vk.ru/deeplearning, обнаружил большую тусовку людей, которые читают мой блог по пять-шесть лет, а ещё ел формшак (это ж Одесса! Москве так вообще не знают, что это такое) и пил компот из бузины. Ресторатор, который меня этим кормил-поил, оказался лингвистом, мы ещё и про лингвистику поговорили -- что всё на свете это текст, и его подход к региональным украинским кухням (мы сидели, например, в бессарабском кафе) вполне текстовый: все элементы интерьера прямо рассказывают о Бессарабии. Посмеялись, что скоро системы компьютерного зрения будут оглядывать это кафе, зачитывать текст и занудным голосом разъяснять, что там не-бессарабского! Рецепты он ездит и собирает, реальные фольклорные путешествия за текстами в казанах и сковородах (он пытался мне рассказать, что есть регионы, в которых больше в казанах готовят, и где больше культура готовки в сковородах. Я как химик согласился, что тепловые режимы там разные по толщине блюда, но вот в каких регионах одно, а в каких другое -- вот этого не запомнил). Говорит, что есть ещё деревеньки, где сохранились традиции каких-то особых блюд, вот он о таком узнаёт и приезжает отведать. А потом воспроизводит в своих кафешках. Форшмак у него совсем не такой, какой я помнил у моей бабушки по линии мамы (мама-папа уже сами форшмак не готовили) -- лук-яйца у него не мелкорезаные, а совсем перетёртые. Пообсуждали и разницу рецептов форшмака, оказалось, что бывает даже форшмак из мяса! Я проявил себя знатоком кулинарного дела, и смог даже поддержать три минуты разговора про последний всхлип московской кулинарной моды -- домашние ветчинницы. С другой стороны, я ж когда-то был совладельцем Проекта О.Г.И., так что тоже был в каком-то роде ресторатором )))

Индекс кока-колы тут -- 30рублей (три гривны) за бутылку колы-лайт (а колы зеро вообще нет). В Москве это 50 рублей.

Культурой в ассортименте в Одессе очень даже пахнет. Но на все мои попытки заговорить о культуре одесситы вежливо отвечали, что культурной столицей является Львов. Киев при этом все понимали, что не при чём вообще.

Завтра ещё полденька погуляю -- и после обеда на самолёт. Вторник уже весь расписан в Москве.
[ << Previous 20 ]
About LiveJournal.com