?

Log in

No account? Create an account
Лабораторный журнал -- Day [entries|friends|calendar]
Anatoly Levenchuk

[ website | Лабораторный журнал ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Образовательные ступеньки к деланию роботов, три дня спустя [19 Jun 2018|03:21pm]
Вьюнош закончил уже давно все ОГЭ и отсылки в ЗФТШ, и приступил к своему "хочу делать роботов". Я писал про образовательные ступеньки к деланию роботов пару дней назад -- https://ailev.livejournal.com/1432847.html.

Что изменилось за эти три дня?

Вьюнош вчера и сегодня прослушал в СТАНКИНе три часа "Основ конструирования мобильных роботов" и "Датчиков для робототехнических устройств", в МИСиСе "Смартфон как пульт дистанционного управления роботом" -- это пошла подготовка к лагерю олимпиады Роботон-МиР, http://roboton-mir.ru/news/preparatory-classes-2018-summer.

Дальше я ему буду давать "Системное мышление", и меня не волнует, что это для него пока сложно и неподъёмно. Когда-то нужно начинать. При этом я понимаю, что и он, и жена будут этот курс саботировать. Он же не из школьной программы, и на обложке курса не нарисовано никакого робота!

Дальше я очень хочу попробовать двинуть его в http://course.fast.ai/ (минимальные требования -- годичный опыт кодирования и школьная математика), и там ещё есть часть вторая http://www.fast.ai/2018/05/07/part2-launch/, так что это удовольствие можно тянуть надолго. И это будет, понятное дело, не Julia, а Python и PyTorch. От судьбы не уйдёшь.

Но ещё я сформулировал в чатике Julia несколько добавочных тезисов про образование по информатике на Julia (https://t.me/JuliaLanguage/3734):

1. Программы == алгоритмы+данные. Текущие "школьные курсы" -- это ни разу не курсы информатики или программирования, они все курсы алгоритмики. Работа с данными ограничивается "типами" стек, дек, массив. Это полностью противоречит современному тренду, когда по сложной системе типов (часто вообще "базе данных" с дико кучерявой конецептуальной моделью данных) гуляют относительно простые алгоритмы, и сложность выбирается сложностью разных состояний проходов разных отдельных алгоритмов, оставляющих свои следы в разных местах сложных структур данных. То есть типы нужно учить не 10 часов на 100 часов алгоритмики, а 1000 часов на 1000 часов алгоритмики: над проектированием системы типов программисты проведут времени как минимум столько же, сколько над проектированием разных циклов и ветвлений алгоритма над этими типами. Поэтому линию обсуждения Julia и Python по этой линии не дотянули. На чём легче и чётче обучать работе с типами? На чём легче составлять и решать и проверять задачи по работе с типами? На чём легче демонстрировать разные концепты работы с типами? Ну, и обсуждать нужно Julia в версии 1.0, а Python лучше бы разу с 3.7, включая Data Class. [на это уже получен ответ в https://t.me/JuliaLanguage/3742, суть ответа: "ну, и как тут что-то выбирать? нужно всё!"]

2. Я полсотни реплик назад писал списочек "за" и "против" использования Julia как учебного языка. И там было в том числе и то, что Julia как первый в жизни язык не очень пригоден: но не обсуждался вопрос о том, учим мы кого и для чего. Учим людей императивному программированию на целых, плавающих и массивах, то есть Formula translator языку? То бишь алгоритмике? Или учим программированию на первом языке, а не алгоритмике? Или сначала должна быть алгоритмика, а потом полноценное программирование с типами? Вопрос остался необсуждённым.

3. А вот сделать какой-то DSL — для этого Python или Julia уже нужны, и можно обсуждать, на чём легче преподавать "создание предметно-специфических языков" и основанных на этих языках пакетов: на Питоне или на Julia.

4. Выходом же всего этого обучения будет раздел на GitHub, который показываться будет в разных местах, куда хотят попасть школьники. Вот как его проще получить: на Питоне? На Julia? Ибо на Паскале и на Си это как-то не просматривается, там вручную солидный кусок работы экосистемы придётся делать, и никаких DSL и прочих прелестей современного пакетирования не будет. А если этому не учат в том самом зазоре между школой (9 класс лицея) и вузом (который начнёт с усиленного курса алгоритмики на том же Паскале и вынесет мозг в сторону от требуемого на самых разных работах, но полезного для побед в олимпиадах)? Чему в этом зазоре учить, чтобы вместо вуза просто попасть в правильную лабораторию/стартап/проект и там работать и учиться параллельно по вечерам, уже сознательно и самостоятельно планируя своё обучение? Вот чему обязательно (а не добровольно, как тут предлагают для "Интеллектуала", читать-писать учат ведь в обязательном порядке, а не добровольном) нужно учить?

5. И, наконец, рассматриваем вычислительную математику: линал, матан, оптимизацию. На чём её учить? Разворачивать зоопарк экосистемы Питона? Или на Julia практически без зоопарка и могучих заклинаний внешних пакетов? На чём проще учить именно математике, отвлекаясь от особенностей разных пакетов программ по подержке требующихся для обучения вычислительной математике алгоритмов? Раньше учили бы на фортране, игнорируя даже паскаль со всеми его "типами". А теперь? Питон с библиотеками? Или Julia? Тем более что Jupyther у них для этого один и тот же.

Я подумал-подумал и в связи с этими всеми находками в чат Julia записал некоторую программу по разработке минимальной связки курсов (https://t.me/JuliaLanguage/3739):
— какой-то начальный курс алгоритмики + курс работы с типами языка, просто "для понюхать". Если сделать алгоритмику и добавить материал с типами, то аналогов такому курсу не будет, не нужно будет доказывать, почему этот курс хороший.
— sicp на Julia по примерно той же схеме, по которой его сделали для Python. Это заодно даст аналог "годичного опыта кодирования". Альтернатива тут только аналог sc50. Из плюсов: не нужно доказывать, что курс хороший.
— и дальше аналог курсов fast.ai на Julia, с использованием Knet с упором на его философию (и доработкой недостающих модулей и докруткой, чтобы было не труднее, чем в самом fast.ai). Это примерно такое же интеллектуальное развлечение, как и SICP или sc50 на Julia, по факту огромная работа. Из плюсов: не нужно доказывать, что курс хороший.
— остаются вопросы про линейную алгебру, оптимизацию, матан, байеса. Если выполнить предыдущие пункты, то не придётся доказывать, почему нужно брать именно эти курсы. Более того, какие-то курсы на эту тему уже есть, например, линейная алгебра: http://web.mit.edu/18.06/www/

А ещё меня спросили: зачем я писал текст про EduOps (вот этот: https://ailev.livejournal.com/1431056.html)? Для меня это были не только программные документы для Школы системного менеджмента (http://system-school.ru/), чтобы все преподаватели примерно одинаково понимали стратегию. Суть этих статей -- явное моделирование происходящего, задание терминологии, хороших метафор и образцов, увязывание в непротиворечивую дисциплину множества паттернов текущего поведения в сфере EduOps. Так, работу Andrew Ng по старту своего курса машинного обучения в Курсере, работу Fast.AI и многих текущих исследовательских групп с де-факто поведением EduOps нельзя было обсуждать в общих для них словах, как такую модель поведения -- а теперь я задал какой-то viewpoint, метод описания, и это легко. Теперь, после моих текстов про EduOps, сразу всем заметно, что "да, вот они ровно так и делают" (в отличие от того, что делают, например, в Пензе, где нет своих крутых исследований и базирующихся на них курсов).

Основная идея тут в том, что DevOps таки кроме своих исследований добегает до студентов и смотрит, что из них там на дальнем конце цепочки получается -- берёт ответственность за то, чтобы результаты его исследований не просто легли на полку библиотеки. В принципе, в текущей модели науки профессура ответственна больше за грантодобычу. Я недавно помогал оценивать одного профессора для Оксфорда: в их критериях оценки Оксфорд больше интересовало, как у него трек рекордс в добыче грантов. А тут в EduOps будет другое: как он доводит свои исследования до студентов так, чтобы они их потом могли где употребить в дело. Этого нету сейчас как общего места, это EduOps очень пока неформальная и не такая частая практика.

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

С образованием по роботам и образованием в вычислительной математике ровно то же самое: озабочены родители, озабочены любители языка, но нет озабоченных исследователей, которые и сделали бы все вот эти курсы. Нет EduOps, вот и не живёт тут педагогика.
1 comment|post comment

Девелопмент (недвижимости) по приказу [19 Jun 2018|04:18pm]
Посидел сегодня в панели при обсуждении цифровых трансформаций в девелопменте (недвижимости), вот тут: http://digitaldevelopment.tilda.ws/. Полюбили меня люди из недвижимости, вот я у них последний раз выступал с лекцией о будущем совсем недавно: https://ailev.livejournal.com/1413814.html.

Я выдал всего два тезиса:
-- что уже начинают говорить об аналоговых вычислениях, как нашем будущем, а мы тут всё "цифровизацию" обсуждаем -- это я сослался на работу IBM по созданию аналоговой нейросетки, вычисляющей с точностью цифровой: https://www.ibm.com/blogs/research/2018/06/future-ai-better-compute/. Всё быстро-быстро-быстро.
-- и при такой скорости изменений в прикладных/профессиональных областях нужно спокойно признать, что "никогда не успеем", и вкладываться в рост калибра личности себя и своих сотрудников. Ибо личности большого калибра этот калейдоскоп смены прикладных практик уж как-нибудь переживут. И суть периода уже не в том, чтобы найти на каждую прикладную практику талант, занимаясь охотой и собирательством, а просто выращивая личности большого калибра, занимаясь осёдлым земледелием. Ибо если нет фундаментального образования, то всё одно не сможешь воспользоваться ничем прикладным, просто толку не будет. Собственно, об этом у меня большая цепочка текстов "Фундаментальное образование", https://ailev.livejournal.com/1427073.html

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

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

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

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

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

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

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

Общий результат: что я там делал?! Зачем оно было мне, зачем оно было им?! Зачем я вообще согласился ходить в оффлайн филиал фейсбука? "В интернете что-то не так", а тут "в оффлайне что-то не так". Никакой, ну абсолютно никакой разницы.

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10213171985988298
7 comments|post comment

navigation
[ viewing | June 19th, 2018 ]
[ go | previous day|next day ]