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

В этой статье я хочу рассказать о собственном опыте внедрения системы тестирования в школьной практике. Моя программа предельно проста — она написана на Python в духе unix-way: делает одну вещь, но делает её хорошо. Опытные разработчики вряд ли увидят в ней что-то новое, но цель текста — показать, как принципы системного администрирования и инженерного мышления могут помочь в решении педагогических задач.


Проблемы классической системы

За годы преподавания я постоянно сталкивался с одной и той же проблемой — как объективно оценить знания всех учеников при ограниченном времени.

Если урок истории проходит раз в неделю, по нормам нужно поставить минимум три оценки за триместр. На практике это означает: пять человек у доски — и урок закончен.

Я пробовал разные подходы: выборочный опрос, случайные вопросы по параграфу — три минуты на ученика, чтобы понять, читал ли он текст. Это ускоряло процесс, но не решало главного: системность и объективность оставались недостижимыми.

Эра нейросетей

С появлением нейросетей домашние задания потеряли смысл. Ученик за минуту получает готовый текст, а у меня уходит три часа на его проверку. Более того, честные ученики оказываются в проигрыше: их работы слабее, потому что они написаны собственными силами.

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

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

Поиски решения

Ученики изобретательны и находят способ обмануть любую систему.

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

Тогда я решил: пусть всё будет просто. Минимум интерфейсов, максимум контроля. И вернулся к идее классического тестирования — но на своих условиях.

Тестирование и мой опыт monkey-кодинга

Как-то у меня появилось два свободных окна между уроками. За это время я написал небольшой скрипт на Python — не больше 80 строк. Использовал библиотеку questionary.

Формат теста оказался прост и удобен:

Вопрос|Правильный ответ|Неправильный|Неправильный|...

Программа случайным образом перемешивает варианты, но сохраняет правильный ответ в первом поле. Я предусмотрел и выбор количества вопросов: если указано больше, чем есть в базе, программа просто берёт максимум.

Таким образом, из базы в 200 вопросов каждый ученик получает всего 5 случайных. Пример исходников доступен в открытом репозитории:

github.com/AtheistATT/school

Всё распространяется под MIT-лицензией — пусть пользуются те, кому нужно.

Кто пойдёт к доске?

Проблема №1 — максимизировать количество проверенных учеников.
Пять случайных вопросов и три минуты на прохождение оказались оптимальным сочетанием.

Так я могу проверить половину класса за урок. При этом я избегаю работы с персональными данными — логи и конфигурации лежат в .gitignore.

Следующий вопрос: кто идёт отвечать?
Если желающих нет — задержка, если много — шум. Решение оказалось неожиданным: я просто использую randomus.ru для выбора ученика. А чтобы не возиться с мышью, применяю плагин Vimium — теперь всё решают клавиши, и процесс идёт в духе Unix: быстро, минималистично и без кликов.

Bash в помощь

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

grep — и я вижу оценки нужного ученика:

grep "Иванов" log_all.txt

cat — и все логи за неделю объединены в один файл:

cat *.txt > log_all.txt

Хочу объединить все тесты в общий банк? Тоже не проблема:

cat * > ultimate.txt

Да, команда примитивна, но философия верна: делай меньше, но делай лучше. Именно этот подход позволяет мне работать быстрее и сосредоточиться на сути — на обучении, а не на бумажной рутине.

Что дальше?

Экзюпери сказал: «Книга закончена не тогда, когда нечего добавить, а когда нечего убрать».
Моя система развивается именно по этому принципу.

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

Также я реализовал списки классов, чтобы ученик не вводил фамилию вручную. В Windows-версии эта функция пока не активна — впереди оптимизация.

Мой проект прост, но он живой. Он растёт, потому что отвечает реальной потребности: сделать оценивание объективным, а работу учителя — эффективной.

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

Заключение

Мой проект — это попытка объединить педагогический опыт и инженерное мышление. Он делает процесс проверки знаний прозрачным, быстрым и честным.

Учитель получает инструмент анализа, а ученик — простое и понятное испытание. Машина берёт на себя рутину, освобождая время для настоящего обучения.

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

Комментарии (30)


  1. randomsimplenumber
    10.11.2025 20:59

    У учителей свои погремушки, конечно. Но искать оценки grep'ом.. Структурированные данные просят, чтобы их занесли в таблицу , и работали с ними как принято. Не grep а select.


    1. Adalarus Автор
      10.11.2025 20:59

      Не стреляйте в пианиста он играет как умеет)

      Но замечание учту.


      1. DvoiNic
        10.11.2025 20:59

        "стреляный пианист становится виртуозом"©


  1. zweipluse
    10.11.2025 20:59

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


    1. randomsimplenumber
      10.11.2025 20:59

      локальный сервер

      Верните мне мой 2000-й.. У каждого в кармане комп с дохреллионом гигабайт и гигагерц. Но для расстановки галочек без сервера никак.


      1. zweipluse
        10.11.2025 20:59

        Просто запускается программа, которая раздает тесты в браузер + показывает ответы в реальном времени. Но если что, можно сделать автономный html с тестом :)


        1. randomsimplenumber
          10.11.2025 20:59

          А у кого нет миллиона свежего смартфона - идут в ###у.


        1. Adalarus Автор
          10.11.2025 20:59

          Да тоже решение. Но я исходил из тех реалий что доступны мне. То что самое простое и естественное. Не было времени просчитывать варианты. Но потом может придумаю что-то еще. Мне уже понравилось как юникс команды дополняют то что я сделал. На практике мои задачи учителя. Хотя я рад что мне рассказывают про интересные альтернативы. Я хочу учиться новому.


          1. zweipluse
            10.11.2025 20:59

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


            1. Adalarus Автор
              10.11.2025 20:59

              У меня так получилось что на написание скрипта ушло 2 часа. А все остальное это то окружение что я уже использовал. Почему unix-way. Дело в том что сама среда которая была подсказала как это можно организовать. Колхоз и кустарщина конечно. Но ведь работает.


              1. zweipluse
                10.11.2025 20:59

                среда случаем не astra linux?


                1. Adalarus Автор
                  10.11.2025 20:59

                  Я арч ношу на флешке. Может и я астра можно работать. Но проверять я это, конечно, не буду.


      1. qvvah
        10.11.2025 20:59

        Зря вы так. Мне приходила в голову идея программы, раздающей тесты прямиком на смартфоны учеников. БД с вопросами/задачами/медиа/ответами и учениками/группами/баллами, сервер с опросами и статистикой плюс клиенты под iOS/Android - хороший комплект для быстрого "среза" знаний у десятков-сотен человек в школьном классе, университетской аудитории, для предварительной оценки знаний работников перед проверкой квалификации или ТБ... Востребовано же, но похоже, нереализовано.


        1. randomsimplenumber
          10.11.2025 20:59

          Интересно, чатик уже умеет понимать снимки экрана, или нужно задания копировать-вставлять?


          1. qvvah
            10.11.2025 20:59

            Насчёт чатиков не знаю, а вот ИИ задания по фото щёлкает влёгкую, на радость учащимся. Но и на это есть варианты: ограничить время ответа на вопрос 5-10 секунд, вопросы задаются один за другим без перерыва, при попытке выхода из приложения или переключения на другое окно/активити другого приложения - тест прерывается автоматически с неудом и предупреждением преподавателю: "Вася П. пытался сжульничать, допросите отдельно с пристрастием".


            1. Adalarus Автор
              10.11.2025 20:59

              У меня органайзер для телефонов. Решают тест они по одному. Вопросы тестов в гитигнор. От клавиатуры еще я оторвал все клавиши кроме трех что нужны для теста) Но уже думаю использовать презентатор или геймпад для тестов. Поначалу геймпад будет поводом для кучи шуток. Но привыкнут. Да и что касается жульничества, я смотрю на это сквозь пальцы. Я не могу в нашей системе всех оценивать объективно. Есть у нас справка ПМПК. Ученик с этой справкой не может получить 2. Даже если он все уроки только играет в телефон 3 я ему поставить обязан. Пусть спишут иногда.


        1. zweipluse
          10.11.2025 20:59

          Можно и бота в телеграм для тестов сделать :)


          1. Adalarus Автор
            10.11.2025 20:59

            Да. Тоже вариант. Но я делаю 40 вопросов. Ученики быстро сделают ключи и все отличники. Да и про будущее телеграм... Я думаю mattermost контейнер поднимать. Но пока опыта ноль как в докере так и в matermost. Буду рад советам.


      1. Adalarus Автор
        10.11.2025 20:59

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


      1. qvvah
        10.11.2025 20:59

        Галочку - может и нет, но сервер может обеспечить:

        • хранилище вопросов и ответов с категоризацией по сложности, теме и т. п.

        • создание и хранение предзаготовленных подборок вопросов по темам

        • выдачу опросников со случайными вопросами по одной и той же теме хоть каждому отдельному ученику (например, предзаготовить 4000 вопросов, а ученикам выдавать по 40)

        • сохранение результатов опросов

        • статистику по учебному периоду, по потоку, группе/классу, отдельному учащемуся

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

        А вообще, что-то мне это напоминает. Anki?


    1. Adalarus Автор
      10.11.2025 20:59

      Интересно. Надо посмотреть. Но если это монолитное решение то уже не unix-way. А у меня получилось что то что я сделал на коленке хорошо вписывается в логику. Это работает. Что мне еще надо?


      1. zweipluse
        10.11.2025 20:59

        Если инструмент покрывает потребности, то это хороший инструмент. У меня самого есть много чего самописного для обучения. Самое трудное это доделать до конца, потому как постоянно кажется, что можно сделать лучше или сделать по другому. :)

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


        1. Adalarus Автор
          10.11.2025 20:59

          Вот что интересно. Я сегодня понял что мой инструмент создавался не 2 часа, а 3 года. Вся система которую я строил будто идеально подошла под мой скрипт. И теперь он часть моей системы. Я планирую дальше развивать. Но это тоже будет в стиле линукс(Unix-way).


      1. randomsimplenumber
        10.11.2025 20:59

        если это монолитное решение то уже не unix-way

        не unix-way - харам? ;) ох уж эти неофиты что святее Папы Римского ;)

        Какая разница, какого цвета корова, если она дает молоко?


        1. Adalarus Автор
          10.11.2025 20:59

          Я использую этот подход не ради подхода. Для меня он естественнее. Именно благодаря ему я смог сделать это быстрее. Каждый выбирает тот подход что удобнее ему. Я делал программу под себя и поделился опытом. Никакой цели мессианства я не преследую. Да и не неофит я. Линукс использую довольно давно. Зачем устраивать холивары на пустом месте?


          1. randomsimplenumber
            10.11.2025 20:59

            Да шутка же ;) Просто для типовых операций обычно существуют типовые инструменты. Что может быть типовее школьного тестирования? Ну, если есть способ склеить по быстрому какой то Unix way - хорошо конечно. Но странно.


            1. Adalarus Автор
              10.11.2025 20:59

              Я просто не понял что это шутка. Для учителей то что я делаю непонятно совсем. Именно по-этому я опубликовался не на педсовете, а на хабре. Тут люди гораздо умнее в it сфере чем я.


              1. DvoiNic
                10.11.2025 20:59

                на хабре. Тут люди гораздо умнее в it сфере чем я

                Так может, найти того (или на хабре, или среди родителей учеников), с кем вы совместно сделаете более качественный инструмент?

                "беда, коль сапоги начнет тачать пирожник, а [да-да, обратное тоже верно] пироги печи сапожник"©. Но вместе они сила.


  1. qvvah
    10.11.2025 20:59

    Можно использовать tkinter, ученикам было бы проще кликать мышью GUI вместо CLI.


    1. Adalarus Автор
      10.11.2025 20:59

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