Блочное программирование для новичков
Чтобы упростить обучение программированию, педагоги и разработчики создавали особые языки исключительно для получения базовых представлений (Pascal, Basic), потом взялись за визуализацию текста (Logo, Squeak Etoys). Последнее веяние — блочное программирование. Это своего рода детский конструктор из цветных деталей, каждая из которых имеет свое имя. Правильно собранный конструктор приводит к появлению настоящего рабочего кода.
Это оказалось действительно просто и понятно для детей. Scratch, первопроходца в данной области, быстро внедрили во многих американских школах сразу после официального запуска в 2007. Однако популярность превзошла самые смелые ожидания — вузы стали вводить целые курсы для базового обучения программированию студентов, а многие IT-гиганты взялись за производство адаптаций. В итоге простой программный конструктор для самых маленьких превратился в феномен.
Исследование, проведенное сразу в 4 американских вузах (MIT CSAIL, University of Alabama, Washington University и Wellesley College) выявило сразу 3 причины этого:
-
Словарь. Одна из главных сложностей в обучении программированию — необходимость запоминать структуру кода и большое количество специфических слов, регламентирующих то или иное действие. Сокращение такого словаря не оказывает должного эффекта, а вот блоки-подсказки позволяют ученику в меньшей степени думать о конкретных словах и больше — о процессе программирования.
-
Когнитивная нагрузка. Программирование сложно для новичков: оно заставляет мозг работать одновременно в нескольких направлениях — от творчества до логики. Блоки минимизируют когнитивную нагрузку до восприятия считанного числа цветных элементов, которые необходимо расставить в определенном порядке. Формально цель остаётся той же самой, что и во взрослом программировании, а такой подход привлекает.
-
Ошибки. На начальных этапах освоения программирования у учеников возникают трудности из-за множества мелких ошибок. Их поиск и устранение снижает мотивацию. В блочном программировании ошибки очевидны благодаря набору и форме блоков, а результат, как правило, единичен.
Таким образом, можно смело утверждать, что блочное программирование идеально не только для детей, но и для тех, кто не готов мгновенно принять и впитать огромное количество информации по изучаемому языку и общим правилам программирования.
При этом не стоит впадать в эйфорию и считать, что с помощью блочного программирования реально создать что-то сложное. Формально это возможно, но для профессиональной разработки есть ограничения:
-
Объем кода. Текстовые программы могут занимать десятки, сотни и даже тысячи страниц А4 в бумажном эквиваленте. А теперь представьте, что вместо текстовых строк вам необходимо оперировать габаритными разноцветными блоками. Воспринимать эффективно такой код категорически невозможно.
-
Скорость. Математические и логические выражения можно написать или исправить считанным количеством ударов по клавиатуре. Чтобы исправить код, созданный при помощи цветных блоков, вам потребуется больше времени.
-
Снижение эффективности. Ограниченный синтаксис блочного программирования "свяжет вам руки" в желании выйти за рамки стандартных задач. Увеличивать синтаксис при этом смысла мало - в этом случае теряются все прелести блочного подхода.
Стоит заметить, что описанные недостатки частично решаются в более современных продуктах. Так, Microsoft MakeCode позволяет переключаться между блочным и текстовым программированием. А Scratch, ставший всеобщим любимцем, имеет огромное количество модификаций для разных платформ, в том числе для Arduino. Возможно, скоро блочное программирование станет обязательной остановкой на пути к большой профессиональной разработке.