4 недели назад 28 февраля 2019 в 12:00 73498

У СПО-сообщества есть традиция — каждый год в конце января собираться в Переславле-Залесском на конференции «Свободное программное обеспечение в высшей школе» (OSEDUCONF), организованной российской компанией-разработчиком операционных систем «Базальт СПО» при поддержке Института Программных Систем РАН. Послушать доклады, пообщаться и вообще.

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

Обучение малышей

Действующий образовательный стандарт предписывает начинать изучение информатики в 7-м классе. Считается, что этого достаточно для того, чтобы к 9-му классу ученик успевал получить некоторые навыки в практическом программировании, на которые будет опираться преподаватель. Однако реальность упорно не желает соглашаться с таким прекрасным планом — должными умениями обладают только единицы, на которых учитель ориентироваться не может.

Кандидат физико-математических наук Анатолий Кушниренко рассказал о курсах обучения информатике для дошкольников. Иллюстрация Сергея Голубева/Upgrade

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

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

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

Правда, и тут не получилось совсем гладко. Дело в том, что основную задачу курса никто не отменял — после его завершения ученики должны владеть базовыми навыками практического программирования, причём не при помощи пиктограмм, а в традиционной текстовой системе. Например, в «КуМир». Но четвероклашкам, которые только-только читать научились, делать это несколько затруднительно.

Для облегчения перехода в НИИСИ был разработана специальная смешанная среда «ПиктоМир-К». Суть её заключается в том, что один и тот же алгоритм может быть записан как при помощи пиктограмм, так и текстом. Попутно решаются ещё две задачи. Во-первых, ученик понимает, что ошибка может быть не только алгоритмической, но и синтаксической. Во-вторых, он осознаёт условность языка программирования и вторичность кода относительно метода решения.

Изучение USB-интерфейсов

В курс низкоуровневого программирования входит изучение различных интерфейсов подключения, главным из которых сегодня является USB. Его устройство заметно отличается от COM, PS/2 и подобных, что создаёт определённые трудности в учебном процессе. О довольно элегантном способе их преодоления участникам конференции рассказал доцент БрГТУ к. т. н. Дмитрий Костюк.

Кандидат технических наук Дмитрий Костюк продемонстрировал работу ConfigFS и FunctionFS для виртуализации USB. Иллюстрация Сергея Голубева/Upgrade

Если рассматривать устройство как логический объект, то USB представляет собой либо хаб, определяющий дополнительные точки подключения, либо функцию, реализующую его функционал. Каждая функция имеет как минимум одну конфигурацию, каждая конфигурация — как минимум один интерфейс, каждый интерфейс — оконечные точки, различающиеся по номеру и направлению передачи данных. Всякая функция после включения реализует хотя бы две оконечных точки с нулевым номером, остальные появляются в результате конфигурирования.

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

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

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

Для организации лабораторных работ в БрГТУ упор сделан на взаимодействие виртуальных файловых систем ConfigFS и FunctionFS. Первая позволяет создавать и изменять объекты ядра и используется для описания функций и конфигураций — подобный подход применяется в системе Android. Вторая отвечает за поддержку типовых функций в пространстве пользователя. Иерархическая структура реализуется на уровне файловой абстракции через создание определённых файлов и каталогов.

В качестве аппаратного обеспечения могут использоваться любые одноплатные компьютеры, контроллеры которых работают в режиме USB-device. Например, Raspberry Pi. В необходимый набор программ помимо libusb входят утилита lsusb для получения информации о подключённых устройствах и анализатор сетевых пакетов Wireshark.

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

Система подготовки и публикации текстов diglossa.js

Эту программу на конференции представлял её автор — разработчик Михаил Быков. По его словам, это не просто инструмент для работы с текстом, а некий прообраз библиотеки будущего. Причём, определённый резон в столь смелом заявлении есть.

Михаил Быков презентовал систему управления текстами «Диглосса» diglossa.js собственной разработки. Иллюстрация Сергея Голубева/Upgrade

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

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

Система «Диглосса» интересна даже не технической реализацией (хотя программисты наверняка с этим не согласятся), а идеей, которая всегда должна идти впереди кода. Ведь, откровенно говоря, значительная часть опубликованных в сети текстов носит откровенно вторичный характер и без ущерба для читателя может быть заменена на первичный авторский материал, снабжённый несколькими дополнениями, замечаниями или комментариями.

Швейцарский нож передачи знаний

Именно так назвал Стас Фомин программу Open Broadcaster Software (OBS). Его рассказ был посвящён использованию этого инструмента для выпуска MOOC — массовых открытых онлайн-курсов. В основу доклада лёг личный опыт автора, снимающего практически все мероприятия, связанных со свободным ПО. Благодаря его труду сообщество имеет доступ к огромному архиву видеозаписей, который в ближайшее время пополнится конференцией в Переславле.

Стас Фомин поведал о личном опыте использования OBS для записи онлайн-курсов. Иллюстрация Сергея Голубева/Upgrade

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

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

Стас Фомин сформулировал несколько правил добротного информационного видеоматериала. Разумеется, они заметно отличаются от советов для снимающих исключительно свадьбы и дни рождения.

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

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

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

В-четвёртых, профессиональные навыки съёмки сериалов, свадеб и спортивных состязаний при изготовлении MOOC не имеют никакого значения. Иными словами, забудьте всё, что знали раньше. Если, конечно, знали.

Использование OBS как раз и позволяет выполнить все эти условия. Быстро, просто и относительно дёшево. В конце концов, главное в MOOC — именно информация, а не самовыражение изготовителя ролика. Вероятнее всего, чем меньше в них заметна режиссёрская работа, тем лучше.

«Чуткий дом»

О продукте, созданном совместными усилиями ИПС РАН и провайдера «Ботик-Технологии» рассказал директор ИПС д. ф.-м. н. Сергей Абрамов. Проект стал финалистом конкурса, проведённого ФАНО России и фондом «Сколково» в 2014-м году.

Доктор физико-математических наук Сергей Абрамов представил «Чуткий дом», аналог «умного дома» с возможностями самообучения и предсказания проблем. Иллюстрация Сергея Голубева/Upgrade

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

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

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

Впрочем, дискуссия носила, скорее, философский характер, поскольку братья Стругацкие упоминались в ней значительно чаще, чем разработчики «Чуткого дома». Что касается практики, то решение предоставляет пользователю полную свободу. Не доверяешь программам — не пользуйся сценариями. Приезжай и разбирайся лично.

Что касается взаимодействия науки и бизнеса, то в рамках проекта «Чуткий дом» было выполнено три НИР по направлению «Облачная инфраструктура и мобильные приложения», один НИР по направлению «Машинное обучение» и четыре ОКР по направлению «Технологии сенсорных сетей». Само по себе это уже говорит о многом.

«Эльбрус» и «Байкал»

Фойе было не менее интересно, чем зал. Там было, что посмотреть и потрогать руками.

Два ноутбука Lenovo. Один — с системой «Альт Образование». На другом установлена ОС «Альт 8» с набором ПО для школ Московской области. Кстати, за последние два года учебные заведения Подмосковья получили более 40 тыс. таких готовых комплектов.

Система на базе процессоров «Эльбрус» погружена в прозрачный корпус с безвредным хладагентом. Иллюстрация Сергея Голубева/Upgrade

Типовой отечественный модуль, предназначенный для изучения интернет-технологий, состоит из сервера «Эльбрус 801-РС», рабочих станций «Эльбрус 101-РС», коммутаторов RTT-A220-24T-4G производства «Русьтелетех» и преподавательского монитора ГК «Билтех». В качестве операционных систем используются «Альт Сервер» и «Альт Рабочая Станция», специально предназначенных для этих процессоров. Из иностранного там только пользовательские мониторы Samsung, да и те российской сборки.

Если сравнивать производительность отечественного решения с аналогичным параметром обычных конторских машинок, то «на глазок» разницы не ощущается. Безусловно, вопрос ещё и в цене. Однако, чтобы сопоставление было корректным, необходимо равенство в производимом количестве. «Эльбрусов» мало, поэтому они и дороже.

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

Наконец, система на базе процессоров «Эльбрус» с погружным охлаждением для наглядности была помещена в прозрачный корпус типа аквариума. На практике такой метод охлаждения даёт уменьшение энергозатрат до 60%, снижение общих капитальных затрат до 40% и максимальный уровень шума 45 Дб. Температура в рабочем режиме составляет примерно 60°C. Ну и смотрится, конечно, очень эффектно, даже водопад имеется.

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

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

Никто не прокомментировал материал. Есть мысли?