?

Log in

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

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

[ << Previous 20 ]
Saturday, July 2nd, 2016
12:13 am
В кулуарах премии Пятигорского
Сегодня в кулуарах премии Пятигорского (http://piatigorskyprize.ru/) пообсуждали с лауреатом этого года про выход за пределы социологии: когда он рассматривает социологию (науку) совместно с политической философией (нормативной частью), то рядом уже недалеко и до части деятельной, условно "инженерной" -- тех практиках, которые ведут к норме, опираясь на дисциплину. Собственно, рядом с политической философией можно так же представить и экономику. Австрийская школа уже как-то пыталась делать такой проект, где наука росла из праксеологии, но выросла главным образом экономика, а вот правоведение и социология не выросли. В любом случае есть какой-то подход, из точки которого нужно говорить об этих всех предметах как объектах, некий "метапредмет" (только не факт, что он будет именно предметом!). А.Филиппов согласился, и назвал себя "метасоциологом", а также согласился и с тем, что "метасоциолог" это неточно, ибо в этой точке можно говорить и о "метаполитическом философе", и о "метаэкономисте". Я же подумал, что всё это рассуждение крайне похоже на заход по построению системной педагогики: с тем же пониманием, что это всё про людей, и натягивание системного подхода на практики работы с людьми (включая особенности их дисциплин и технологий) растягивает этот системный подход практически до той точки, где он может порваться. Если системную информатику строить ещё легко, системную педагогику в разы трудней, то выходить на подход к построению системной общественной самоорганизации уже вообще непонятно как. Тут и сам подход не совсем дисциплина (системный подход не предметен в обычном смысле этого слова, хотя какие-то черты предметности в нём и есть. Он именно что "подход"), и целевая предметная область не имеет какого-то определённого устоявшегося названия.

А ещё мне Генисаретский сегодня в этих самых кулуарах книжку свою свежую 2015 года подарил "Философия проектности" (http://urss.ru/cgi-bin/db.pl?lang=Ru&blang=ru&page=Book&id=206469), с автографом (хитрым рукописным символом-знаком вместо подписи, как это у него водится). "Не есть ли развитость то же самое, что совершенство, акмэ? Если так, то стратегическое искуство -- это акмеистика, и растёт оно на почве акмеопрактик". На всякий случай: сегодня акмеология/акмеистика отнюдь не вся про оппонирующих символистам поэтов. Есть и другие использования этого слова: http://akmeology.ru/data/documents/Bodalev-i-dr.-O-zadachah.pdf (и тут некоторая помесь андрогогики за пределами образования, т.е. что делать для вывода человека на высшую степень профессионализма, если он уже не в учебном заведении, и даже угадывающееся современное толкование понятия "просветлённый" Кеном Уилбером), а у Генисаретского этот флёр "просветлённости" в его акмеологии (в варианте психоакмеологии) ещё круче -- http://prometa.ru/projects/26/6/4, и тоже на грани с религией, как и у Уилбера. И тут бабах -- "проектность"! Вот: "Стратегическая целесообразность разворачивания проектных практик -- в продвижении проектных сервисов до состояния проектной готовности каждой признанной значимой инициативы функционально эффективными и общественно приемлемыми предпринимательскими схемами". Вот такое по версии Генисаретского просветлённое предпринимательство на пути к совершенству. В этих же кулуарах Генисаретского тихо за глаза обсуждали как настоящего панка в его единстве внешнего вида, напора и культурного влияния.

А ещё все в этих кулуарах в глаза обсуждали огромный портрет Путина на стене зала, где проходило объявление лауреата и слушали его речь. Но толку от этих обсуждений никакого не будет: даю 100%, что портрет так и останется висеть, несмотря ни на какую литературную, социологическую, философскую или даже амеологическую критику. Как и любая инженерия, политика не научна, хотя при случае радостно подтянет любую доступную ей науку. Портрет будет висеть, игнорируя мнение любых учёных.
Thursday, June 30th, 2016
11:41 pm
Третий круглый стол по образованию -- фундаментальные исследования
Это мои заметки с серии круглых столов по фундаментальным исследованиям в образовании (раньше было "когнитивным исследованиям в образовании"), стол нумер три (а предыдущие были -- первый, второй-1/2, второй-2/2).

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

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

Так, К.Зискин задал оппозицию двух вариантов педагогики:
-- старинный российско-германский конца 19 века (и с тех пор не менявшийся) с делением на дидактику (чему и как учить), теорию воспитания, организацию образования.
-- англо-саксонский, в котором педагогика появляется "промеж" и "на стыках" философии, психологии, социологии, экономики и т.д. (подробнее это обсуждалось в http://ailev.livejournal.com/1272887.html), и который вполне живой, все составляющие этого разнородного коктейля up-to-date.

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

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

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

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

С типом сборки россыпи предметов/дисциплин в рамках системной педагогики у меня были жёсткие возражения на поступавшие предложения:
-- Не получится взять типовую (половина присутствующих были физиками по базовому образованию) версию системного подхода 1.0 -- хоть теорию сложности, хоть теорию комплексных адаптивных систем, хоть любую другую из родившихся до примерно 1975-1985 года, когда начали втаскивать в обсуждение стейкхолдеров и их интересы, различать описания и методы описания, удерживать в одном контексте обеспечивающую систему (систему деятельности, ЖЦ) и целевую систему. Например, у СМД-методологов все эти поминаемые сегодня на круглом столе "оргдеятельностные доски и предметные доски" -- они учитываются схемами системного подхода 2.0, но отсутствуют в классическом старинном системном подходе с "объективными системами" и упором на физикализм с его учётом людей в лучшем случае как "наблюдателей". Современный подход сразу с людьми и про людей, он не делает ошибок ранней кибернетики, которая и людей и зверей и железки рассматривала единообразно. Собственно, поэтому системный подход эволюционировал в версию 2.0 и выжил, а рядом с ним существующая кибернетика сдохла. Про системный подход в версии 2.0 более-менее связное изложение можно найти тут: http://techinvestlab.ru/systems_engineering_thinking (хотя изложение ведётся на примере системной инженерии, там не просто "системное мышление", а системноинженерное мышление. Ну, и учебник этот трудный, чтиво не слишком популярное).
-- Не получится найти один язык, кроме естественного. Не получится найти один формализм, который будет стыковать все предметные обсуждения прикладных педагогов. Общей на всех онтологии не бывает, удовлетворяющего всех формального языка быть не может, единой картины мира не бывать.
-- Придётся учитывать и наличие интуитивного лёгкого режима работы мозга (обученная нейронная сеть), и формального-логического трудного (по Канеману -- моделирование нейронной сетью логического вычислителя). В частности, чисто логической "понятийной" сборки не получится, часть сборки будет происходить прямо в деятельности, в ходе коммуникации на естественном, а не формальном языке. Это означает, что мы не можем положить в основание семиотические практики, работу с символами. Часть работы идёт в несимвольных представлениях, это нормальная человеческая часть работы. Мудрость легка, это умность даётся тяжёлыми рассуждениями при диких напрягах по удержанию внимания на проверке логичности и формальности.

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

Я на сегодняшнем круглом столе дал некоторое количество пояснений по этим пунктам, но боюсь, что меня не поняли.

Например, общей онтологии (формальной, общепризнанной upper ontology) быть не может, договориться о ней нельзя. Но общее пространство значений (не путать с пространством смыслов) -- вот это запросто, это как раз свойство натурального языка, который живёт не в головах, а "промеж голов", в паттернах речи (embeddings -- значение каждой синтаксической единицы определяется тем, в каком окружении, в каких паттернах эта единица участвует: морфемы, слова, предложения, абзацы, тексты и т.д. так и устроены, distributed morphology http://www.ling.upenn.edu/~rnoyer/dm/ вдруг получила подтверждение в работах deep learning по пониманию естественного языка). Сама идея локальных (символических) представлений проиграла в ходе исследований deep learning идее распределённых представлений (подробней про distributed representations и некатегориальные представления ссылки тут: http://ailev.livejournal.com/1228029.html). Cтарый спор когнитивистов разрешился в пользу "родной" лёгкой и интуитивной работы мозга с распределёнными представлениями против трудной "рациональной", т.е. формально-символической работой по эмуляции логического вычислителя: символическая логическая формальная работа эмулируется на универсальном нейронно-сетевом субстрате, поэтому она такая долгая и трудная.

Ещё одно важное рассуждение, так это про многоуровневость абстракций.

Сначала -- многоуровневость объективации, как я об этом рассказывал пару лет назад в Юрмале и Бекасово (пример стека объективации -- слайд 31 в http://www.slideshare.net/ailev/ss-44047771) сообществу СМД-методологов. Нельзя надеяться, что "изнутри" каких-нибудь психологии и политфилософии можно будет договориться о тамошних объектах так, чтобы системный педагог смог провести разговор между двумя профи по поводу их работы в педагогическом проекте. Нет, для этого нужно будет абстрагироваться от этих предметных дисциплин, навести формальную онтологическую многоуровневость. Так, педагогическая деятельность, чтобы быть отрефлексированной, должна использовать средства описания деятельностей, которые в свою очередь, чтобы быть отрефлексированными, должны использовать средства описания как таковые. Логические уровни по Бейтсону, все эти "мета" тоже показывают, что на "один язык, одну онтологическую картину" для сборки транс/вне/меж/поли-предметности педагогики опереться будет нельзя, "фундаментальность" расслаивается на много уровней. На каком уровне абстракции в этой сборке остановимся? На уровне системной педагогики? Но нам потребуются системный подход и методология, чтобы его определить -- и мы найдём их недостаточно развитыми. Начнём развивать -- привет, философская логика, ты тоже нужна! Уровней абстракции влёгкую обычно набирается 3-4, на каждом уровне свой "общий язык", и это "платформы" (то есть из каждого уровня абстракции удобно обсуждать проблемы смежных уровней, но не "через один" и уж тем более "через два" -- поэтому-то тексты философских логиков очень тяжело пояснять "на примерах из жизни" с минимумом абстракции, вся эта интеллектуальная механика очень тяжела и работает по-другому).

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

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

Peter Senge предложил для обучения слово "метанойя"(http://www.studfiles.ru/preview/1099624/page:4/):
Самое точное слово в западной культуре для описания того, что происходит в обучающейся организации, вышло из употребления уже несколько столетий назад. Работая с организациями, мы уже лет десять используем это слово, всегда предупреждая людей быть с ним поосторожнее при посторонних. Это слово «метанойя», изменение сознания. У этого слова богатая история. Для греков оно означало фундаментальный сдвиг или изменение, если говорить буквально, то трансцендирова-ние(«meta» — над или вне, как в слове «метафизика») сознания, ума («noia» от корня «nous» — ум, разум). В ранней (гностической) христианской традиции это слово обозначало пробуждение общей для участников интуиции, прозрение и непосредственное проникновение в суть высшего, в Бога. Весьма вероятно, что «метанойя» было ключевым словом для таких первохристиан, как Иоанн Креститель. В католической традиции это слово стало, в конечном итоге, обозначать раскаяние, покаяние, смирение («repent»).

Слово «метанойя» передает глубокий смысл слова «обучение», поскольку последнее предполагает фундаментальное изменение сознания. Когда мы говорим об «обучающейся организации», возникает проблема из-затого, что в современном языке слово «обучение» утратило свое центральное значение. У большинства людей стекленеют глаза, стоит с ними заговорить об «обучении» или об «обучающейся организации». И это неудивительно, потому что в повседневном употреблении это слово стало обозначать всего лишь «усвоение информации». «Да, я узнал об этом вчера на лекции». Но усвоение информации имеет только отдаленное отношение к действительному обучению. Бессмысленно говорить: «Я прочитал дивную книгу о велосипедных гонках и теперь всему научился».
Мы десяток лет назад развлекались с этим словом в openmeta, http://openmeta.livejournal.com/33585.html, в конце текста там христианские поговорки, которые оказывается довольно интересным при отвязке от чисто религиозной их трактовки и переходу к психопрактическим, нейролингвистическим, коннекционистским трактовкам: "метанойя -- это перемена мест полушарий", переход от вербального к интуитивно-бессознательному процессингу, "нет новаций без метанойи" -- ибо новации выдаёт многоуровневая нейронная сетка, бессознательный процессинг, а не строгое логическое рассуждение, и т.д.). Метанойя -- это формирование абстрактной модели в нейронной сетке, переход из рационального трудного эмулирования рационального рассуждения к интуитивной лёгкости за счёт скрытых от сознания абстракций, полученных в ходе учёбы интуиций.

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

В какой-то мере эта "антиметанойя" как умение, как "антиобучение" (воссоздание учебника-задачника-методички из состояния "наученности", хотя и "наученности не по учебнику", а для этого формализация/онтологизация/моделирование какой-то сферы человеческого опыта) затрагивается и в образовательной программе Selmer Bringjord (http://ailev.livejournal.com/1059168.html). Он считает, что поезд классического образования STEM ушёл (т.е. что молодое поколение совершенно справедливо считает, что рок-н-ролла в том, чтобы стать физиком или математиком уже нет, прошли те времена, когда это было круто). Но он считает, что в любом гуманитарном предмете есть что-то, что связано с формальным знанием, т.е. требует знания логики. А логика лежит в основании всего комплекса наук STEM -- будь то математика (конечно, Selmer Bringsjord логицист), физика или компьютерная наука (которую просто сделали логики, если вспомнить, как всё это начиналось). Предложение затем следует простое: отказаться от дорогостоящей рекламы физики, математики и т.д., которая сейчас осуществляется бюджетом, но потребовать, чтобы ни одна степень бакалавра arts или science не выдавалась без получения фундаментального курса по формализации той дисциплины, в которой учится студент. Если это музыкант, то пусть предъявит знание формализации музыки (компьютерная ли музыка, или логика музыкальной композиции) -- и так далее по всем специальностям. То есть вычёркиваем из STEM всё, кроме математики, математику сводим к формализации (т.е. логике, "формальным методам") и патерналистски требуем не выдавать дипломов тем, кто этими формальными методами хоть как-то не владеет.

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

Более того, я думаю, что есть и коннекционистская проблематизация самого системного подхода -- http://ailev.livejournal.com/1252230.html (нужны рассмотрения "выращиваемого", а не только "собираемого": холонность подразумевает отношения часть-целого, отношения сборки. А в коннекционистских представлениях ведущий другой тип отношений, нужно делать третью версию системного подхода, охватывающую и коннекционистские воплощения и определения системы. Кстати, все эти поминаемые на сегодняшнем круглом столе "самоорганизации" в сложности -- это ж тот самый коннекционизм, между элементами коннекционистской системы отношения сборки, но эмерджентные качества оказываются абсолютно "несборочными", то есть не как в инженерных системах модули и компоненты оказываются по большей части 1:1, совсем нет). Вся педагогика, она про "выращивание", а не сборку. Таблеток знаний и ценностей нет.
Tuesday, June 28th, 2016
8:11 pm
Образование по computer science для начинающих
Есть три главные проблемы в образовании по информатике для начинающих:
-- практически не уделяется внимания образованию в части структур данных. Всё начинается алгоритмикой, и заканчивается ей. При разговорах с преподавателями какая-нибудь "структура Паскаля с пятью полями", "двумерный массив" и "магазин" -- это потолок. Объект-ориентированность идёт лесом, другие варианты жизни (функциональное программирование, multiple dispatch) идут тем же лесом.
-- вы можете заниматься два-три месяца, после чего должны ждать много лет (и программировать на одном уровне грамотности, если уж совсем невмоготу ждать и пальцы чешутся), и так будет несколько раз. Ну, или вы можете начинать сразу с восьмого класса и игнорировать более младшие возрасты, тогда всё будет более-менее непрерывно по нарастающей.
-- с выбором языка, учебников, задач и всего остального у вас будут проблемы.

Образование "сержантским методом" подразумевает решение многих мелких задач и довольно таки эффективно -- собственно, обучение физике и математике примерно так и устроено. Много мелких задач довольно легко игрофицируется. Но для этого нужно "всего ничего": online judge и последовательность задач с учебником.

Вот примерный "жизненный цикл" образования в computer science для начинающих (примерно по первый курс ВУЗа):

-- для дошкольников и начальношкольников можно использовать http://www.piktomir.ru/. Отличный и быстрый старт, правильная постановка задач, обучение именно алгоритмике. Автоматическая проверка выполнения заданий есть.
-- дальше проблема: если у вас детка, то он не знает ещё математики, а вся "школьная алгоритмика" активно использует знание математики. Вы можете, например, использовать КуМир (мой отрок прошёл этот путь летом между вторым и третьим классом), там есть набор задач, который при последовательном их предъявлении составляет вполне полноценный курс: http://server.179.ru/wiki/?page=DenisKirienko/Kumir. Этот оказывается вполне хорош, потому как КуМир уже текстовый, а не тайловый. Проблема в том, что с 14 темы там уже плавающие (которые проходят по математике только через несколько лет -- где-то в шестом классе), и дальше количество используемых знаний по математике и геометрии (исполнитель "Черепаха") стремительно нарастает. Но до пункта 13 всё можно пройти и второкласснику, проверено. И это ой-ой сколько. Вот пример реальной работы моего отрока в 2012 году (начало 3 класса): http://aalev.livejournal.com/1122.html. Альтернативы: прежде всего Scratch, и там рисовать разные мультфильмы и простейшие игры. Основная проблема: без учителя никуда, проверка заданий отсутствует.
-- тут идёт огромная пауза, поскольку дальше всё интересное начинается только с восьмого класса: курс алгоритмики на Питоне, тоже с автоматической проверкой задач -- http://informatics.mccme.ru/course/view.php?id=156. По объему он только слегка больше, чем курс на том же КуМире, но требует знания математики уровня восьмого класса. Есть видеолекции (довольно скучные) и текстовые шпаргалки. То есть это таки "дистантный курс". Дальше можно тренироваться в этой ползьбе до уровня олимпийских чемпионов (например, на ресурсе https://acmp.ru/). В принципе, такого сорта курсов для разных языков сейчас много, просто Питон представляется мне выбором получше, чем Паскаль или Си для образования по информатике. И на этом уровне можно спокойно заканчивать: вся школьная система заточена на "олимпиады по информатике", для них больше ничего не нужно знать.
-- дальше можно пытаться рассказать о собственно computer science. Если вы идёте по линии Python, то можно использовать книги со встроенной системой визуализации исполнения: по которому переделали его со Schema на Python — вот примеры книжек с исполняемыми кодами: http://interactivepython.org/courselib/static/pythond.. и http://composingprograms.com/, https://wizardforcel.gitbooks.io/sicp-in-python/conte.. (это SICP-на-Питоне). Альтернатива -- гарвардский CS50 (там не Питон, а Си и PHP, тем не менее) — https://newtonew.com/news/harvard_cs50_in_russian (оригинал https://www.edx.org/course/introduction-computer-scie..). Основная проблема всего этого счастья: нет проверки исполнения, никакого online judge. Компьютерная программа хороша тогда, когда она берёт входные данные, и выдаёт на их основе правильные выходные данные — с учётом разных граничных вариантов. При этом сами варианты обычно остаются неизвестными ученикам (в отличие от тестов, которые нужны для отладки программ, тут тестируется понимание учеников). Такие системы, например, могут сказать тебе: "программа прошла 8 из 10 тестов", но не сказать, какие были при этом входные данные — ты должен думать сам. Это даёт возможность одному учителю сработать с классом из 20 учеников, или занятому родителю с классом из одного своего отпрыска — время уходит при этом больше на объяснения и преодоление затыков, чем на рутинные проверки правильности решений. Вот этого-то и нет на этом уровне.
-- дальше идут самые разные курсы прикладные курсы: биоинформатики http://rosalind.info (с онлайн проверкой и каким-то учебником, тоже Питон), или "ноутбуки" курсов по математике (вот для примера курс современной линейной алгебры на Julia -- https://github.com/ivanslapnicar/GIAN-Applied-NLA-Course, но онлайн проверки тут нет, хотя есть assignments, то бишь задачи).

В эту экосистему прорваться не так просто. Так, вы можете решать задачи из http://informatics.mccme.ru/course/view.php?id=156 на Питоне, Си, Паскале, Руби, Джаве и даже Хаскеле. Online Judge вполне на месте, на любом из этих языков (а для некоторых языков возможно использовать и разные версии языка -- питон 2.7 и 3.5, например). Но это только один курс, перед ним и после него -- огромные дыры в части учебной инфраструктуры.

Например, что нужно сделать для использования Julia в качестве учебного языка? На нём ведь довольно много курсов численных методов (ссылки тут: http://ailev.livejournal.com/1271980.html), поэтому почему бы с него не начинать? Потому что для этого нужно было бы:
-- подправить для Julia какой-то "базовый курс" типа того же курса Кириенко для Питона для восьмиклассников. Это недолго, задачи там будут практически теми же самыми, но лекции и тексты придётся переделать, по факту написать книгу. И это совсем не похоже на текущие учебники Julia на русском (вот например, выходит через пару недель: http://dmkpress.com/catalog/computer/programming/978-5-97060-370-3/ -- но там Mastering Julia, то есть уже предполагается некоторое знание языка).
-- для Julia сделать какую-то визуализацию исполнения, как для Питона. Можно, конечно, использовать готовящийся к выходу отладчик, но вряд ли он будет удобен именно для учебных целей.
-- изготовить online judge и тестовые наборы к задачам.

Если же идти по этой линии дальше, то нужно будет:
-- переработать на Julia курс SIPC так же, как в 2010 его переделали со Schema на Python
-- сочинить какие-то задачки, которые можно проверять автоматически (что уже сомнительно)

Это всё малоподъемно. Так что текущим наиболее приспособленным для обучения computer science языком является Python -- при всех недостатках. С его использованием можно идти и дальше: в биоинформатику, в тьюториалы-ноутбуки Jupyter для deep learning, в численные методы и т.д..

Всякие же дискотеки (курсы на основе игровых движков, например подхакивание Mincraft) тут не проходят. Я уже спрашивал тут в ЖЖ совета по поводу образования в computer science, получил много советов "побольше кодировать всяких задачек, поменьше знать". Я не возражаю против программирования, программной инженерии и всего такого вокруг игр -- связь теории с практикой, конечно, важна. Но мне нужно:
-- освоение теории, не просто кодирование, а программирование с использованием теории
-- по-возможности, чтобы этот тренинг проходил без дорогого времени учители и родителя.

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

Я это обнаружил только потому, что у меня отрок потихоньку растёт, и я пытаюсь дать ему образование в computer science, причём с экономией собственных усилий. Но если бы я занимался именно образованием "как учитель", то тоже бы концентрировался
-- на подготовке к олимпиадам, ибо "все так делают", олимпиады неплохая игрофикация. Но они не требуют широкого знания computer science, метапрограммирование для олимпиад маргинально, особенности объектного и функционального программирования можно не проходить
-- одном каком-то этапе жизненного цикла ученика: "вокруг ЕГЭ" или "дошкольная информатика", или "первый курс ВУЗа". И, конечно, ни о каких связках между этими курсами, ни о каких разрывах в годах и годах между этими курсами, я бы не думал.

А если брать не computer science, а информатику в целом (http://ailev.livejournal.com/1008054.html), включая машинное обучение (это ж тоже должно входить в грамотность! это ж тоже нужно со школы учить!), и добавить сюда системный подход и азы системной информатики (http://ailev.livejournal.com/1272169.html, http://ailev.livejournal.com/1273208.html, http://ailev.livejournal.com/1274210.html), то всё становится ещё хуже и неподъемней. "Компьютерной грамотности" сегодня обучают из рук вон плохо, обрывочно и это обучение очень плохо поддержано технологически. У восьми нянек жизненный цикл такого обучения получается без глазу, носу, зубов и почти всего остального.
2:15 pm
Практика системной информатики
Если кратко и без нюансов, то системная информатика -- это практика (наука/дисциплина и технологии/софт) многоуровнего множественного описания системы. Я писал о ней подробней тут: http://ailev.livejournal.com/1272169.html

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

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

Дисциплина -- это какой-то теоретический аппарат, набор основных понятий, опирающийся на понятия системного подхода в части описаний систем (если грубо, то дисциплина работы с альфой определения системы из Systems Engineering Essence -- см. системную схему проекта, например, в варианте http://ic.pics.livejournal.com/ailev/696279/103958/103958_original.png). Основная диаграмма тут -- модифицированная для всех видов описаний (а не только архитектурное) из ISO 42010 -- http://ic.pics.livejournal.com/ailev/696279/104932/104932_original.png

Основная технология -- это мегамоделирование, поддерживаемое мегамоделерами, многоязычными групповыми IDE (http://ailev.livejournal.com/1273208.html). Сами мегамоделеры базируются на инфраструктуре, поддерживающей множество viewpoints и view (алгоритмическими, данными в XML или JSON, онтологическими, текстовыми-с-синтаксисом, фото-видео-адио, 3D-модели и т.д.) и мэппинги между различными форматами данных. Базовый софт для мегамоделеров (так сказать, "мегамоделер без моделей") -- system workbench, по аналогии с language workbench, которые должны были стать инструментами для создания IDE для разных DSL. Так и тут: system workbench должны стать инструментами для создания мегамоделеров (см. дискуссию к посту по ссылке в этом абзаце), удобных для различного рода систем: инструментами комплексирования множества реализаций viewpoints для документирования описания какого-то класса систем.

По системной информатике нет образования. Учат computer science (алгоритмы и структуры данных), учат архитектурам софта, учат многоуровневости определений данных и программ (формальным спецификациям) в ООП, кое-где учат онтологиям и моделированию данных, даже учат DDD (domain driven design). Нигде не учат многоуровневым многоаспектным описаниям и работе с ними под контролем конфигурации -- немного касаются этого в курсах системной инженерии, но и там для программистов больше делают акцент на практики системной инженерии для "железных" систем, а не на системное мышление. Для разворачивания образования нужно:
-- формулирование профиля компетенций (что-то типа GRCASE для системной инженерии -- см. ).
-- формулирование предмета/дисциплины (серии моих постов тут явно маловато. Нужно делать какой-то учебник).
-- разворачивание какой-то учебной технологии, system workbench (ибо побеждает не дисциплина, а практика: обёрнутая в удачную технологию дисциплина. Плохая технология предаёт дисциплину забвению, идеи умирают легче, чем хорошо работающий софт).
-- подготовка набора задач и проведение практических работ по а) разработке/доработке мегамоделеров, methodology realm и б) работе с ними в условиях целевых рабочих проектов, endeavor realm.
-- дидактика: как и в каком порядке всё это воплощать в учебных курсах?
-- сообщество системных информатиков, рефлексирующих практиков. Если не будет практикующих, то всё это ненастоящее. Тут нужно учесть, что NCOSE появилось только в 1990, хотя практика системной инженерии много раньше. Но тогда ещё не было ни web 1.0, ни тем более web 2.0, всё было в социальном плане медленно.

Это всё легко написать, но очень трудно сделать -- возможно, это займёт несколько лет.

Нужно показать систему разделения труда в системной информатике, её подпрактики. Где кончается системная информатика и начинается просто программная инженерия (как в системной инженерии на V-диаграмме показывают, где начинаются и где заканчиваются системноинженерные практики). Лет тридцать назад (в конце 80-х) в СССР было некоторое неформальное обсуждение вопросов "системного программирования", которое понималось как строительство прежде всего компиляторов, баз данных и прочего "системного софта" (и системных компонент, например тех же баз данных и компиляторов в прикладном софте: все же помнят, что "любая достаточно развитая программная система с какого-то момента начинает включать в себя кривой и неразвитый Common Lisp").

Но это "системное программирование" в те времена дико путалось ещё с "системным администрированием". На одной из тусовок "системных программистов" в Киеве где-то году так в 1989 родилось определение "системный программист -- это тот, кто всё время дискетки копирует", и это было правдой: системные администраторы и системные программисты в те поры практически не отличались, но точно занимались не тем, чем прикладные программисты с их вгрызанием в прикладную предметную область. Системные программисты вгрызались именно в computer science, а не прикладные предметы, но вот что все свои инструментальные системы они потихоньку ведут к мегамоделеру -- это явно не отслеживалось. А инструментарий для построения инструментария, все эти YACC и СУБД в целокупности состявляющие system workbench -- это даже не обсуждалось. Всё было ad hoc, и слипалось потом причудливо в самые разные "системы", общность функционала и архитектуры в которых было уж не разглядеть.

То, что "системный софт" как-то отличается от "прикладного софта", отражается даже в ArchiMate -- он моделируется в "оборудовании", а не "софте" (ибо он не прямо поддерживает деятельность людей, а поддерживает работу прикладного софта) -- http://pubs.opengroup.org/architecture/archimate3-doc/chap10.html#_Toc451758049. "This can be, for example, an operating system, a JEE application server, a database system, or a workflow engine. Also, system software can be used to represent, for example, communication middleware".

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

Что же касается моделирования и онтологизирования, то computer science (за исключением странных эпизодов типа Simula 67) и software engineering вообще их не считают "своими" -- и те болтаются практически бесхозными. А уж комплексное моделирование-онтологизирование будущей системы (т.е. конструирование-проектирование) так вообще "чужое", а ведь это всё про одно и то же -- создание многоуровнего множественного описания системы различными средствами. Сборка всех частных описаний (view, каждый под своим viewpoint) в общий system description -- этим ни одна из дисциплин не озабочена. Так, modeling-in-the-large вообще не обсуждается (иногда как "коллаборативное проектирование"), и эта дискуссия совершенно отдельна от очень редких обсуждений programming-in-the-large -- http://www.cs.umd.edu/class/spring2005/cmsc838p/General/pitl.pdf, https://en.wikipedia.org/wiki/Programming_in_the_large_and_programming_in_the_small, пункт 2 в http://ailev.livejournal.com/1122126.html про "птолемеевкую модель кода", и много чего ещё из этой серии. Всё это появляется в силу наличия многих стейкхолдеров со многими интересами, плюс необходимости сочетать работу над целевой системой с жизненным циклом (т.е. заниматься работой обеспечивающей системы), т.е. это всё системная информатика.

Все отдельные дисциплины плывут к пониманию необходимости множества "veiw" как бы "в бессознанке" -- и поэтому главная сейчас задача это внесение осознанности. Нужно построить основные понятия системной информатики и предложить терминологию, в которых консистентно и компактно можно обсуждать единство программирования, моделирования, онтологизирования, проектирования. Тут явно не пустое место, но сборку разбежавшегося по разным дисциплинам и технологиям, сборку по редко встрачающимся в жизни друг с другом практикам -- эту сборку сделать нужно.
Monday, June 27th, 2016
11:58 pm
Глубина (скрытое измерение) в языке
Ещё одна работа, объясняющая успех RNN в понимании естественного языка (и неуспех марковских цепей) по линии "физичности": "Critical Behavior from Deep Dynamics: A Hidden Dimension in Natural Language", http://arxiv.org/abs/1606.06737

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

В статье много интересного, крайне рекомендую. Вот ещё ряд ссылок на предыдущие материалы по пониманию "почему оно всё работает":
-- DARPA Fun LoL (запрос на математическую меру пределов обучения, типа шенноновской меры информации для пределов передачи информации): https://www.fbo.gov/utils/view?id=933e5aa90007234da5cc8c38615b8cc3. Это может быть интересно, ибо в работе про Critical Behavior говорится "How can we know when machines are bad or good? The old answer is to compute the loss function. The new answer is to also compute the mutual information as a function of separation, which can immediately show how well the model is doing at capturing correlations on different scales". Мне кажется, что это заход на то, что спрашивается в Fun LoL.
-- http://ailev.livejournal.com/1197148.html -- там много ссылок на связь математики для физики и глубокого обучения, в том числе математика спиновых стёкол (в статье как раз приводится "The measured curves are seen to be qualitatively similar to that of a famous critical system in physics: a 1D slice through a critical 2D Ising model, where the slope is -1/2").
-- пересказ лекции Yoshua Bengio по теоретическому обоснованию их выразительной силы: http://rinuboney.github.io/2015/10/18/theoretical-motivations-deep-learning.html.
-- подборка "объяснительных" по работе глубоких сетей: https://vk.com/topic-44016343_33675473 (там залежи литературы).
-- совместное рассмотрение рекурсивных грамматик и уровней абстракции слоёв нейронной сетки для меня затрагивает и тему связи локальных символических представлений и распределённых (коннекционистского и символического подходов), вот тут разнообразные ссылки на эту тему: http://ailev.livejournal.com/1238045.html, вот тут ещё http://ailev.livejournal.com/1236426.html и дубль части этих ссылок с добавлением ещё кое-чего в http://ailev.livejournal.com/1266905.html

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

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

Второе, что мне стало любопытно, вообще не связанно с deep learning. Я бы сравнил естественные языки и языки программирования/моделирования по предложенной метрике. В статье говорится, что степень у всех естественных языков где-то -1/2, и это уже само по себе интересно: степень-то может быть в разных языках абсолютно разной! Вопрос: а в искусственных языках какая степень? А связана ли эта степень с успешностью/популярностью языка хоть как-то? Это ж какой был бы критерий "похожести" искусственного и естественного языка, подстраиваемый к естественным языкам! У кого-то есть развёрнутые корпуса текстов и удобная считалка? Может, кто-то сосредоточится и посчитает?
Sunday, June 26th, 2016
11:09 pm
Интеллект не пахнет
Ну вот, робо-аболиционисты социалистического толка нашлись в европарламенте(http://www.europarl.europa.eu/sides/getDoc.do?pubRef=-//EP//NONSGML%2BCOMPARL%2BPE-582.443%2B01%2BDOC%2BPDF%2BV0//EN -- версия проекта с рекомендациями для Commission on Civil Law Rules on Robotics, поправки принимаются до 25 октября 2016, http://www.europarl.europa.eu/committees/en/juri/draft-reports.html):
-- каждая достаточно развитая электронная личность должна быть поставлена на учёт (про нашивку на одежду пока ничего не говорится)
-- компании, их эксплуатирующие, тьфу, нанимающие, могли бы платить за них налоги и социальное страхование. Ибо социальная справедливость иначе страдает.
-- нужно лицензировать изготовителей роботов
-- нужно лицензировать пользователей роботов
-- ... много ещё интересного

Это пока только проект отчёта законодательного комитета европарламента, всё там в сослагательном наклонении. Этот проект готовится Mady Delvaux(http://www.europarl.europa.eu/meps/en/124776/MADY_DELVAUX_activities.html), она член группы прогрессивного альянса социалистов и демократов в европарламенте. Кому, как не ей могла прийти мысль об освобождении нового рабочего класса? Признать личностью, зарегистрировать и обложить налогом во имя равенства!

В европарламенте в этом комитете много уже чего делается по цифровой части -- http://www.europarl.europa.eu/committees/en/juri/home.html. Вот, например, отчётик по законодательным последствиям цифровизации бизнеса: http://www.europarl.europa.eu/RegData/etudes/IDAN/2016/556961/IPOL_IDA(2016)556961_EN.pdf (разработчикам очередных DAO будет небезынтересно ознакомиться).

Хотя я понимаю, какие там европарламентские роботы, когда у нас фестиваль Brexit ещё не кончился!

Компании, занимающиеся роботами, пока особо на эти проекты не реагируют. Но законодательный поезд уже тронулся и пошёл, деятели роботехники бегут впереди разгоняющегося паровоза.
9:54 pm
lytdybr
Марию Магдалену причислили к апостолам. А то ведь нехорошо: она была аж "апостол апостолов" (ибо именно она принесла весть про воскресшего Христа остальным мужикам, они стали вторым траншем) Папский престол ВНЕЗАПНО заметил ошибку, и с июня 2016 у женщин есть свой представитель в апостолах, а Марии Магдалене сделали соответствующий новому рангу праздник: the liturgical celebration of this woman should have the same level of festivity given to the apostles in the General Roman Calendar, and that the special mission of this woman be highlighted, as an example and model to every woman in the Church -- это в пресс-релизе http://press.vatican.va/content/salastampa/en/bollettino/pubblico/2016/06/10/160610c.html. Ну да, мужикам в Церкви пример были мужики, у них уже пару тысяч лет назад и так всё хорошо было, а у женщин примера не было. Теперь есть. Сколько лет нужно Церкви до признания, что Мария Магдалена может быть примером и для мужчин?!

Число выкинутых мной "на потом когда-нибудь" табов в OneTab сейчас 1022 и ещё штук тридцать-сорок открыто. Как есть window shopping, так есть и window reading -- это про меня. Нужно завязывать писать и начинать читать. А то чегой-то я в последнюю неделю расписался: многабукофф выходят из меня один за одним, на самые разные темы. Хоть кто-то это читает? Кому-то пригодилось? Я давно заметил: чем серьёзней и длинней текст, тем меньше обычно на него реакция. Эпоха фельетона закончилась, началась эпоха твита.

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

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

Он сегодня-завтра заканчивает алгебру восьмого класса на уровне физматшколы (на уровне "просто школы" это было давным-давно). Алгоритмика у него идёт в день по чайной ложке, из "императивного питона" (до специфики ООП) у него остались из тем только словари да множества, остальное всё пройдено -- вот прямо сейчас проходится мимо работа с файлами. Так что информатика восьмого класса (уровня физматшколы -- это ж курс Кириенко для 8 класса 179 школы был) тоже до конца июня закончится. А дальше будут типы данных и алгоритмы -- вот тут придётся попотеть. Пока я склоняюсь продолжить с книжками http://interactivepython.org/courselib/static/pythonds/index.html и http://composingprograms.com/, https://wizardforcel.gitbooks.io/sicp-in-python/content/index.html (это SICP-на-Питоне). Вчера мне дали ссылку на гарвардский CS50 (там не Питон, а Си, тем не менее) -- https://newtonew.com/news/harvard_cs50_in_russian (оригинал https://www.edx.org/course/introduction-computer-science-harvardx-cs50x). Может, и его тоже нужно будет сделать. Языков программирования в активе отрока должно быть много, а одни и те же базовые идеи должны быть пройдены несколько раз.

Побочный эффект от образования отрока -- я сам каждую пару дней сейчас пишу десяток строчек на Питоне. Хотя хотел бы на Julia. Но это уже у меня блажь.
7:34 pm
Каким бы мог быть мегамоделер
Мультимодель -- это совокупность моделей всех частных описаний (view) из полного системного описания (system description). Мегамодель была изначально введена как онтология для model-driven engineering (model driven engineering, https://en.wikipedia.org/wiki/Model-driven_engineering, а сам термин из статьи 2004г. http://www-adele.imag.fr/Les.Publications/intConferences/SETRAa2004Fav.pdf). Вся эта "моделеориентированная инженерия" всё никак не взлетит, ибо моделировать на хорошем языке программирования (текстовом!) оказывается обычно не хуже, чем на хорошем языке моделирования -- но без этой головной боли по переключению между самыми разными парадигмами моделирования, моделерами, IDE и т.д.. Поэтому позаимствуем слово и чуть-чуть подправим его значение: мегамодель у нас будет совокупностью системного описания и оформляющих интересы стейкхолдеров методов описания (viewpoint, главным в котором являются метамодели aka спецификации языков описаний, языки описания метамоделей и так далее "до самого верха" абстракций). Коннективистские модели добавляют сюда пикантности и непоняток, но и с ними разберёмся, чуть попозже. Итого: сумма всех view и viewpoint системы (включая оригинальное намерение авторов термина -- включая view и viewpoint на сами эти термины veiw и veiwpoint) -- это и есть мегамодель.

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

Я уже делал заход на формулирование критериев оценки софта для моделирования в http://ailev.livejournal.com/1041274.html. Сейчас же я попробую более подробно прописать, как мог бы выглядеть мегамоделер с позиций системной информатики.

Первый же постулат -- поскольку речь идёт о программировании-моделировании-онтологизировании-проектировании, мегамоделер должен совмещать функции:
-- редактора формальных текстов [vim, atom], графового редактора [yEd], табличного редактора [Excel], редактора неформальных текстов с картинками [Word, PowerPoint]
-- моделеры, [Meta-edit, Eclipse EMF, классические UML/SysML моделеры]
-- мэпперы [наш редактор онтологий dot15926]
-- 3D моделера [NX, CATIA, Inventor], 2D моделера [Photoshop, Illustrator]
-- IDE языка программирования, [IntelliJ, тот же Eclipse]
-- математического пакета [Matematica, Jupyther, MATCAD, SimuLink, Modelica]
-- PLM, ALM [ENOVIA, Teamcenter, Jazz и даже GitHub, отчасти и Simantics в части работы с метаданными -- всё, что про управление конфигурацией и изменениями, а в силу этого про интеграцию данных и мастер-данные]

Весь этот зверинец ползёт в сторону обеспечения мегамодели, которая состоит в том числе из множества view в различных viewpoint, правил их комплексирования и трансформации. Мы понимаем при этом, что речь идёт и о программах, и об онтологиях, и о "просто моделях" -- описания системы могут оказаться текстами, трёхмерными моделями, факт-ориентированными и объектными диаграммами, а также алгоритмами на языках программирования или языках мэппинга и запросов. Как нам сделать такой софт, который вытянет весь этот зверинец? А ещё лучше -- не сделать, а просто взять готовый!

Прежде всего, мы видим, что весь помянутый софт медленно дрейфует в этом направлении поддержки системной информатики, в направлении унификации мегамоделирования-мегапрограммирования. Главные тренды в нём:
-- многоязыкость "из коробки" (Atom настраивается на разные языки, Eclipse поддерживает разные языки, Jupyther имеет разные языковые ядра]
-- программируемость "снизу доверху" [атом определяется как hackable text editor, даже Word программируется на Visual Basic, в .15926 консоль Питона выведена на переднюю панель]
-- разделение редактора-фронтэнда и PLM/ALM бэкенда [раньше редактор держал всё "внутри себя"], и уж как минимум стыковка с системами ведения версий [git] и issue trackers [это реже, но и тут полно "плагинов к Redmine" или чего-то подобного]
-- хитрая вёрстка разных view (в том числе view для viewpoint -- всякие справки, палитры и т.д.): от одного окна к нескольким синхронизированным, к окнам-ноутбукам с множеством ячеек. Алан Кей давно говорил, что приложения скоро будут верстаться -- вот это оно.
-- облачность и распределённость (аспект location для инструмента), в том числе распределённые репозитории и реестры http://ailev.livejournal.com/1259878.html подсистем управления конфигурацией и изменениями
-- возможность коллективного редактирования [Google Docs, Autodesk Fusion]
-- проход на поздние стадии жизненного цикла (стык с софтом DevOp, поддержка testing и deployment)

Для меня тут выделяются (коммерческие продукты я пока не рассматриваю, но там тоже кое-что в этом направлении делается):
-- Eclipse (платформа, поддерживающая и классические программистские IDE, даже Julia -- http://juliacomputing.com/blog/2016/02/06/Eclipse-JuliaDT.html, даже Modelica -- https://www.openmodelica.org/doc/OpenModelicaUsersGuide/latest/mdt.html, и чисто "редакторы моделей" -- тот же Archi как раз отсюда). Монстр, поддерживает вёрстку множества различных view, обслуживающих разные viewpoint в рамках одного приложения "из коробки". Только что вышел очередной релиз Eclipse, Neon -- https://www.eclipse.org/neon/noteworthy/. Тяжёлый и универсальный инструмент.
-- Jupyter, поддержка не столько "многооконности", сколько "многоклеточности" в рамках одного окна -- зоны комментариев, кода, input и output вполне себе верстаются в рамках одного view на язык. Сам же framework хостит уже более 40 языков вычислительного компьютинга. Это лёгкий и нацеленный на вычислительные модели инструмент для вычислительных приложений (interactive data science and scientific computing).

Честно говоря, наш .15926 тоже развивался в эту сторону "универсальной платформы мегамоделирования", только всего там было мало: основной язык один, разделения на бэкенд и фронтэнд не произошло (но revisions и merges поддерживались), разнообразие view было предусмотрено, но по факту реализовалось хорошо только "бесконечное дерево" для представления графов онтологий -- https://github.com/TechInvestLab/dot15926. Получился такой "эксель для онтологий", программировать работу с данными в котором можно было влёгкую из Питона, а данные были не столько табличны (хотя с Exel там был реализован стык!), сколько онтологичны -- триплы. Замысел же был -- наращивать число доступных view в других представлениях (кроме табличного и онтологического, работать с просто текстами, и дальше по всему списку потребностей -- архитектура позволяла, разве что язык программирования при этом должен был быть Питоном).

Интересно, что моделеориентированность (все эти model-driven engineering, architecture, programming и т.д.) не выживает по факту. Архитектурные графические языки по большому счёту маргинальны, исполняемые архитектуры маргинальны, графические standalone DSL оказываются маргинальны -- и потому что самих архитекторов мало, и потому как блок схемы при росте объема кода становятся неконкурентоспособными по сравнению с текстами. А в текстовых языках выигрывают
-- либо регулярные способы представления кучерявых данных (базы данных, безо всяких претензий на "специальный графический язык" или даже "специальный удобный текстовый язык"), если обработки рутинны и однообразны (они уходят в код "бизнес-логики"),
-- либо регулярные способы представления кучерявых обработок (программы, возможно на расширяемом языке программирования, возможно и с доступом к базе данных со сваянной "на коленке" схемой).

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

Остались ли DSL? Да, остались -- но тренд на их "особость" и разнообразный инструментарий по их созданию сошли на нет: языки продолжают плодиться, а вот language workbenches стухли (похоже, что гонка на http://www.languageworkbenches.net/ закончилась в 2014, про intentional programming тоже мало кто вспоминает -- https://en.wikipedia.org/wiki/Intentional_programming). Многоязыковость царит, но DSL оказались внутренние (вмазанные в расширяемый хост-язык), в сочетании с развивающимися активно платформами вёрстки множества view для разных viewpoints, которая была описана выше -- а все средства автоматизации по созданию языков, компиляторов и редакторов ушли немедленно внутрь этих платформ. Standalone не выжили ни DSL, ни средства их создания: каждый DSL оказался втянут в экосистему, где его пишут (руками или другим кодом), он сам вычисляется-оценивается на каких-то данных (которые тоже откуда-то берутся в каком-то формате), и при этом порождает тоже какой-то вывод (код, или данные). А средства создания оказались втянуты в необходимость поддерживать все эти окошки-окошки или ноутбуки, фронтэнды, бэкенды и т.д. в современных мегамоделерах (где существенная часть моделей оказалась программными исполняемыми моделями на полнотьюринговых языках, а другая существенная часть моделей оказалась моделями в базах данных -- в том числе разных вариантах NoSQL базах).

Теперь нужно поглядеть на пост про системную информатику (http://ailev.livejournal.com/1272169.html) и подумать: куда этот весь инструментарий программирования-моделирования-онтологизирования тащить? Чего не хватает для поддержки системного подхода в информатике?

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

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

Можно идти "снизу" (например, IPython, который пошёл в Jupyter в сторону поддержки коллаборации и многоязыковости -- но в котором не так всё просто с поддержкой множества viewpoints, даже если cells в ноутбуке объявить view, то потом не так просто их модифицировать на ходу -- Eclipse тут сто очков вперёд даст), можно сверху (монструозный Eclipse, который уже перераспух и испытывает все ужасы работы с legacy архитектурой и кодом -- но в котором "окошки" отличненько верстаются и уживаются IDE и моделеры и среда их разработки, но и ему тяжело дотянуться до ALM/PLM поддержки, она сейчас всё больше standalone), можно сбоку и сикось-накось.

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

Что тут ещё нужно учесть, чтобы жизнь мёдом не казалась?
-- часть моделей это фото (растровые!), а часть моделей это текст на естественном языке, и поэтому потребуется работа с распределёнными представлениями, нейронные сети и прочие не слишком привычные view. Хотя в ноутбуках Jupyter с этим как-то приноравливаются работать, но там ещё не началась работа с view-viewpoint внутри самих сеток, см., например http://ailev.livejournal.com/1266411.html как шаги ровно в этом направлении нахождения view-viewpoints "внутри сеток". Да, сетки не модульны, но что-то там аналогичное модульности есть, это придётся поддерживать в софте: view в распределённых представлениях будет делиться на какие-то модели в распределённых же представлениях, ансамбли этих моделей и их отладка-вёрстка при разработке тоже могут потребоваться.
-- внутри там должны жить ещё и персональные и групповые агенты-помощники (от предложений автокомплита http://ailev.livejournal.com/1269236.html и предупреждений о конфигурационных коллизиях до более интересных функций: http://ailev.livejournal.com/1254114.html, вплоть до работы на нейроинтерфейсах по замеру когнитивной нагрузки http://openmeta.livejournal.com/236784.html и далее по линии openmeta и нейронета.

Но это всё бантики и заделы на будущее, пока и без этого интересно.

Упражнение "как мог бы выглядеть снаружи (требования) и изнутри (архитектура) мегамоделер с опорой на SysMoLan" я предоставляю читателям. Можно представить SysMoLan как набор расширений для Julia, можно считать что это просто набор всего доступного в языковом плане (а хоть и SysML), собранное в кучку, можно говорить о развитии Modelica и исполняющих её сред во все стороны сразу, можно универсализовать представление view в каком-то из инженерных САПР (а хоть и в Inventor -- мне уже приходилось как-то обсуждать такое). Выборов много, но данный пост предоставляет критерии и рамки для оценки таких выборов, а пост про системную информатику http://ailev.livejournal.com/1272169.html представляет собой критерии и рамки для оценки текущего поста.
Saturday, June 25th, 2016
4:05 pm
Второй круглый стол по образованию -- доклад К.Зискина
Это продолжение моих заметок (с упором на мои мысли, а не мысли докладчиков) со второго круглого стола по образованию, первая половина заметок (про доклад О.Генисаретского) тут: http://ailev.livejournal.com/1272745.html

Вторым докладчиком выступал К.Зискин (директор Высшей школы образования и когнитивных исследований МПГУ), и он рассказал печальную историческую картину теории педагогики: исследования по факту велись в двух странах: России и Германии. В России в 17 году произошло ой-ой, а в Германии примерно то же в 30-х годах, и всё в части исследований сдохло -- педагогика безо всяких исследований в варианте конца 19 века была поставлена на службу соответствующим режимам, а потом так ничего и не поднялось. В остальных странах ничего и не было, и не появилось существенного, нового дискурса нет, новых концептов нет Итого: сегодня фундаментальных оснований и прикладных вопросов в педагогике нет, то есть нет трансдисциплинарной практики как таковой. Например, нет представлений об оценке -- нет теорий, нет природных закономерностей, ничего. Нет эмпирики, ибо нет проверяемых теорий.

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

При этом педагогика не наука: она нормативна, чем-то инженерна по природе своей. То есть она научна и не научна. На этом месте я вспомнил вечный флейм по поводу научности и ненаучности инженерии (у меня в учебнике системноинженерного мышления есть целый раздел "инженерия и наука" с подразделами "инженерия научна" и "инженерия не научна" -- http://techinvestlab.ru/systems_engineering_thinking), такая же судьба и у педагогики. И даже если вспомнить, что Генисаретский в предыдущем докладе предложил положить в основание не паноптикум разных дисциплин, а психологию с возвращённой в неё душой, можно условно выдвинуть слоган "Педагогика -- это инженерия души".

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

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

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

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

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

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

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

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

Тем не менее, параллелей у системной педагогики с системной инженерией может найтись множество: и привнесение деятельностного начала (с учётом того, что ученик тоже стейкхолдер!), и равное внимание к целевой системе и обеспечивающей системе -- т.е. внимание к созданию адекватных целям педагогики образовательных сред с учётом их жизненного цикла, и поддержание необходимого разнообразия педагогических практик для поддержания широкого разнообразия в учениках (мы ж не инкубаторских "строителей коммунизма" выпускать хотим! Люди все разные, и это ценность), педагогический процесс как коллективный процесс с чётким пониманием специализаций. И это при всём понимании возражений против "конвейера в педагогике" -- как и "конвейера в медицине", но с указанием примера того же Narayana Hrudayalaya cardiac-care hospital in Bangalore -- http://www.businessinsider.com/inside-indias-no-frills-hospitals-where-heart-surgery-costs-just-800-2013-4, всё ведь не так просто.

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

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

Я тут добавил, что в эпоху заката профессий (http://erazvitie.org/article/zakat_professij) появляется другой человек, не профессиональный, а "транзитно-компетентностный" -- и для него в полный рост встаёт проблема ухода к формальному образованию в традиционном разделении формального и материального образования (http://ailev.livejournal.com/1263511.html). И тут присутствующие радостно пообсуждали, что "формальное образование" на мёртвых языках можно было бы трактовать двояко:
-- как мою линию о формализации (работа с языком и описаниями, уход на уровень метаописаний -- работы с языками как с объектами), которая и была главной в дискуссии того времени про разницу формального-материального в образовании (абстрактного-конкретного).
-- как продолжение предложенной Генисаретским линии овладения древними традициями мысли (типа как мёртвые языки нужно знать, чтобы подробненько изучать древние источники и пропитаться тамошней древней качественной мыслью, лежащей в основании цивилизации. Так сказать, "припасть к основам культуры", обучение содержательно-генетической логики в образовании).

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

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

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

Ещё один аспект, поднятый Зискиным -- это то, что в отличие от инженерии, в педагогике материал (человек) напичкан большим количеством непонятно устроенного бессознательного. Опять же, инженеры с этим тоже столкнулись: в инженерии машинного обучения "выученное" непонятно, знаниевых таблеток тоже не оказалось, и полным ходом осваиваются концепции типа life-long learning (сухих нейронных сеток! это не continuous learning, это другое -- см., например, LLML, life long machine learning -- learning as humans do. Remember the knowledge learned in the past and use it in future learning, как подтема AutoML, http://automl.chalearn.org/life-long-learning). Одно выученное с одним педагогом наслаивается на самовыученное, другое интерферирует с самопонятым, очередной педагог сталкивается с не-пойми-чем, причём существенно закопанным в бессознательное ученика. Так что опять: педагогика тут отличается от инженерии, но инженерия стремительно вторгается на территорию этих "пермакультур", "агрокультур", культур возделывания и выращивания, а не культур проектирования-изготовления-сборки-модернизации. IMHO в случае педагогики не сами способы работы или сложность объекта отличаются от инженерных, но именно непонятки со стейкхолдерами и их интересами, организация и финансирование проекта (следствие первого вопроса). Вот всё ровно то же самое, почему системную инженерию нельзя применять к государственному строительству: непонятно, какое государство строить, и кто заказчик. Так и в педагогике: непонятно, какого человека строить, и кто заказчик. Поэтому нельзя использовать инженерию, а любые "понятки" в этом вопросе (и приходящие с этими понятками комиссары в кожаных тужурках) чреваты. Поэтому опять всплывает вопрос про анрогогику: со взрослыми всё понятней и проще, они заказчики обучения себя! Поэтому если разобраться сначала с андрогогикой, то с педагогикой будет уже чуток полегче.

Ещё можно было бы пообсуждать инновационный аспект в педагогике, по линии слайда 10 из http://www.slideshare.net/ailev/ss-63389239 -- наверняка ведь встанет разговор об экспертной оценке педагогических идей. И тут, конечно, тот же самый разговор про "риски непоняток" против "безрискового застоя", тот же разговор, что и в медицине. Эволюцию педагогики тоже нужно обсуждать: эволюция ли это, проектирование/программирование ли это, или вообще что там с самой педагогикой происходит -- чем это мы тут пытаемся заниматься и как это наш круглый стол соотносится с тем, что происходит по поводу педагогики в мире.

Зискин регулярно приводил пример знаменитых педагогических примеров (Аристотель как учитель А.Македонского, Гоббс как учитель Карла II), и мне вдруг подумалось, что есть ещё один заход на построение предмета, эмпирический: попытка отмоделировать (построить метамодель) exellence тех педагогов, которые покажутся "правильными". Модели могут быть коннективистского типа (дологического, о которых говорил Генисаретский, "вчувствование" в поверхностные структуры и попытка догадаться о глубинных структурах, порождающих внешние педагогические проявления -- да, это прямо "моделирование человеческого экселленса" в традиции классического нейролингвистического программирования). Это может быть моделирование, начиная с истории педагогических идей -- в любом случае, работа с эмпирическим материалом, и дальше ход на содержательно-генетическую логику. Ну, или можно плюнуть на всю эмпирику, и явно стать на позиции радикального конструктивизма, заявить про невозможность переделки всей педагогики, занять свой участок эволюционного фронта и попытаться сконструировать новую педагогику на основании лучших имеющихся у нас знаний из других дисциплин (метод "подхода" -- взять системную инженерию, например, и перелицевать её как бог черепаху, создать сразу state-of-the-art и надеяться, что в рамках эволюции педагогики этот её вариант выживет, размножится и будет сосуществовать с остальными, а не сдохнет сразу).
1:01 pm
Второй круглый стол по образованию -- доклад О.Генисаретского
Вчера я побывал на очередном круглом столе по образованию в МПГУ, там были доклады-разговоры О.Генисаретского и К.Зискина. Вот тут разные фото того, как это было: 1, 2, 3, 4 -- и в этом последнем посте Олег Алексеев написал "запись по запросу", и запись там была аудио, а не видео).

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

Это первый пост из серии. Второй пост -- про доклад К.Зискина -- тут: http://ailev.livejournal.com/1272887.html

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

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

Дальше пошла мысль про коммуникацию по поводу концептов -- беседа с дальним виртуальным собеседником (он не здесь, в современности). Общаемся с воображаемым собеседником, и ничем другим эту жажду общения по поводу фундаментального утолить невозможно. А где один собеседник, там и сообщество, фундаментальность всегда обращена к сообществу, к беседе. Я заметил, что это примерно соответствует поправке в определении онтологии по Gruber: где формальная спецификация концептуализации была сначала, а потом пришлось уточнить определение -- там появилось слово shared. Дальше мы немного поспорили, насколько те онтологи, которых я поминаю, вообще онтологи (имелось ввиду по сравнению, скажем, с Аристотелем) и понимают, о чём там в онтологии речь. Пришлось заверить, что это настоящие онтологи, и всё они про "настоящую онтологию" знают, а не только занимаются компьютерными версиями этих онтологий. Спора особого не получилось, ибо Аристотеля-то все знают, а вот онтологические воззрения какого-нибудь Дэвида Льюиса оценить не получилось (а среди сообщества computational ontologists его воззрения обсуждаются не меньше, чем воззрения Аристотеля -- идея множественности миров-вселенных это ведь как раз его наработки). Аргумент ОИГ, что "как только появится кто-то такой же крутой, как Аристотель, все об этом узнают" в этой аудитории не работал -- ибо если сознательно себя ограничивать Аристотелем, потому что он уже знаменит, то так и не узнаешь ничего нового.

Тут я жёстко зафиксировал расхождение: с точки зрения Генисаретского, нужно потратить много лет на попытки овладеть стилем и способом мышления Аристотеля, как великого образца, чтобы потом идти дальше. Так сказать, манифест содержательно-генетической логики: всегда обильная история, жырно-жырно намазываемая тебе в моск, и чуть-чуть движения содержания на конце этой истории. По моему мнению, подробное изучение метаболизма динозавров со всеми напрягами ума по попытке догадаться об их мыслительном поведении и осознании великости динозаврей породы, так вот это изучение не так много знания даёт для догадок об особенностях поведения современных лосей. При изучении лосей необязательно знать, что главное отличие их от динозавров -- это теплокровность, живородящесть (а не яйцекладущесть) и выкармливание деток молочком. Можно сразу начинать с теплокровности, живородящести и молока, оставив динозавров биологам-историкам. Разделение труда, если начинать с глубокого погружения в Аристотеля и заканчивать Флоренским, то всегда будешь мыслителем прошлых поколений, преодолевающим и проблематизирующим вымерших титанов в 143й раз -- это немного даст современности, глубины этой проблематизации явно не хватит для нормальной теории, ибо вместо того, чтобы проблематизировать Аристотеля в 143й раз, нужно брать результат 27й последновательной проблематизации с тех пор, быть знакомым с текущим, сегодняшним состоянием. Жить нужно не ракоходно, глазами назад, в прошлое, в истории, а сегодня.

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

При этом да, я согласен, что теоретическая мысль всегда догадка, это особый такой режим работы мысли. И я согласен, что без настроя на догадку мало что можно сделать.

Я успел поговорить немного с Олегом Игоревичем перед докладом, спросил предмет его нынешних интересов. Он отвечал, что занимается чтением -- которое не из серии гляжу в книгу и вижу фигу, а попытка восстановить, догадаться о методе мышления того, кто писал текст. В докладе он продолжил эту тему. Да, чтение "в догадке" текстов -- это правильный режим работы, особенно когда нет помощи от библиографии, примечаний и гугля, как в случае современных книг. Весь вопрос о том, какие тексты читать и как делить чтение всего написанного между людьми, ибо один человек "всего" уж точно не прочтёт, умрёт за Аристотелем или Галилеем, поэтому рецепт для каждого исследователя "сначала погружаться в Аристотеля и дальше всех значимых после него" точно не работает: за последние годы с помощью Гугля и компьютеров и на примерах современной скоростной и цветуще-сложной жизни довольно много новых качественных теоретических материалов. Игнорировать это нельзя, считать что без погружения в работы средневековых схоластов (оставим уж Аристотеля) разобраться в этих работах, читать их "в догадке" нельзя -- это не так. Другой вопрос, как узнать, какие работы в этом мутном потоке всяких и разных работ нужно читать, а какие не нужно -- вот этот вопрос интересно было бы обсудить. Возвращаясь к теме образования, какие теоретические работы по этой теме есть сейчас? Ибо строить теорию образования на базе медитаций по текстам Аристотеля-Флоренского с редким цитированием Мамардашвили в промежутке -- это нонсенс. Если заменить этих западных мыслителей на Конфуция или Лао Цзы, или вместо работ Аристотеля так же читать "догадке" Тору (что многие и делают) -- тоже ничего хорошего не будет.

Есть понятие state-of-the-art, вот без этого понятия IMHO приходить и в исследования нечего, и в инженерию (скажем, разработку технологий по поддержке результатов исследований -- технологий, в фундаменте которых как раз дисциплина). Понятие state-of-the-art потихоньку проникает в методологию, хотя и крайне медленно. Например, книжки Bill Boem по методологии инженерии строятся на этом понятии, можно заимствовать оттуда.

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

Можно ли класть мышление в основании педагогики? Нет, мышление класть в основание нельзя, оно неуловимо и разнородно, изменчиво и внепредметно.

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

Я с этим согласен. Конечно, психопрактики и киберпсихика, о которых я говорил -- это не про душу. И поэтому не про психологию. Становится легче объяснять, почему так: психопрактики больше про антропологию и (учитывая, что у роботов что-то аналогичное ведь тоже будет) эээ... роботологию. Это религии претендуют на душу, и если Генисаретский хотел бы в психологии видеть светский вариант науки о душе, я всецело "за". Насчёт "души" (через психологию) как основания для всей педагогики -- тут я сомневаюсь. Да, и "душа тоже", но не только душа, не нужно в образовании монастырства и ашрамства, чай не средние века. Мне в этом плане много ближе позиция следующего докладчика, о чём следующий пост: http://ailev.livejournal.com/1272887.html
Thursday, June 23rd, 2016
10:04 pm
Киберэкспертиза: мифы и реальность
Доложился сегодня по теме "Современные технологии в экспертизе: чем они могут помочь и может ли искусственный интеллект заменить эксперта" на семинаре «Российский рынок научно-технической и технологической экспертизы» в РВК. Слайды вот (http://www.slideshare.net/ailev/ss-63389239):


Мой силуэт (понятно, камера смартфона выбирает ярко показать мои слайды, а не меня -- поэтому только силуэт) даже попал на фотограцию тут: https://www.facebook.com/photo.php?fbid=1042447812458398&set=a.402371099799409.81588.100000795665039&type=3&permPage=1

Было, конечно, много забавного -- уж насколько на этом семинаре была попытка не обсуждать государственную экспертизу, один из чиновников в зале затребовал принять закон по экспертизе. Ему возразили, что это только в неразвитых странах такие законы, в других странах больше полагаются на этику -- а её в закон не впишешь, тем более что экспертизы бывают ой какие разные. Он не унимался: в Белоруси и Казахстане есть такой закон, и нам тоже нужно! Я ответил, что не нужно вспоминать бешеный принтер: он, как дьявол, немедленно ведь припрётся! Так и случилось: тут же к моей фотографии приложили ссылку на то, что такой закон в бешеный принтер уже внесён: http://asozd2.duma.gov.ru/main.nsf/%28SpravkaNew%29?OpenAgent&RN=1075772-6&02.

Консультанты потребовали похожего: только не закон, а стандарт -- только не как в OECD, а прям как в ISO 9001! И они тогда смогут немедленно нанести непоправимую пользу (ну, вы же знаете какой бизнес вокруг стандартов ISO серии 9000?). Я не дал смягчить это заявлением переходом от этого стандарта ISO к стандарту CMMI как примеру -- и дальше уйти на "уровни зрелости экспертизы". Нет, для всех этих "процессных стандартов имени ISO 9000" есть ISO 15504 (SPICE), который вполне наведёт вам эти уровни зрелости мимо всяких CMMI, особенно если вы напишете свой стандарт, описав "процессы" по ISO/IEC TR 24774:2010. Сразу скажу, мне эта инициатива кажется ничуть не лучше инициативы закона. Когда я писал слово compliance в своей презентации, мне и в голову не приходило, что люди могут тянуть в эту сторону тяжёлых обязательных требований -- хоть закона, хоть "обязательного процессного стандарта". Я-то писал про стандарты уровня организации (например, формат и примерное содержание полей отчётного документа экспертизы, что принимается и изменяется по ходу дела внутренними решениями фонда или компании).

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

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

UPDATE: какое-то обсуждение этого поста случилось в https://www.facebook.com/eduard.proydakov/posts/1126196367438832
4:37 pm
Системная информатика
Моя идея остаётся прежней: моделирование, программирование, онтологизирование (и, думаю, обучение как в machine learning) -- это предметная область для одного и того же отношения абстрагирования, как мереология -- это предметная область одного и того же отношения "часть-целое" в разных его ипостасях и вариантах.

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

Конечно, акценты тут разные:
-- программирование (поскольку сюда неявно включается алгоритмика как абстрагирование действий и работа с данными как абстрагирование объектов и свойств со всеми оговорками, что объекты могут сами по себе абстрагировать действия) тут наиболее общо, но оно позволяет "оживлять" абстракции, манипулировать ими, строить имитационные модели. В программировании также уделяется много внимания формализму моделирования: синтаксису и семантике. Глубина абстрагирования -- метапрограммирование.
-- Моделирование тоже наиболее общо, ибо это сама суть абстрагирования: оставлять в одной системе самое важное от другой, абстрагирование в чистом виде. Но, увы, акцент на запуск модели на исполнение, "оживление" этой абстракции тут не делается. Ничего, мы пойдём другим путём: при языках моделирования очень часто можно найти каки-то более-менее полноценные (полнотьюринговые) языки программирования -- как языки запросов или декларативные языки ограничений. Например, SPARQL при RDF (чтобы не сложилось впечатления, что речь идёт только о процедурных языках) или OCL при UML/SysML. Глубина абстрагирования -- гирлянда метамоделей.
-- Онтологизирование само по себе наиболее общо, ибо в программировании и моделировании неважно что абстрагируется, а онтологизирование обращает внимание на реальность мира и аспекты "истинности" моделирования (глубоко занимается самим отношением абстракции), привносит философскую логику и заставляет задумываться о способах моделирования пространства, времени, а также задумываться о преобразованиях одних классов моделей в другие, парадигмах абстрагирования и их совместимости друг с другом. Глубина абстрагирования даже не рассматривается, ибо органически входит в дисциплину.
-- Обучение тоже наиболее общо, ибо обращает внимание на эпистемологический аспект абстрагирования, "как получили эту абстракцию", а не онтологический "что там наабстрагировали". Глубина абстрагирования явно обсуждается в современном machine learning. А ещё обсуждаются разные парадигмы моделирования, включая многоуровневые распределённые представления (machine learning).

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

Логический уровень, уровень абстракции, уровень объективации, все эти "мета" -- это всё про одно и то же (http://ailev.livejournal.com/1073932.html):

Подробней про разные "мета" -- http://ailev.livejournal.com/1204705.html, про формальное образование в этой области -- http://ailev.livejournal.com/1263511.html, логические уровни Бейтсона (эпистемологические, "обучения", а не онтологические его результатов) затрагиваются в разделе "когнитивной архитектуры" http://ailev.livejournal.com/1210678.html, многступенчатая объективация и объективизация --http://ailev.livejournal.com/1132449.html. И, конечно, сюда нужно добавить коннективизм в количестве: отношение между представлениями в разных уровнях нейронной сетки, разные уровни абстракции и архитектуры из разных стеков (уход от чистой иерархии слоёв-уровней, выход в сложные fully differentiable architectures с памятью, вниманием, различными обработчиками логики, выполнением алгоритмов и т.д.).

Системный подход включает в себя абстрагирование как основной метод борьбы со сложностью, включая абстрагирование в рамку деятельностного подхода (ага, подход в подходе):
-- Конкретное абстрагирование оформляет (frame) интерес стейкхолдера (деятельностной позиции, абстракции мыслящего существа, оставим на потом спекуляции про мыследействующих и абстрагирующих существ). Так сказать, "теория субъективной информации" (http://ailev.livejournal.com/66325.html, 2003).
-- Мереология ведущее отношение для абстрагирования (системы это холоны), она даёт возможность договориться по поводу того, что именно в реальном мире в конечном итоге абстрагируется в длинных цепочках метаабстрагирования. Системный подход -- это аналог структурного (иерархического) внимания в окружающий мир. Это позволяет строить описания каких-то частей мира, соответствующим системам в их границах, отделять фон от систем. В моих учебниках это "zoom-select". Подробней это раскрывается в http://ailev.livejournal.com/860017.html
-- есть жизненный цикл системы (указание на обеспечивающую систему -- http://ailev.livejournal.com/1248044.html), практики абстрагирования (практики определения и документирования определений -- создания полного описания) в этом жизненном цикле обязательны. Моделирование всегда было неотъемлемой составной частью системного подхода, а проектирование -- составной частью системноинженерного подхода. Программирование в какой-то момент через кибернетику тоже неудачно пыталось вписаться (пока не стало понятно, что кибернетика с её обратной связью совсем-совсем не эквивалентна информатике как таковой, и даже классической computer science как части информатики).
-- Поскольку деятельность коллективна, стейкхолдеров в ней много и ещё больше их интересов, то абстрагирований тоже нужно много, и разных для удовлетворения разных интересов. Но все полученные абстракции связаны между собой тем, что они про одну и ту же систему (или её части): любая абстракция это абстракция системы (или типа систем).
-- в силу коллективности деятельности, любое абстрагирование по мере роста его объема становится абстрагированием-в-большом (programming-in-the-large -- и см. как пример http://ailev.livejournal.com/748188.html, 2009г., и тамошний разбор сервис-ориентирования в современном программировании)
-- абстракции есть всегда, если есть система (наше знание о том, что есть система -- это уже абстракция), но они должны быть документированы для работы с ними -- разница между system definition и system description.
-- каждая абстракция имеет модальность (алеатическую, деонтическую, темпоральную), эти модальности могут меняться в ходе жизненного цикла.

Если соединить системный подход и расширенную распределёнными представлениями и коннекционизмом (http://ailev.livejournal.com/1228029.html) информатику (т.е. учесть, что все тексты и коды -- это описания тех или иных систем на разных уровнях абстрагирования, и эти описания отвечают разным интересам коллективно действующих стейкхолдеров), то будет системная информатика. Конечно, при этом придётся как-то справиться с коннекционисткой проблематизацией и в информатике (все эти end-to-end fully differentiable architectures) и в системном подходе http://ailev.livejournal.com/1252230.html

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

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

Заново подойти к SysMoLan как языку системного абстрагирования (онтологизирования, программирования, моделирования и т.д.) -- http://ailev.livejournal.com/1127145.html (2014 -- обратите внимание, там как раз попытка выйти на "системную информатику", но на примере одного языка и без попыток обозначить предметную область, чисто на "обобщениях из практики"), http://ailev.livejournal.com/1169972.html (2015, требования к формализму), или даже ещё более старым идеям Симултрека (http://ailev.livejournal.com/611877.html -- 2008, "Датацентрика -- это концептоцентрика. Документоцентрика -- это символоцентрика").

В принципе, можно было бы ввести концепцию "достроения языка до системного", считая каждый язык каким-то частным методом описания (veiwpoint), порождающим "частное описание" (veiw, которое само состоит из набора моделей -- всё строго по ISO 42010). Для этого нужно понять, что же означает в информатике наличие какого-то текста на языке? Означает только одно: исполнение его в каком-то смысле. В этом-то и секрет, что исполнение или оценка языка совершенно необязательно предписаны! Одна и та же модель/программа/онтология (не заморачиваемся тут разницей между definition и description -- например, разницей между онтологией и онтологическим описанием) может быть оценена (eval) или исполнена (execute) в разных смыслах: из одного текста можно породить разными способами много других, например можно текст программы интерпретировать, а можно сначала компилировать (т.е. изготовить по образцу одного текста другой текст). и только потом интерпретировать. Программа для станка с ЧПУ так вообще приводит при её интерпретации к изменениям в реальном мире (впрочем, даже обычная компьютерная программа тоже приводит к изменениям в реальном мире, только очень маленьким -- типа краски из пикселей на бумаге или по-разному пропускающих свет фотонов на экране). А 3D-модель тоже оказывается вполне исполнима: она декларативна, но это не мешает её исполнять 3D-принтеру, воплощая систему. Так сказать, "обратное моделирование", reverse modeling, воплощение!

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

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

В этом плане системная информатика должна как-то собирать различные описания в кучку. Скажем, в проекте http://rosettacode.org сравниваются описания решений математических главным образом задач на разных языках программирования. Там есть классический T-shirt: описание задачи (текст выходных данных + что нужно сделать), алгоритм (что делается = модель-решение для "что нужно сделать", текст на языке программирования) и output (текст выходных данных). Если брать языки моделирования, то сразу становится очевидным, что их нельзя сравнить с языками программирования: там нет этой тройки текстов "вход-алгоритм-выход". Но это не совсем так! С точки зрения системной информатики, всё это моделирование имеет смысл только для ответа на какие-то вопросы. Это просто означает, что есть ситуация (описание модели), модель (код, формальный текст решения для данной ситуации -- результат абстрагирования, выраженный в языке какой-то метамодели) и есть вопросы, которые задаются модели, предполагающие её исполнение в каком-то смысле. То есть интерпретатор тут не "виртуальная машина языка" (читающая программу и выполняющая её над входными данными -- интерес при этом фиксирован: выполнение программы), а "виртуальная машина модели" (читающая запрос для какого-то интереса и выполняющая его над моделью как входными данными). Этот интерпретатор может быть либо человеком, либо нет -- и тогда язык запросов это и есть язык моделирования! Это хорошо видно на парах декларативных языков OCL и UML (и любая запись на UML может быть выражена в OCL!), SPARQL и RDF/OWL. Получается, что языки моделирования -- это какие-то подмножества для своих часто стремящихся к полнотьюринговости языков запросов, просто выраженные в другом синтаксисе и отражающие только часть возможностей языка запросов.

Замечу, что этот подход отличается от "интеграции моделей на базе онтологий", к чему вели и Sztipanovits в http://ailev.livejournal.com/675208.html и https://www.simantics.org/ и наш собственный заход в dot15926. Онтологии никуда не делись, но они "внутри". И появилось явно выполнение этих онтологий, они не рассматриваются вне языка запросов. А язык запросов к онтологиям оказывается просто хорошим языком программирования, во всей его полноте и мощи. Ну, или его можно легко реализовать с учётом какой-то специфики модели -- тоже как встроенный DSL.

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

Либо можно пойти другим путём: нужно взять язык с развитой рефлексией и метапрограммированием (например, какой-нибудь Лисп. См., например, контекст появления Лиспа в дискуссии про универсальные языки моделирования/программирования http://justy-tylor.livejournal.com/246591.html и http://justy-tylor.livejournal.com/246877.html) и считать, что это и есть системный язык -- и порождать дальше языки моделирования из него по потребности (ну, или писать на нём в соответствии с удачными другими языками моделирования). Например, можно думать о том, чтобы (пока justy-tylor не предложит какого более удачного решения) брать тот же язык Julia, в котором в части рефлексии и метапрограммирования вполне Лисп внутри, и
-- реализовать на нём DSL для выражения моделей ArchiMate 3.0 (при этом можно даже сохранить вывод этих моделей в виде правильных графических диаграмм! Это ж просто будет такой viewpoint -- графическое описание). Дальше два использования: 1. просто глазеть на диаграммы, используя подмножество языка для удобной их текстовой записи (или даже удобного графического редактирования), 2. выполнение запросов. Учитывая, что ArchiMate 3.0 подразумевает расширения себя разными атрибутами и типами элементов, то легко можно представить самые разные запросы -- от "сколько практик у нас в модели" до "посчитай необходимую производительность для сервера" (этот пример про подсчёты на основании диаграмм архимейта -- прямо из книжки автора языка. Но там ArchiMate даётся как внешний DSL, и этот подсчёт реализуется независимыми от языка средствами. А у нас ArchiMate является встроенным DSL к Julia, поэтому просто пишем на Julia запрос к структурам ArchiMate-на-Julia. Julia к этому ArchiMate является и языком ограничений (хотя так не принято называть, это ж не логический язык!) и языком запросов (хотя так тоже не принято называть, не подразумевается какой-то модели данных) -- но если допустить, что внутри самого языка (а не сбоку на диске) есть модель, то всё становится на свои места.
-- выполнить план по линии Modelica-на-Julia, описанный в третьем пункте тут: http://ailev.livejournal.com/1271980.html
* * *
Тем, кто меня читает много лет, должно быть всё понятно. Кто читает совсем недавно -- не будет понятно ничего. Единственное, что могу посоветовать, это попробовать прочесть посты и материалы по ссылкам из текста. Если и там непонятно -- то в тех материалах тоже много ссылок, и так "до дна", пока не станет понятно.

По-хорошему, дальше две линии работ:
-- нужно как-то вытащить все эти обрывки мыслей по ссылкам, развернуть их, причесать и сделать учебник. Ибо как россыпь постов это всё необозримо. Когда-то у меня было такое же состояние дел в части системного мышления, пока я не сосредоточился и не написал учебник, аж две версии (http://techinvestlab.ru/systems_engineering_thinking). Вот и тут нужно писать учебник системной информатики, при всех текущих с ней непонятках.
-- взять какой-то язык с похожим на лисповое метапрограммированием (а хоть и Julia -- заодно там нет тяжёлого наследства программистской объект-ориентированности), и дорастить его до языка системного моделирования (оно же программирование, оно же онтологизирование, оно же проектирование и т.д.). Точнее, "спустить" его до DSL моделирования в его составе (что потребует описания на нём соответствующих метамоделей).
-- ну, и нужно отслеживать что там происходит в части коннекционистского моделирования-как-обучения (моделирования естественного языка, моделирования языков программирования, моделирование планов и цепочек действий, выражения концептов и понятности моделей-в-распределённых-представлениях и т.д.).
* * *
UPDATE: системная информатика -- это "информатика с системным мышлением в голове". Системная инженерия тоже так определяется: как "просто инженерия", только с системным мышлением в голове (ср., например, с http://ailev.livejournal.com/1157398.html).

UPDATE: некоторая дискуссия к этому посту ещё и тут: https://www.facebook.com/ailevenchuk/posts/10207409851418535
Tuesday, June 21st, 2016
6:29 pm
Началась конференция JuliaCon 2016
Основная дизайн-цель языка Julia (http://julialang.org/) -- это решить "проблему двух языков" в численных методах (когда прототипировать алгоритмы и скриптовать удобно на языке высокого уровня, а потом требуется переходить на более низкоуровневый язык, чтобы всё работало быстро, в том числе параллельно). Сегодня у любителей Julia праздник, идёт ежегодный смотр достижений JuliaCon: http://juliacon.org/abstracts.html. В России на Julia пишут в бОльших объёмах, чем можно подумать (группа ВКонтакте тут: https://vk.com/julialanguage, но я встречал многих, кто на Julia пишет, не зная о существовании ни этой группы, ни каких-то других).

Расползается Julia по миру сегодня главным образом через университеты: http://julialang.org/teaching/ (MIT при этом один из ведущих по числу курсов – относительно свежая информация тут: https://github.com/stevengj/julia-mit). Это всё не курсы собственно Julia, они не по линии computer science, это курсы главным образом каких-то разделов численных методов, а Julia просто занимает место какого-нибудь Python, MATLAB/Octave или R. Обычно курсы выглядят как ноутбуки в Jupyter (бывший IPython), Ju в этом Jupyter как раз от Julia, это родной теперь для этого проекта язык: http://jupyter.org/. Административно Julia в NumFocus -- http://ailev.livejournal.com/1203522.html.

В языке прямо сейчас идёт опережающее развитие суперкомпьютерного функционала (http://docs.julialang.org/en/latest/manual/parallel-computing/ -- это просто документация языка, http://www.nextplatform.com/2016/01/26/dirt-simple-hpc-making-the-case-for-julia/ -- этот крен в HPC уже заметили «железячники», http://julialang.org/blog/2016/03/parallelaccelerator -- это специализированный для Julia ускоритель от Intel Labs, и много всяких "обёрток" типа https://github.com/JuliaComputing/ArrayFire.jl для работы с массивами в GPU).

Пакетов там уже больше тысячи, что, конечно, капля в море -- http://pkg.julialang.org/. Базовой математики там тьмы и залежи, есть какие-то сообщества на каждую тему: см. разные ссылки в http://julialang.org/community/. Несмотря на то, что Julia отлично цепляет любые сишные библиотеки как родные (и сама, кстати, может в них компилироваться, прикидываясь сями -- типа "пишу высокоуровнево, а код будет для чужих выглядеть сишной библиотекой"), сообщество честно переписывает на Julia основную математику, добиваясь заявленной цели: полный контроль в одном языке над всем стеком выполнения программы -- от прикладного уровня до железа, включая библиотеки. Никаких непоняток на границе сишного кода, код до дна будет Julia.

Эти ребята сейчас переписывают в версии 0.5 реализацию массивов: делают дополнительное ускорение за счёт опционального отключения проверки индексов, «всё для скорости, всё для победы». Кто из численников начинает программировать, те полны восторгов. Кто из традиционных computer science программистов – те крутят носом, и по понятным причинам: это не функциональный, не объект-ориентированный, не акторный язык, совсем не похож на Rust, Golang, Scala и прочих фаворитов нынешней моды классического языкостроения. И в нём multiple dispatch как базовая парадигма, а объект-ориентированность и функциональность доступны как расширения языка. Вот что даёт multiple dispatch: http://nbviewer.jupyter.org/gist/StefanKarpinski/b8fe9dbb36c1427b9f22. Я подробней писал про решение expression problem с помощью multiple dispatch и приводил на эту тему ссылки тут: http://ailev.livejournal.com/1218155.html

Расширяемость языка идёт как важнейшее свойство, второе после multiple dispatch: интроспецкция (код программы это данные для неё) и метапрограммирования (язык принципиально расширяемый, в нём доступна кодогенерация времени исполнения -- http://docs.julialang.org/en/latest/manual/metaprogramming/), идеи впрямую вытащены из Лиспа. Так что Julia -- это совсем не фортран и не паскаль, и даже не матлаб, хотя жутко на них похож. По мощности он ближе к Питону, хотя отличается от Питона во всём (писать на Julia чуток более высокоуровнево и поэтому компактно, чем на Питоне, а скорость получающегося кода -- сишная, а не питонная).

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

В принципе, можно было бы на эту тему даже какие эксперименты сделать, найти «когнитивное сродство инженеров к разным парадигмам программирования». И может оказаться по результатам замеров (какой-нибудь cognitive load, например), что Julia тут будет получше прочих. Ну, или не оказаться. Моя гипотеза, что multiple dispatch в основе языка для инженеров проще, чем объект-ориентированность и функциональность. А обслуживающие инженеров программисты всегда смогут воспользоваться средствами метапрограммирования для расширения языка.

У меня самого пара идей с Julia (вряд ли они имеют шанс на реализацию, но лучше сразу написать):

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

2. Учебное физмат применение. Конечно, как для Wolfram Language есть Mathematica, как для Python есть Sage, для Julia нужно сделать какой-то вариант символьной математики. В простейшем виде её уже прикручивают болтами из Питона (http://mth229.github.io/symbolic.html), но хочется "родной" привязки -- и затем можно делать на Julia решение задач по курсам уже математики-физики (с той же автоматизированной проверкой). Пока же смотреть и пускать слюну на http://www.wolframalpha.com/pro/problem-generator/ и довольствоваться Jupyther notebook текущих вузовских курсов по численным методам. Хотя в принципе, это не только в ВУЗе можно использовать, но и в школах для поддержки физики-математики.

3. Инженерное применение: реализовать на Julia функционал акаузальной симуляции мультифизики, похожий на Modelica (http://modelica.org/), но не объект-ориентированный. При этом сразу получаем силу математических пакетов Julia: оптимизацию, параллельные вычисления на бэк-энде, веб-фреймворки и визуализацию данных, notebooks и т.д.. Плохая реализация численных методов -- это то, чем страдают все реализации Modelica, кроме самой дорогой. Вот и решить эту проблему. А дальше идти по той же линии, что и Modelica: в языки архитектуры и описания требований. Julia ведь расширяемый язык! Глядишь, по этой линии можно и опять к SysMoLan вернуться как языку моделеориентированной системной инженерии (сейчас этот функционал делается на паре связанных объект-ориентированных языков: Modelica+SysML).

Конечно, есть и какие-то идеи про deep learning. Текущие работы по реализации алгоритмов на Julia (mocha.jl) были свёрнуты после выхода десятка крупных хорошо поддержанных ресурсами фреймворков. Конечно, Julia отлично оборачивает в себя и сишные, и питонные интерфейсы -- там и mxnet можно найти (разработчики mocha переметнулись на оборачивание его), и TensorFlow, и всё что угодно. Пока нет какой-то особой архитектурной идеи, я бы не ожидал развития родных нейроалгоритмов на Julia. Но я думаю, что по мере роста сложности нейроархитектур (в сторону всех этих памятей-внимания-деревьев и end-to-end differentiable структур) и по мере роста числа готовых численных пакетов тут тоже могут появиться инициативы. Так что на эту тему я думаю, но проекта не предлагаю.
4:34 pm
"Рассказать про данные"
Время от времени (последний раз -- буквально вчера) меня просят где-то публично "рассказать про данные", ибо "больно уж тема на слуху". Что, что мне рассказывать?! Для меня "про данные" -- это:
-- маркетинговый трёп про «дайте нам ваши данные, мы дадим вам бизнес-советы» (это собирается под словом-зонтиком BigData). В узком смысле тут можно дойти до конкретных алгоритмов shallow learning (а вот deep learning "про данные" специально не жужжит, хотя нельзя сказать, что данные там не поминаются. Поминаются, но «не на слуху», на уровень обывателей не выходит). Ещё тут можно говорить про DataFrames, но это уж совсем узко.
-- интеграция данных в промышленных масштабах (мастер-данные, стандарты качества данных, нормативно-справочная информация, управление инженерной документацией, управление конфигурацией и т.д.). Я много лет об этом писал, повторяться не буду -- все эти PLM и ISO 15926. Боком тут -- что происходит с базами данных: все эти NoSQL, трипл-сторы и прочие нереляционности.
-- иногда под "данными" понимают разнообразную визуализацию данных -- научную или даже "инфографику". Так сказать, современная каллиграфия: если есть, что сказать (данные), то нужно сказать максимально кратко, доходчиво, выразительно.
-- отсутствие «данных» в учебных курсах, алгоритмика там есть, а вот работы с данными нет. По этой линии легко прийти к онтологиям (ибо computational ontology -- это про модели данных). Тренд на работу со всё более и более содержательно кучерявыми данными всё более и более простыми алгоритмами.
-- социальные сети, как "общая помойка всего", и способы разгребания мировой помойки. Персональные данные и прайвеси, цифровые следы и скоринговые агентства. Раскрытие информации государства.
-- … и так далее.

А вот про алгоритмы никто не просит рассказать. Они уже вышли из моды, или ещё в моду не вошли? Слово-то "данные" тоже давно используется, но никогда оно не было модным, не просили рассказать о них людям. А "алгоритмы"? Типа как "были бы данные, а алгоритмы найдутся". Нет, не найдутся. Deep learning -- это ведь прежде всего алгоритмы, хотя в какой-то мере и другие типы данных тоже (распределённые представления -- это ведь тоже про данные! Но вряд ли просящие "рассказать про данные" имеют ввиду распределённые представления).
1:02 pm
Технологический день на санкт-петербургском съезде КПСС, тьфу, форуме
Почему-то мне сегодня вспомнилась вчерашняя истерия во всех лентах по поводу технологического дня на санкт-петербургском экономическом форуме. Дескать, займёмся всем российским миром промышленной революцией нумер четыре, иного пути нет, будем опережающе поднимать производительность труда. Ура-ура, власти услышали! И вожди поведут нас вперёд, к этому будущему!

Мне кажется, что этот форум ничем не отличался от любого съезда ЦК КПСС, на котором торжественно заявлялись ровно такие же цели. Вот, например: «Прогресс науки и техники, — отмечал Генеральный секретарь ЦК КПСС тов. Л. И. Брежнев, — это главный рычаг создания материально-технической базы коммунизма. Вот почему в таком важнейшем вопросе, как развитие науки и техники, мы отчетливо должны видеть перспективы, учитывать их в практической работе. А перспективы таковы, что начавшийся под воздействием науки и ее открытий переворот в развитии производительных сил будет все более значительным и глубоким. Перед нами, товарищи, задача исторической важности: органически соединить достижения научно-технической революции с преимуществами социалистической системы хозяйства, шире развивать свои, присущие социализму, формы соединения науки с производством», это «Материалы XXIV съезда КПСС», стр. 57 (1971 -- помним, американцы в те поры летали на Луну, 12 человек сумели погулять по Луне с 1969 по 1972, и это очень беспокоило. Хотя ширнармассы об этих достижениях проклятых капиталистов и не информировались, но технологическое отставание стремительно становилось очевидным).

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

Но чему все радовались-то вчера? Возврату к идее непрерывного роста производительности труда в России (раньше было "при социализме")? Что нового-то? Та же обязательность для крупных предприятий быть лидерами прогресса, что и полсотни лет назад?
12:55 pm
Где обитают луддиты: в муниципалитетах!
Первый раз -- случайность, второй раз -- совпадение, третий раз -- закономерность. Теперь я знаю, где сидят луддиты: они окопались в мэриях. Они обычно не знают, что они луддиты, но цеховики им быстро объясняют, кем они должны быть. С муниципалитетами конфликтовали Uber и Airbnb, вот очередь дошла до Amazon. Amazon в середине этого июня запустил доставку своих товаров в течение часа с момента покупки. Мэр Парижа сказала, что Amazon Prime Now нарушает коммерческий баланс и несправедливо (гады, с помощью технологий! ухитряются торговать дёшево и быстро!) конкурирует с магазинчиками и мастеровыми людьми -- https://www.theguardian.com/cities/2016/jun/20/amazon-prime-now-express-delivery-service-france-paris

Когда с технологиями начнуть бороться мэрии России? Впрочем, тут это будет централизовано: до мэрий дело не дойдёт, современные прорывные технологии будут обрубать сразу на общероссийском уровне. Риторика промышленной революции и светлой дороги в будущее риторикой, а луддизм луддизмом.
1:36 am
Фундаментальное образование
Я вот уже писал про важность возвращения к проблеме различия формального и материального образований, где давал трактовку формального образования как тренинг в работе с "мета" ("формальное образование в эпоху перемен" -- http://ailev.livejournal.com/1263511.html).

Но тот же Василий Сартаков (сегодня он писуч!) в https://www.facebook.com/vasartakov/posts/10209783276595516 сформулировал ещё одну интересную различалку: фундаментальность образования он определяет как знакомство с основными теориями, лежащими в основе больших групп технологий. Я определяю это как "дисциплины" в формуле "практика = дисциплина+технология". Моё расхождение с Василием, что он определяет "фундаментальность" традиционно исследовательски, как производимую из "любопытства" и независимую от приложений, потому и "фундаментальность" -- и тем самым сам себя отрицает, у него образование фундаментальное должно как раз поддерживать разбирательства в навороченных инженерами технологиях! Какая уж там независимость! Но я считаю, там две зависимости: 1. технологии поддерживают дисциплины (и при смене дисциплины меняются технологии). 2. неудачи технологий означают, что нужно менять дисциплину, которая их поддерживает. То есть дисциплина узнаёт о плохой своей фундаментальности путём обратной связи от плохих в силу этой дисциплины технологий, что б там ни говорили учёные про "любопытство" и прочие такие вещи. Нейронным сеткам людей снятся сны, и никаких "озарений из ниоткуда" нет: источники любопытства связаны с реальной жизнью, в том числе технологической жизнью, и часто именно эта связь, именно этот запрос из практики проявляется в направлении любопытства в бОльшей мере, чем чисто теоретические штудии "дисциплины ради дисциплины". Конечно, можно всегда подобрать контрпримеры, но на любой контрпример есть масса прямых примеров (в тех же нейронных сетях). Я слегка касался этого в обсуждении такого щекотливого вопроса, как развитие математики, хотя тогда ещё и в менее чётких формулировках ("инженерный статус математики", http://ailev.livejournal.com/669463.html -- 59 комментов, и там ссылка на http://ailev.livejournal.com/668305.html с аж 170 комментами).

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

А вот при профессионализации (что тоже проблемный вопрос, учитывая закат профессий и переход к короткоживущим компетенциям -- http://erazvitie.org/article/zakat_professij) встаёт вопрос о правильной теории, которая помогает разобраться с технологиями. Скажем, в тех же примерах Сартакова это CAP-теорема (2000 год -- это давно или недавно, чтобы говорить о включении её в фундаментальное образование?), позволяющая по достоинству оценить NoSQL движение в базах данных. Я считаю, что 4D extentionalism -- это такое же фундаментальное знание для концептуального проектирования баз данных, а также для системных инженеров ("фундаментальные заплатки для системноинженерного образования" -- http://ailev.livejournal.com/1141173.html). Этому нужно учить профи, это фундаментальные знания, но это вряд ли "азы".

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

Мой тезис остаётся: каждый учебный предмет должен включать в себя не только технологию, но и дисциплину. Заявили "робототехнику" -- предъявите дисциплину, предъявите теорию! Предъявите фундаментальное знание, которое позволяет понять, почему выживают или не выживают те или иные технологии, которое позволяет сократить пробы и ошибки при создании собственных технологий. Тезис Корнилова в https://www.facebook.com/alx.kornilov/posts/1760110817533813 именно об этом, о необходимости не столько прихвата дисциплинарного сленга в образовании, сколько о необходимости фундаментального образования. А для этого прежде всего нужно сформулировать дисциплину, выявить фундаментальное (а не прикладное, технологическое) содержание образования! Теории меняются раз в двадцать-тридцать лет, а вот технологии и все эти "проекты" раз в пять лет -- и новое поколение технологий раз за разом будет поддерживать те же теории, ту же дисциплину, то же фундаментальное образование.

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

Дальше конструктивная часть. Чего IMHO не хватает в фундаментальной дисциплине для обучения, если её вдруг удаётся сформулировать? Скажем, в робототехнике она не сформулирована, а вот в линейной алгебре -- вполне. Не хватает не столько "проекта" (где она будет применена однократно, это не "обучение", это скорее "экзамен" -- контроль знаний, а не научение нейронной сетки). Не хватает тренинга в решении задач! Не хватает задачников, а в них достаточного количества задач, чтобы "набить руку" и получить профессиональную фундаментальную интуицию. В этом плане сервисы типа той же Matematica с генерацией постановок задач и проверкой их решения (http://www.wolframalpha.com/pro/problem-generator/) -- вот что может помочь фундаментальности образования. Задачи -- это тот клей, который может привязать абстрактную теорию к конкретным жизненным ситуациям. Задачи намазывают прикладность на фундаментальность. Но задач нет (это же не олимпиадные задачи по информатике, которых тысячи!), как их генерировать, непонятно (не всё ж сводится к математике, которой занимаются 400 лет и которая удивительно регулярна), как их решение проверять автоматически -- непонятно (хотя AI тут может помочь, конечно).

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

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

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

Итого: инженерные и научные формальность и фундаментальность против ПТУшной рабоче-крестьянскости.

Скажите теперь скорей, что я старомоден и отстал от жизни, литературы про все современные веяния в образовании не читаю. Я этого не знаю, студентов современных в глаза не видел, с сыном собственным как школьником не общался, на совещаниях самых разных в ВУЗах и рядом не присутствовал, где о победности и успешности новых веяний рапортовали, курсов в Курсере не проходил и т.д.. И поэтому вы меня сейчас просветите, и скажете, что вся фундаментальность образования как-то сама собой появится, и что она никуда не девалась. Скажите мне об этом, просветите меня тёмного, наставьте на путь истинный.
12:11 am
Секта свидетелей сингулярности
Само словосочетание "секта свидетелей сингулярности" гуляет по рунету, независимо открываемое, с зимы 2015г. Но Василий Сартаков в комментах к https://www.facebook.com/vasartakov/posts/10209792005373730 обратил внимание на его новый смысл: сингулярность уже потихоньку свистит мимо нас, а мы разинув рот её свидетельствуем, но в ней не участвуем. Я ему вяло возразил, что сингулярность тем и характерна, что в ней все становятся только свидетелями -- кидай мешки, вокзал отходит! Но хотелось бы иметь, конечно, свой вклад в ускорение фронтира -- а хоть и всего 0.01мкм/сутки², но не свидетельствования, а собой обеспечиваемого разгона. Что держит? Кого мозги, кого отсутствие приятной компании, кого отсутствие денег, кто просто прокрастинирует, а кого-то ничего не держит, просто "неохота, нас и тут неплохо кормють" -- у разных людей разные причины свидетельствовать, а не делать.

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

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

Мне хочется порождать волну сингулярного фронтира, а не обнаруживать, окультуривать, усиливать, размножать, перетолковывать и оформлять её! Но так уж сложилось, откапывать и распространять через закапывание на новом месте у меня получается по факту лучше, чем придумывать самому. А придумывать всё одно приходится.

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

Собственно, сама эта текущая ситуация скоростного соскальзывания в технологические и социальные непонятки и жизнь в эпоху не то что перемен, а сверхбыстрых и сверхкрутых перемен -- это тоже предмет копания. Мой семинар про будущее (http://ailev.livejournal.com/1267068.html) заход ровно на это: как снизить сложность в мышлении о будущем? Тот же системный подход, но его будет маловато: нужно плюсовать теорию эволюции и предпринимательство, экологическое мышление и много чего ещё. Это ещё не полноценный продукт, но как минимум, на него заявка.

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

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

Распределённые реестры (финтех) -- там пока о проектах речи нет, у меня к ним "внимательное присутствие", на большее пока сил нет. И ещё на много чего сил нет, та же "робототехника" aka киберфизические системы, я там главным образом "мозги" отслеживаю, но кроме "мозгов" там ведь много чего происходит! Ничего, Козьма Прутков утешал, что нельзя объять необъятное (а сегодня он добавил бы -- и догнать недогоняемое, сингулярность ведь именно такова).

Так что я не столько член секты свидетелей сингулярности, сколько тамошний работник тыла -- учитывая, что в районе фронтира все в тылу, уж так оно там устроено.
* * *
DISCLAIMER: я слово "сингулярность" использую исключительно художественно, как удобную лингвистическую (а не семантическую) метку. Я знаю, что сингулярностей насчитывают три разных, и знаю критику теорий сингулярности. Я тут не об этом, теории сингулярности и формальное определение того, что это вообще такое, меня не волнуют.
Saturday, June 18th, 2016
10:49 am
Железный расизм
Достало меня уже требование использования отечественных комплектующих. Когда истинное арийское происхождение требуют даже не от человеков, а от железок или софтин, это уж совсем какой-то запредел.

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

Всё это "импортзамещение" да "поддержи отечественное" -- железный расизм, давайте называть вещи своими именами.

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

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

UPDATE: дискуссия о том, кто владелец вещи и определение рисков плохого поведения "по происхождению" -- это разные дискуссии. Про риски утраты собственности над вещью я писал в "Мойдодыр и политическая философия интернетвещизма": http://ailev.livejournal.com/1106188.html. Рассуждения про "интернирование всех инородцев и классово неблагонадёжных, на всякий случай" уже не принято вести в приличном обществе, нужно перестать их вести и для "инородной и классово неблагонадёжной техники". Мне всё равно, забирает собственность свой диктатор или чужой. Оба хуже. Но это отдельная дискуссия от дискуссии про обсуждение происхождения.
Thursday, June 16th, 2016
7:47 pm
Архимейт 3.0, теперь со стратегией и физикой
Cмотреть новую спецификацию (формально вышла позавчера) ArchiMate 3.0 вот тут: http://pubs.opengroup.org/architecture/archimate3-doc/

Авторский коммент "что там нового": http://blog.bizzdesign.com/archimate-3.0-the-next-step-in-the-evolution-of-the-standard, формальный список изменений -- http://pubs.opengroup.org/architecture/archimate3-doc/apdxe.html#_Toc451758153 (в частности, отношение used_by изменено на serving, к motivation elements добавлен outcome, infrastructure переименовали в technology и т.д.).

Из главных новинок -- выполнение стратегии (элементы resource, capability и course of action -- используется в связке с motivation elements) и физический слой для IoT и Industrie 4.0. (то есть стандарт из кибер стал киберфизическим -- элементы equipment, facility, material, distribution network -- и communication path стал просто path, чтобы включить сюда и физику).

Конечно, много ещё не столь инновационной полировки напильником по тексту. Хотя добавленный механизм кастомизации нельзя сказать, что "мелкое дополнение". Факт-ориентированность Архимейта закончилась, можно добавлять атрибуты. Специализировать элементы можно было и раньше, но появились в количестве informative примеры этой специализации (типа business collaboration может быть специализирована до social network -- A social structure made up of social actors (individuals or organizations) and the connections between these actors. Пример специализаций Course of Action как раз Strategy и Tactic). И появились "профили", что по факту означает возможность препрограммирования в моделерах каких-то специализированных для тех или иных применений версий языка на базе предопределённых наборов специализированных элементов языка с их атрибутами.

Редакторы для всех этих новаций пока платные, Archi будет попозднее (разработчик ищет денег на разработку апгрейда -- http://forum.archimatetool.com/index.php?topic=229.0, "If funding is successful we are aiming for around October/November 2016").

Одновременно иметь стратегию и (кибер)физику в ArchiMate -- это очень сильный ход. Понятно, что версию 3.1 с корретировкой ошибок нужно ждать очень скоро (ибо наверняка там противоречий при добавлении физики осталось предостаточно), но и текущий вариант вдохновляет и открывает новые горизонты.
* * *
Мои посты по русификации Архимейта (версии 2.1) по ссылкам тут: http://ailev.livejournal.com/988360.html
[ << Previous 20 ]
About LiveJournal.com