Блочное программирование для новичков

Рассматриваем феномен этого типа программирования.
 

Как только не пытались упростить обучение программированию педагоги и разработчики на протяжении последних десятилетий. Сначала создавали ограниченные языки, исключительно для получения базовых представлений (Pascal, Basic), потом взялись за визуализацию текста (Logo, Squeak Etoys). Последнее веяние — блочное программирование. Это своего рода детский конструктор из цветных деталей, каждая из которых имеет свое имя. Правильно собранный конструктор приводит к появлению настоящего рабочего кода.

Это оказалось действительно просто и понятно для детей. Scratch, первопроходца в данной области, быстро внедрили во многих американских школах сразу после официального запуска в 2007. Однако популярность превзошла самые смелые ожидания — ВУЗы стали вводить целые курсы для базового обучения программированию студентов, а многие IT-гиганты взялись за производство своих адаптаций. В итоге простой программный конструктор для самых маленьких превратился в настоящий феномен.

Исследование, проведенное сразу в 4 американских ВУЗах (MIT CSAIL, University of Alabama, Washington University и Wellesley College) выявило сразу 3 причины этого:

  1. Словарь. Одной из главных сложностей в обучении программированию является, как утверждает исследование, необходимость помимо структуры кода, запоминать большое количество специфических слов, регламентирующих то или иное действие. Сокращение такого словаря не оказывает должного эффекта, а вот блоки-подсказки позволяют ученику в меньшей степени думать о конкретных словах и больше — о процессе программирования;
  2. Когнитивная нагрузка. Программирование для новичков считается сложным, потому что данная деятельность заставляет мозг работать одновременно в нескольких направлениях — от творчества до логики. Блоки минимизируют когнитивную нагрузку до восприятия считанного числа цветных элементов, которые необходимо расставить в определенном порядке. Формально цель остаётся той же самой, что и во взрослом программировании, однако подход не отпугивает, а напротив — привлекает;
  3. Ошибки. На начальных этапах обучения программированию у учеников возникает немало трудностей из-за большого количества мелких ошибок. Их поиск и устранение может серьезно повредить настрою. В блочном программировании ошибки очевидны благодаря набору и форме блоков, а результат, как правило, единичен.

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

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

  1. Объем кода. Текстовые программы могут занимать десятки, сотни и даже тысячи страниц А4 в бумажном эквиваленте. А теперь представьте, что вместо текстовых строк вам необходимо оперировать габаритными разноцветными блоками. Воспринимать эффективно такой код категорически невозможно;
  2. Скорость. Математические и логические выражения можно написать или исправить считанным количеством ударов по клавиатуре, в то время, как с использованием цветных блоков вам для выполнения этих простых операций потребуется в разы больше времени.
  3. Снижение эффективности. Ограниченный синтаксис блочного программирования в любом случае свяжет ваши руки в желании выйти за рамки стандартных задач. Увеличивать синтаксис при этом смысла мало — в этом случае теряются все прелести блочного подхода.

Стоит заметить, что описанные недостатки частично решаются в более современных продуктах. Так, например, Microsoft MakeCode позволяет переключаться между блочным и текстовым программированием. А Scratch, ставший всеобщим любимцем, имеет огромное количество модификаций для разных платформ, в том числе для Arduino. Так что, кто знает, возможно совсем скоро блочное программирование станет обязательной остановкой на пути к большой профессиональной разработке.

Добавить комментарий

Ваш e-mail не будет опубликован.