Журнал «Компьютерра» № 16 от 24 апреля 2007 года - Компьютерра Журнал 619 7 стр.


Что именно нужно детям для обучения и как им могут помочь в этом ИТ? Очевидно, им не нужно уметь работать в Excel, в совершенстве владеть Photoshop или знать язык запросов SQL. Даже не нужно знать, что файл – это "поименованная область на жестком диске". Равно как и множество других вещей, которыми богаты курсы информатики в школе.

Что же все-таки требуется в первую очередь? Ответ очень простой: иметь возможность экспериментировать, творчески выражать себя, общаться с другими людьми (в первую очередь – своими сверстниками), обмениваться с ними приобретенным опытом – и тем самым активно познавать окружающий мир, учиться и учить других. Эти идеи, объединяемые в концепцию конструктивистского (constructivism) обучения, активно продвигаются создателем языка Logo Сеймуром Пэйпертом (Seymour Papert), создателем Smalltalk Аланом Кеем (Alan Kay) и другими известными участниками проекта OLPC, и лежат в основе операционной системы XO.

Детский мир

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

Одно из основных направлений OLPC – совместная работа и общение между детьми. Технически оно обеспечивается автоматическим созданием беспроводных ad-hoc-сетей (ячеек, mesh), однако одной лишь возможности связи между несколькими компьютерами мало. Чтобы ей могли воспользоваться маленькие юзеры (причем естественным образом), нужно существенно перестроить всю модель системы. И это чувствуется практически в каждом ее элементе.

Например, в метафоре "рабочего стола". Собственно, как такового «стола» нет. (И правда, причем здесь стол, да еще и рабочий, когда мы говорим о детях?) Есть несколько режимов отображения виртуального пространства ноутбука и его окрестностей, различающихся масштабом [Эта идея удивительным образом перекликается с разработками Джефа Раскина о "зуммируемом интерфейсе" (см. статью Владимира Гуриева "Борец с системой" в «КТ» #582) – странно, что этой связи практически никто не замечает]. Наиболее близкий к привычному нам режим – "Дом", соответствующий собственно данному компьютеру. Более широкий взгляд покажет пользователей в группах, к которым принадлежит владелец ноутбука – например, его одноклассников, друзей и т. д. Участники представляются двухцветными иконками, причем этот цветовой идентификатор является важным элементом интерфейса системы – он сопровождает каждого пользователя почти постоянно (например, заменяет картинки-аватары в сообщениях). Поднимаясь на ступеньку вверх, можно осмотреть всю «окрестность» (neighborhood) – на экране отображаются все пользователи ячейки, объединенные в кластеры по текущей активности.

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

Еще одна привычная концепция, которой нет в OLPC – иерархическая файловая система. Роль файлов играют "объекты", а вместо файловой системы имеется "журнал", в котором записываются основные их изменения. Сохранение и восстановление состояний в идеале происходит автоматически при запуске и завершении «активности» [И снова что-то подобное мы уже видели у Раскина]. Если же нужно запомнить текущую версию объекта, но при этом продолжить его изменение (аналог функции "сохранить как"), на помощь приходит встроенная система управления версиями, знакомая программистам и участникам вики-проектов.

Модель для разборки

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

Один из девизов OLPC – "низкие полы и никаких потолков". С одной стороны, система должна быть максимально простой, чтобы быть доступной для полностью самостоятельного освоения ребенком с нуля, а с другой – эта простота не должна служить препятствием для раскрытия возможностей устройства и талантов ее владельца. Пятилетнему пользователю вряд ли захочется учить три тысячи команд Unix и читать многие страницы документации, но уже десятилетнему, возможно, захочется разобраться в том, как работает эта система и чего он может достичь с ее помощью.

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

Такую инфраструктуру обеспечивает специальная Developer-activity, представляющая собой полноценную среду разработки новых видов деятельности. Большинство компонентов XO написаны на языке Python, по мнению многих экспертов являющемся одним из лучших кандидатов на роль первого «серьезного» языка программирования. Юный хакер может модифицировать любую готовую «активность» или даже организовать совместную разработку по всем правилам open source (с патчами, контролем версий и т. д.), а также использовать приемы экстремального программирования благодаря функциям совместного редактирования кода в реальном времени (эта возможность присутствует и в обычном текстовом редакторе, основанном на AbiWord).

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

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

Вперед в будущее?

Многие вещи, о которых я рассказал выше (и те, которые не поместились в формат этого краткого обзора), пока не реализованы в коде и остаются скорее концепциями, либо реализованы не до конца (трехсоткилобайтный документ, описывающий пользовательский интерфейс системы, доступен на wiki.laptop.org). Посмотреть «вживую» мне удалось только на eToys и, отчасти, на зуммируемый рабочий стол (не слишком функциональный на одиночном компьютере, не включенном в беспроводную сеть с другими подобными устройствами). Однако это не самое главное. Как писал Джереми Эллисон (Jeremy Allison) в статье для ZDnet, "даже если OLPC потерпит неудачу, он существенно повлияет на компьютерный ландшафт". Идеи, заложенные в его основу, стоят того, чтобы их реализовали. И они будут реализованы. В рамках этого проекта или другого, через полгода или десять лет – уже не столь важно.

ГОСТИНАЯ: Парадоксы систематики

Автор: Дмитрий Шабанов

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

Систематики до сих пор спорят, существует ли единая, правильная классификация. Оптимисты верят, что это та классификация, которая точно отражает филогению – эволюционную историю. Вот узнаем с помощью молекулярных методов, как шла эволюция, и поставим все на свои места… Увы, эволюционные изменения многомерны, и, проецируя их на иерархическую систему, мы неизбежно теряем значительную часть информации. Какую? Ту, которую сочтем менее важной. Считаете, что «объективными» методами можно определить, какая часть информации наиболее важна? Оставьте эти иллюзии!

ГОСТИНАЯ: Парадоксы систематики

Автор: Дмитрий Шабанов

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

Систематики до сих пор спорят, существует ли единая, правильная классификация. Оптимисты верят, что это та классификация, которая точно отражает филогению – эволюционную историю. Вот узнаем с помощью молекулярных методов, как шла эволюция, и поставим все на свои места… Увы, эволюционные изменения многомерны, и, проецируя их на иерархическую систему, мы неизбежно теряем значительную часть информации. Какую? Ту, которую сочтем менее важной. Считаете, что «объективными» методами можно определить, какая часть информации наиболее важна? Оставьте эти иллюзии!

Интерпретируйте, к примеру, такой факт. С тех пор как разошлись эволюционные пути человека и шимпанзе, человек приобрел 154 новых гена, а наши «отсталые» родственники шимпанзе – 233! Как измерить и сравнить эти изменения? По числу генов? По длине последовательностей ДНК? По изменению образа жизни? Одна из влиятельных школ систематики говорит: если изменение видов нельзя оценить "объективно", то его не следует учитывать вообще и реконструировать надо лишь порядок ветвления эволюционного древа. Страусово решение: зачем нужна классификация, которая не учитывает основной результат эволюции – изменение видов?

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

Орнитологи давно выделили две группы грифов: Старого Света (собственно грифов) и Нового Света (катартид). Хотя было ясно, что эти группы не находятся в тесном родстве, результаты анализа ДНК оказались неожиданными. Американские грифы – это на самом деле аистообразные. К их числу относятся и современные кондоры, и самые крупные из когда-либо летавших птиц. Речь идет о тераторнисах ("ужасных птицах"), "грифах", которые в неогеновом периоде питались останками гигантских млекопитающих. У одного из них, аргентависа, размах крыльев достигал 7 м, а вес 120 кг! Помните, в "Детях капитана Гранта" Жюля Верна кондор похитил и утащил по воздуху мальчика? Реальные кондоры на такие подвиги не способны. Но в нашем фольклоре европейские аисты носят детей в клювах (держа за пеленочку), а американские – в когтях!

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

Несмотря на все чудеса эндосимбиоза, переваривание целлюлозы для термитов – непростой процесс, в кишечнике одного насекомого ему не пройти. Поэтому одна и та же порция пищи проходит через пищеварительные тракты многих насекомых, поедающих фекалии друг у друга. В конечном счете комочки из продуктов переработки пищи будут использованы для возведения термитников. Эти сооружения, иногда достигающие величественных размеров, обеспечивают защиту и благоприятный климат для совместного расщепления древесины. И теперь получается, что все это делают тараканы?! Представляете, какой победой генной инженерии и прочих биотехнологий стало бы создание прусаков, содержащих в кишечнике симбиогенетический комплекс, способный расщеплять целлюлозу? Такие тараканы поедали бы не только пищевые остатки, но и мебель с книгами.

Сфера приложения данных молекулярной систематики растет. Последняя новость: из остатков мягких тканей тираннозавра, найденных пару лет назад в Монтане, извлекли фрагменты молекул белка (коллагена, основы соединительной ткани). Анализ этих фрагментов пока принес лишь тривиальный результат: тираннозавр состоял в более близком родстве с курицей, чем с лягушками и тритонами. Стоило ли ради этого тревожить останки, ожидавшие своей судьбы 68 миллионов лет? Стоило! Ведь лиха беда – начало. Поймем, в каких породах макромолекулы сохраняются лучше, – научимся их эффективнее искать и толковее анализировать, и со временем узнаем что-то новое. Поживем – увидим…

КАФЕДРА ВАННАХА: Относительность и электрические машины

Автор: Ваннах Михаил

В заметке «И вычисления относительны» («КТ» #682, с. 16) рассказано о влиянии выбора системы отсчета на эффективность вычислений. Но там речь шла о релятивистских системах, вроде пучков элементарных частиц, движения в которых заставляют учитывать эффекты специальной теории относительности (СТО). Но многие ли знают о существовании достаточно широко используемой электрической машины, функционирующей на основе релятивистских эффектов?

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

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

Очень просто! Куда проще, чем в самых первых динамо-машинах. Но за счет чего же образуется ток?

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

Но последовательное описание явления униполярной индукции дается лишь теорией относительности. Рассмотрим, как это делается.

Поставим мысленный эксперимент: пусть мы имеем две системы отсчета. Одна лабораторная (сидим за столом и глядим на вращающийся магнит), другая – связанная с магнитом (собственная система отсчета). Вообразим себя сидящими на магните и вращающимися вместе с ним.

После того, как мы ввели две системы отсчета, и начинается самое интересное. В связанной с магнитом системе отсчета присутствует только постоянное магнитное поле. Магнит в этой системе неподвижен, и на его свободные электроны никакие силы не действуют. В магнитном поле движется только проводник, и Лоренцева сила действует только на его электроны. Именно она и создает электродвижущую силу (ЭДС), вызывающую электрический ток. Запомним это.

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

А теперь зададим себе очень простой вопрос: как все обстоит на самом деле? Какие заряды создают электрическое поле, которое, как Афина из головы Зевса, вдруг является во всеоружии, но из ничего, из перехода от одной системы координат к другой.

Назад Дальше