«Вамбус» — образовательная видеоигра о программировании для школьников

Автор проекта — о том, как вообще появилась идея и почему не взять какой-нибудь Scratch или даже Python

«Вамбус» — образовательная видеоигра о программировании для школьников

Привет, DTF!

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

(Если вписали не в тот подсайт, то просим редакторов перенести.)

Предпосылки

Российские школы для обучения программированию используют учебные комплексы КуМиР, Scratch, Colobot и подобные им. У них есть, например, такие существенные недостатки:

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

Зачастую для обучения школьников применяют языки программирования общего назначения — Python, С++, C# и другие, изначально созданные для профессиональных разработчиков ПО. Эти языки совершенно не годятся для обучения школьников по следующим причинам:

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

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

Мы считаем, что российской школе необходим современный учебный комплекс для начального обучения программированию школьников, лишённый вышеперечисленных недостатков. При помощи ВАМБуса учащиеся получат представление о функциональном устройстве компьютера и познакомятся с императивной парадигмой программирования. Они усвоят операцию присваивания и понятие переменной, узнают, что такое ветвление, циклы и подпрограммы, научатся кодировать различные алгоритмы на низком уровне и оптимизировать свой код. После этого они смогут продолжить осваивать искусство программирования уже с использованием языков высокого уровня, таких как Python, java, Kotlin и других.

Что уже сделано

Разработали простой язык программирования низкого уровня ВАМБус, а также прототип учебного комплекса – исполнитель вамбус-программ с небольшим набором учебных заданий и системой автоматической проверки.

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

«Вамбус» — образовательная видеоигра о программировании для школьников

ВАМБус-программа представляет собой формальное описание маршрута передвижения вилочного погрузчика от одного узла машины к другому. Учащемуся не придётся заучивать множество ключевых слов и языковых конструкций. В ВАМБусе нет ни скобок, ни кавычек, ни точек с запятой, ни отступов. Учащийся в процессе написания программы не использует клавиатуру, только мышь, поэтому ему не придётся постоянно менять раскладку клавиатуры с русской на латинскую и наоборот. ВАМБус обеспечивает высочайшую наглядность – все действия, промежуточные результаты вычислений и значения переменных (регистров) постоянно отображаются на экране, что облегчает кодирование и отладку. Транслятор языка не будет постоянно досаждать юному программисту жалобами на забытую точку или лишнюю скобку. Учебные задания намеренно ограничивают объём вычислительных ресурсов, доступных программисту, поэтому каждое из них представляет собой интересную головоломку – вызов, стимулирующий искать лучшее решение. По задумке, это должно содействовать развитию интеллекта учащихся.

В рамках работы над проектом был проведён эксперимент над десятью школьниками (классы с 5-го по 9-й), не имевшими прежде опыт программирования. Им давалось короткое (2-3 минуты) объяснение, что такое ВАМБус-машина и предлагалось выполнить несколько тестовых заданий, написать работающий вамбус-код. Все они успешно справились с заданием, причём довольно быстро. Один мальчик сразу, без предварительной подготовки, за несколько минут написал алгоритм Евклида для вычисления наибольшего общего делителя двух чисел.

2222
9 комментариев

Зачастую для обучения школьников применяют языки программирования общего назначения — Python, С++, C# и другие, изначально созданные для профессиональных разработчиков ПО. Эти языки совершенно не годятся для обучения школьников по следующим причинам:отсутствует банк учебных заданий различных уровней сложности;не предусмотрена система автоматической проверки решений;Однажды авторы узнаю про спортивное программирование и сайты с задачами но не сегодня

5

Нет, ну всё же речь про обучающие задачи, а не сразу для спортивного программирования. Хотя за годы типовых задачек для того же Pascal наверняка масса уже.