?

Log in

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

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

Мобильная коллаборация [10 Dec 2011|02:46pm]
Я согласился выступить и помодерировать дискуссию на семинаре по мобильной коллаборации, который проводят Открытый университет Сколково и Кластер Информационных Технологий Фонда Сколково 16 декабря 2011 (программа семинара http://www.slideshare.net/IT-Cluster/it-cluster-workshop-on-mobility-and-collaboration, ссылка на регистрацию http://openu.timepad.ru/event/16274).

И я даже подготовил подстрочник этого доклада:

1 comment|post comment

IBM Watson занялся патентами и статьями, разобрался с хим. формулами, теперь называет себя IBM BAO [10 Dec 2011|09:55pm]
IBM опять жжёт: они подарили Национальному институту здоровья огромную базу данных химических и фармацевтических данных. Фишка в том, что эта база данных была составлена путём чтения компьютером многочисленных патентов и научной литературы, и последующим выковыриванием из прочтенного упоминаний веществ. Этим царским подарком привлекается внимание к IBM BAO strategic IP insight platform (SIIP, http://www.ibm.com/services/us/gbs/bao/siip/). Заинтересованные компании тоже приглашаются за подарком, только им нужно будет за этот подарок заплатить.

BAO -- это business analytics and optimisation, IP -- это intellectual properties. Нет, я не большой любитель "интеллектуальной собственности". Я, скорее, противник таковой. Но это и есть технология, стоящая за IBM Watson. Только теперь этому IBM Watson скормили более 30 миллионов патентов и статей, в которых было описано более 200млн. химических соединений. Результат: возможность задавать этой базе вопросы на естественном языке -- и получать ответы с качеством не хуже, чем у чемпионов мира по "Своей игре" (если бы такие чемпионы существовали в области химии и фармацевтики). База поддерживается на серверах IBM, доступ к ней через интернет (подаётся это через модное слово "облачный сервис").

Дальше нужно смотреть схемку из трех уровней (данные, аналитика, консалтинг) из рекламки http://www-935.ibm.com/services/us/gbs/bao/pdf/SIIP_Solution_Brief_2pages_R4.pdf

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

На очереди у IBM не только в химия и медицина, вестимо. Родительский проект IBM тут: http://www.ibm.com/software/data/business-analytics-optimization/

Искусственный интеллект, как обычно в случаях прогнозов будущего, подкрадывается совсем не с той стороны, откуда его ждёшь -- и совсем под другими именами. Сейчас вот еще ABBY со своей технологией "понимания речи" вылезет -- тут оно всё и начнёт происходить быстро-быстро, мало никому не покажется.
13 comments|post comment

Робототехника для третьеклассников [10 Dec 2011|11:29pm]
До конца урока 16 (это примерно соответствует концу января в курсе программирования для семиклассников физ-матшколы) и тем самым планового окончания эксперимента с обучением программированию третьеклассника осталось 5 задач. Это означает, что нужно срочно определяться, что же делать дальше.

Я так понимаю, что есть два основных пути:
1. Математика и алгоритмика в их вычислительном варианте. См., например, http://www.google.com/edu/computational-thinking/ (и там Conrad Wolfram says the part of math we teach -- calculation by hand -- isn't just tedious, it's mostly irrelevant to real mathematics and the real world. He presents his radical idea: teaching kids math through computer programming).

Для меня вычислительная математика (включая алгебру) – это системы программирования типа Mathematica, Maple и в пределе – использование языка Modelica для дифуров (но не Matlab, который современная замена Фортрана. Матлаб каузален, а вот Моделика – акаузальный язык). Это направление для школьников пока у нас никто не разрабатывает, а ведь это естественный выход из начальной математики в физику -- и дальше развитие по инженерной линии. Моделика сейчас полным ходом стыкуется с SysML (который я терпеть не могу, но который преподносится как «язык системной инженерии»), и это неслучайно. Так что линия Mathematica+Modelica и выход в моделирование – это естественное развитие линии "чистой алгоритмики", ибо не связана со сложными структурами данных и явным поминанием онтологии, интеграции разных знаний, логики и т.д..

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

2. Другая же линия, также вырастающая из необходимости моделирования киберфизических систем – это математическая логика, философская логика и моделирование данных. Математика там дискретная. Это базы данных, Онтолан, САПРы, PLM и далее искусственный интеллект – от старинных систем продукций до новомодных оринетированных на лингвистику систем понимания естественного языка. По этой линии мы уже имеем некоторые заделы, и буквально в начале этой недели смогли сформулировать какую-то «взрослую программу» по одной из веток этого направления: http://dot15926.livejournal.com/27293.html

Сюда же я бы отнёс «классическую computer science» -- работа с компиляторами, интерпретаторами: DSL и их реализация. Ибо каждый язык программирования – это какой-то domain-specific язык, в том числе задействующий разные парадигмы вычислений. Тут волнуют уже не столько алгоритмы, сколько модели их представления – моделирование алгоритмов, как исполнимых данных, семантика исполнения, преобразования моделей и т.д.. Но тут пока внятного предмета и подхода я не могу сформулировать – разве что указать на проекты STEPS и движение language workbenches.
Из этого разнообразия, учитывая срочность вопроса и наличные ресурсы, для третьеклассника я бы выбрал робототехнику:
а) программирование чего-то абстрактного (типа манипуляции текстовыми строками) -- это не пройдёт, будет забастовка по-итальянски. Два абстрактных предмета типа математики явно не потянуть.
а) никакого особого восторга от программирования нарисованных сущностей у дитенки нет, и не только от робота КуМира, но даже и от каких-нибудь 3D сред (проверено: надоедает за 5 секунд).
б) выход программ в реальный мир, конечно, много круче, нежели выход программ на дисплей. Инженерия киберфизических систем будет покруче, нежели только программная инженерия.
в) есть соревнования по робототехнике, что обеспечит хоть какую-то мотивированность.
г) как раз вчера дитенка собрал очередную лего-конструкцию из 1015 деталей (какой-то крейсер из Звёздных Войн), так что руки собрать какого-то робота из Lego у него чешутся, нужно срочно это желание задействовать.

Итак, я зарегистрировал позавчера семейную команду робототехнического спорта "Агенты" (надеясь когда-нибудь дойти до программирования настоящих автономных агентов) -- http://robosport.ru/msr/, купил вчера NXT 2.0 -- http://www.apiks.ru/lego-mindstorm/lego-mindstorms-nxt-20-8547-lego-maindstorms-nxt-20.html (доставили через несколько часов после заказа) и поглядел на возможности программирования этих роботов.

Тут оказалась засада:
-- программирование из КуМира будет готово только к Новому Году (но эксперименты уже были, и они были успешными)
-- программирование на Scratch возможно (http://enchanting.robotclub.ab.ca/tiki-index.php), но это тоже явно эксперименты
-- штатное программирование (на языке G, среда LabVIEW) подразумевает визуальное программирование на потоках данных (http://www.labview.ru/labview/what_is_labview/rapid_development.php). Хочу ли я учить программировать на примере такой редкой парадигмы -- уж не знаю. Но 100% книг посвящены именно этой ветке.
--- самая профессиональная среда программирования этих роботов (она и применяется на соревнованиях) -- это язык Си, куда ж без него (и для него даже есть даже какие-то уроки http://www.robotc.net/education/curriculum/nxt/). Заодно на этом языке программируются и разные другие роботы.
-- есть и много других языковых поделок и недоделок: http://www.teamhassenplug.org/NXT/NXTSoftware.html (и этот список далеко не полный, я даже встречал где-то программирование NXT 2.0 на Haskell).

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

Так что я в задумчивости, а на размышления у меня осталась одна неделя.

Ближайшие соревнования по робототехнике окружного уровня будут в марте, московского уровня -- в апреле 2012. Как я понял, они проходят так: детей отделяют от взрослых, и дают им два часа на сборку роботов из полностью разобранного состояния и программирование этих роботов (условие задачи обычно модифицируется, чтобы нельзя было использовать подготовленную дома взрослым программу робота: неумеющие программировать детки сразу отсеиваются, ибо не в состоянии внести изменения в домашние заготовки). Вот и выйдем на объективную (а не мою личную) оценку: может дитенка программировать, или не может. Других способов попасть на олимпиаду по программированию для третьеклассников я не нашёл.
19 comments|post comment

navigation
[ viewing | December 10th, 2011 ]
[ go | previous day|next day ]