О чем это?


Здравствуй, Хабр! Я — школьный учитель информатики. Однако, статья, которую вы читаете совсем не про Paint или Черепашку, но про смысл цифровой жизни школ.

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

Программное обеспечение для всероссийских проверочных работ


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

Вот так же и с ВПР. Вы слышали о том, что система контроля знаний учеников полностью автоматизирована, контрольно-измерительные материалы генерируются автоматически из закрытого банка заданий на каждую школу, работы проверяет компьютер… И тут вы скачиваете программное обеспечение для проведения ВПР по иностранным языкам. При попытке запуска вы получаете вот это:

image

Казалось бы что в этом странного? Приложению нужен КИМ (контрольно-измерительный материал) — все логично. Но вы понимаете, что программа была запущена на компьютере без доступа к интернету, не было никаких диалогов запроса идентификационной информации… откуда программе известно имя файла с КИМ? Да и странное какое-то это имя: вот признак типа работы — «vpr», вот разделитель "-", вот признак предмета «fl» (foreign languadge) и… далее разделителя нет, а затем признак параллели — «11» и на этом все. Вы начинаете что-то подозревать. Как будто у автоматической информационной системы, которая создала этот файл для школы иерархия данных заканчивается на номере параллели, а отсутствие разделителя между двумя последними элементами создает ненужные проблемы программе-экзаменатору. Она ведь должна будет разобрать это имя по разделителям…

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

image

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

Далее ваш взгляд останавливается на поле «Логин школы (без букв sch)». Напомню, программа запущена на компьютере без интернета а из вышеизложенного можно предположить, что все необходимые метаданные (включая и идентификатор школы) должны быть в файле КИМ. Другого варианта нет. Но если вы, ради интереса, попробуете ввести в это поле совершенно случайную последовательность цифр, вы увидите что приложению абсолютно все равно! Хотя нет, не все равно. Смотрите, логин школы попадает потом в имя папки с ответами.

image

Ну вот! Уже что-то машиночитаемое. Значит потом эту папку нужно будет куда-нибудь отправить для, например, автоматической проверки. Но о проверке потом. Сейчас же у меня появилось неутолимое желание посмотреть как устроен файл vpr-fl11.kim.

Немного реверса


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

image

Программа создает в рабочей директории файл kim.tmp и что-то туда очень интенсивно пишет, читая vpr-fl11.kim. Затем kim.tmp удаляется. Недолго думая, можно взять в руки отладчик и поставить точку останова перед последней инструкцией с упоминанием имени файла. Благо они оказались жестко закодированными.

image

Кстати sub_409F78 как раз вызывает процедуру API DeleteFileA.

Теперь у меня в руках есть файл kim.tmp, который примерно в два раза больше по размеру (26Мб), чем vpr-fl11.kim. Если его открыть в обычном текстовом редакторе, то мы увидим следующее:

image

Заголовок TPF0 очень красноречив: с большой вероятностью это бинарный файл со структурой данных Delphi… выяснять мне это не очень хотелось, тем более писать софт для его чтения. Хотя, как теперь уже видно, сделать это вполне реально. Ручками из этого файла можно достать несколько PDF документов, содержащих КИМ-ы и аудиопоток OGG с записью аудирования. Интереснее всего вот это:

image

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

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

image

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

В чем смысл?


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

В чем же смысл?