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

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

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

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

Contra

Начнем со сторонников «машинного» обучения. К ним относятся разработчики различных сред программирования типа Scratch или MakeCode Arcade, онлайн-курсов, игровых программных продуктов. Это также разработчики роботов и микроконтроллеров для детей, завязанных на программное взаимодействие с железом через создание игр или предлагающие рассматривать робота как готового изделия с набором датчиков и двигателей, который нужно запрограммировать установкой готового блока кода.

Make Code Arcade позволяет создать игру для виртуальной игровой консоли
Make Code Arcade позволяет создать игру для виртуальной игровой консоли

Они приводят следующие доводы:

  1. Современные дети «рождаются» с гаджетами и «живут» ими, и они привыкли все время проводить перед экраном, и получать информацию оттуда. Смена метода ее получения вызывает у детей стресс, поэтому им надо давать информацию в понятной и привычной детям форме, замещая развлекательный контент обучающим.

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

  3. «Физические» наборы для программирования или конструирования дорогие, дети теряют детали и компоненты или ломают их. Это очень затратно, особенно для домашнего обучения, в отличие от онлайн-платформ или обучения только за компьютером/планшетом.

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

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

Pro

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

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

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

  3. Чрезмерное увлечение компьютерами и смартфонами ребенка, особенно дошкольника или младшего школьника – это зависимость, которую надо лечить. Не зря во многих странах есть запреты на доступ в те же соцсети до 12-13 лет.

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

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

  6. Во взрослой деятельности до написания программного кода идут этапы, обычно не требующие применения непосредственно компьютера (разработка ТЗ, проработка информационной схемы, исследование области применения, другие научно-исследовательские работы).

Если с «машинными» методами обучения все достаточно понятно, то про безмашинные многие родители и преподаватели не слышали. Часто приходится слышать, что это что-то скучное и устаревшее, типа Школьного алгоритмического языка или рисовании блок-схем на листочках после записи текста урока под диктовку из учебника. Но это не так.

Ярким примером служит проект CS Unplugged, разработанный Тимом Беллом и его соратниками в Университете Кентербери (Новая Зеландия) и в настоящий момент представляющий собой международный открытый проект по изучению компьютерных наук без компьютера. Он поддержан Google и Microsoft и успешно развивается вот уже более 10 лет.

Идея проекта: изучать разделы информатики в игровой форме, без необходимости использования компьютер. К примеру, изучение двоичного кодирования происходит с помощью карточек, на которых на одной стороне точками отмечены степени двойки, а вторая сторона закрашена в темный цвет («выключена»). Ученики становятся в ряд в порядке следования битов от младшего (с карточкой с одной точкой) до старшего (64 или 128 точек).

Дети - биты числа
Дети - биты числа

Переворачивая те или иные карточки, дети играют роль дисплея двоичной системы, а учитель объясняет логическую связь между наличием (включением) определенного бита в числе и переводом в десятичную форму.

Переводим число 01001
Переводим число 01001

Автор статьи сам использует подобную методику (даже со студентами), объясняя, как быстро перевести число из двоичной в десятичную систему.

В другом примере, при изучении кодировании и битов четности, авторы CS Unplugged предлагают показать … фокус с карточками с черной и белой сторонами (значения 0 и 1), разложенными в виде таблицы 5x5. Учитель добавляет по ряду и столбу карточек-битов четности, руководствуясь числом четных единиц в рядах и столбцах, а потом просит учеников перевернуть одну карточку так, чтобы он этого не видел. Это пример «сбоя» передачи информации и учитель легко находит в каком бите он произошел.

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

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

Та же Черепашка «переползла» в картонный мир в виде игры Robot Turtles, где детям нужно собирать алмазы, программируя бумажными карточками-командами одну из четырех роботов-черепах.

Robot Turtles придумал программист Google Дэн Шапиро, собрал средства на издание на Кикстартер, а затем успешно продал игру компании ThinkFun
Robot Turtles придумал программист Google Дэн Шапиро, собрал средства на издание на Кикстартер, а затем успешно продал игру компании ThinkFun

В России была разработана серия алгоритмических игр «Битва Големов», в которой детям предлагается программировать боевых роботов и устраивать баталии на создаваемых ими самими аренах. В отличие от рассчитанной на дошкольников Robot Turtles, в «Битве Големов» игрокам постарше (от 7–8  лет) доступны уже подпрограммы, циклы и условия. А интересно играть в нее будет не только детям, но и взрослым. Последняя версия игры была выпущена в стиле блочного языка программирования Scratch.

Отечественный ответ обучающим программированию зарубежным играм
Отечественный ответ обучающим программированию зарубежным играм

Существуют и другие настольные игры, обучающие, например программированию на Python или Java, погружающие детей в мир логики или искусственного интеллекта, а также затрагивающие не только программирование, но и электрическую часть роботов.

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

Дети - Исполнители
Дети - Исполнители

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

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

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

Читателям Хабра мы также дарим скидку 2000 рублей на абонемент для занятий по промокоду HABR2022.

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


  1. Markscheider
    14.11.2022 20:58
    +4

    которые часто вообще не требуют от человек не то что знания языка программирования, но и самих алгоритмов

    рисовании блок-схем на листочках

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

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

    Про кодеров в чистом виде я не говорю: сегодня позволительно начинать писать программу сразу, минуя стадию построения алгоритма <из темного угла доносится мое неодобрительное ворчание>. Но как средство коммуникации между программистом и непрограммистом упрощенная схема логики работы того или иного модуля - она же бесценна. Ну не может клиентский менеджер охватить взглядом и понять всю глубину и стройность кода! А блок-схема будет ему понятна и он сможет сказать: "вот тут надо не на выход пользователя вести, а на повторную авторизацию".

    <бурчание закончил>


    1. akdengi
      14.11.2022 21:41
      +3

      "Снижение углеродного следа" :) На деле получаем поклонников секты копи-пасты, и код который еле крутится на мощностях, в разы превосходящих реально необходимых. И увы это происходит не только в ИТ. В машиностроении "такая же фигня, малята". Молодые спецы часто не могут эскиз нарисовать или представить какой нибудь разрабатываемый узел умозрительно, не говоря уже о казалось бы банальном понимании связи 3D и 2D или форм детали с ее характеристиками и способами изготовления. Поколение, слепо доверяющее компьютерным рассчетам.