Выпускник НГУ создал бесплатный образовательный симулятор «Компьютер Ершова»

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

Название проекта отражает его главную цель — собственными руками, шаг за шагом, собрать полноценный работающий компьютер. Отдельные узлы и вентили, как детали конструктора, складываются в процессор, способный выполнять настоящие программы. Свой проект я назвал в честь академика Андрея Петровича Ершова — пионера отечественного программирования и создателя первой школьной программы по информатике, — объяснил Дмитрий Калашников.  

Обучение в симуляторе построено на принципе bottom-up (снизу вверх) и начинается с классической тройки вентилей (AND, OR, NOT), что гораздо ближе к университетским курсам схемотехники. Главное отличие — честная работа с «железом». Игрок не просто соединяет абстрактные блоки, а своими руками настраивает периферию через Memory-Mapped I/O, использует адресный дешифратор и решает конфликты на шинах. Шаг за шагом, конструируя сумматоры, триггеры памяти и АЛУ, он доходит до создания полноценной Гарвардской архитектуры.

Для этого не требуется даже начальных знаний, данный процесс можно начать буквально с нуля — в игру встроены учебник с теорией и справочник компонентов (Даташиты). А внутренняя экономика транзисторов, поощряющая самостоятельную сборку, превращает «Компьютер Ершова» из простого конструктора в настоящий интерактивный курс. За самостоятельное прохождение 47 уровней начисляется валюта — «Транзисторы», а за использование автосборки игрок получает штраф. Это стимулирует глубокое вовлечение в процесс.

Работает эта система просто: вы собираете схему из логических элементов (вентили И, ИЛИ, НЕ, мультиплексоры, триггеры) прямо на холсте в браузере, соединяя их проводами. Встроенная система валидации автоматически сравнивает поведение вашей собранной схемы с целевой таблицей истинности текущего уровня. По мере прохождения уровней открываются новые, более сложные компоненты. Мелкие схемы упаковываются в чипы, а задачи усложняются вплоть до написания программ для собственного процессора на языке ассемблера, — пояснил разработчик.  

Идея создания интерактивного тренажера возникла у Дмитрия Калашникова из наблюдения за мировыми образовательными трендами. В их числе — программа «Один студент — один чип» (One Student One Chip, сокр. YSYX). Это передовая образовательная инициатива, цель которой — подготовка высококлассных специалистов по компьютерным системам. Главный ее принцип заключается в том, что каждый студент в процессе обучения должен пройти полный цикл создания процессора и tape-out (выпуск готового чипа). В России подобной инициативы пока нет, но потребность в ней колоссальна. Разработан стимулятор «Компьютер Ершова» на языке Javascript на сервере NodeJS.

Мне изначально хотелось сделать бесплатный проект для поддержки отечественного инженерного образования. Главная миссия моей разработки — сделать так, чтобы компьютерные технологии перестали казаться сложной, непостижимой «магией». Понимание того, как на физическом и логическом уровне работает процессор, закладывает фундаментальную базу для будущих инженеров, программистов и ИТ-специалистов. «Компьютер Ершова» создан для того, чтобы этот сложный путь превратился в увлекательный и наглядный процесс, ведь если «программирование — вторая грамотность», как утверждал Андрей Петрович, то понимание аппаратной архитектуры компьютера — это знание его фундаментального алфавита, необходимого для по-настоящему глубокого освоения этой науки. Я считаю, что начинать этот процесс необходимо со школьной скамьи. Если ребенок своими руками (пусть и виртуальными) соберет из простейших деталей память, арифметико-логическое устройство и заставляет их исполнять код, страх перед «черным ящиком» системного блока исчезнет. Поэтому мой проект спроектирован так, чтобы быть интуитивно понятным даже новичкам, но при этом достаточно глубоким для профильных задач, — сказал Дмитрий Калашников.

Строгих аналогов разработанного мною симулятора «Компьютер Ершова» на данный момент не существует ни в России, ни за рубежом. Относительно близка к нему культовая игра NANDgame, разработанная по популярному университетскому курсу «From Nand to Tetris», однако в ней реализуется иная идея и отсутствует игровой процесс.

— NANDgame — это прекрасная минималистичная головоломка, где вся архитектура собирается из единственного вентиля НЕ-И (NAND). Она представляет собой красивый математический трюк, но реальные инженеры так не проектируют. Симулятор «Компьютер Ершова» ставит преследует другую цель: дать игроку максимально реалистичный инженерный опыт и полноценную образовательную базу. Есть и другая игра — коммерческая, — Turing Complete, но это скорее головоломка, где каждый уровень представляет собой отдельную задачу, — добавил Дмитрий Калашников.  

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

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

Разработчик уверен, что его платформа предоставляет широкие возможности и перед преподавателями: она отлично встраивается в курсы информатики, дискретной математики и архитектуры ЭВМ. Для внедрения курса доступны методическое руководство для преподавателей (философия курса, аппаратная платформа, инструменты отладки), питч-презентация для администрации школы (ценность, результаты, профориентация) и техническое задание на лабораторную плату Ershov Board (pin-mapping, компоненты, Ershov Loader). В перспективе появится возможность создавать виртуальные классы, что подразумевает удобное распределение студентов или школьников по группам и выдачу индивидуальных вариантов заданий. Предусмотрена автоматическая проверка (Автогрейдер): преподавателям больше не придется проверять сотни скриншотов вручную — система сама прогонит схемы школьников или студентов через тесты и сформирует ведомость успеваемости. Больше не придется следить, чтобы ученики не списывали друг у друга — у них это просто не получится из-за встроенной в систему функции отслеживания времени сборки, количества попыток и уникальности топологии схемы каждого игрока. Важно, что преподаватель сможет адаптировать задачи и тесты симулятора под конкретную учебную программу — от базовой логики до сложной микроархитектуры. Кроме того, в методическом руководстве для педагогов содержатся готовые наборы лабораторных работ, исторические справки и интерактивные карточки элементов.

Автор проекта продолжает работу над средой обучения совершенствуя интерфейс, расширяя методическую базу, добавляя новые возможности для преподавателей и студентов. В ближайшей перспективе Дмитрий Калашников намерен плавно перевести его из виртуального мира в физический — на реальное учебное железо. Тогда созданный им обучающий игровой курс получит логическое завершение. Сейчас он ищет выход на образовательные организации, которые готовы внедрить у себя разработанную им программу. Распространяется она бесплатно — своей разработкой Дмитрий Калашников стремится внести свой вклад в развитие инженерного мышления и отдать дань памяти школе академика Ершова, заложившей основы отечественного ИТ-образования.

Справка:

Создатель «Компьютера Ершова» Дмитрий Калашников проходил обучение в Высшем колледже информатики НГУ, затем поступил на Факультет информационных технологий НГУ, который окончил в 2008 году. Затем успешно прошел аспирантуру в Институте систем информатики им. А. П. Ершова СО РАН. Основал собственный стартап в сфере компьютерной лингвистики, направленный на создание продуктов для обучения грамотности по русскому языку. Периодически работает в Стартап-студии НГУ в качестве трекера проектов.

В конце 2000-х читал курс лекций по архитектуре ЭВМ в Высшем колледже информатики НГУ. Дмитрий Калашников отмечает, что в то время ему очень не хватало подобного тренажера для обучения студентов.

Материал подготовил: Елена Панфило, пресс-служба НГУ
Продолжая использовать сайт, вы даете согласие на использование cookies и обработку своих данных. Узнайте подробности или измените свои настройки cookies.