Как мозг интерпретирует компьютерные языки?

19.03.2021 0 Редакция Steelgrey

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

| Newssky.com.ua

В США опрос Gallup в 2016 году показал, что большинство школ хотят начать обучение программированию, при этом 66 процентов директоров школ K-12 (технологическое образование) считают, что изучение информатики должно быть включено в другие предметы.

Большинство стран Европы добавили классы программирования и информатики в свои школьные программы, а Франция и Испания представили свои в 2015 году.

Ожидается, что это новое поколение программистов увеличит количество разработчиков во всем мире с 23,9 миллиона в 2019 году до 28,7 миллиона в 2024 году.

Несмотря на такие усилия, все еще существует некоторая путаница в том, как обучать программированию.

Это больше похоже на язык или на математику?

Новые исследования, возможно, разрешили этот вопрос, наблюдая за активностью мозга, пока испытуемые читают код Python.

Две школы обучения

Прямо сейчас существует две точки зрения. Преобладает та, что кодирование – это тип языка со своими собственными правилами грамматики и синтаксисом, которым необходимо следовать. В конце концов, их не зря называют языками программирования, верно? У этой идеи даже есть свое собственное шикарное сокращение: Coding as Another Language, или CAL.

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

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

Законы Техаса, Оклахомы и Джорджии разрешают учащимся старших классов изучать информатику для выполнения своих зачетных единиц по иностранному языку (закон Техаса 2013 года гласит, что это применяется, если учащийся уже посещал уроки иностранного языка и вряд ли продвинется вперед).

| Newssky.com.ua

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

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

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

Поскольку кодированию можно научиться во взрослом возрасте, они решили, что оно должно полагаться на некоторую ранее существовавшую когнитивную систему в нашем мозгу.

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

Кодирование в мозге

В своем эксперименте исследователи попросили участников, уже опытных в программировании, лечь в аппарат фМРТ, чтобы измерить активность их мозга. Затем их попросили прочитать проблему кодирования и предсказать результат.

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

Основная задача заключалась в том, чтобы сообщить участникам рост и вес человека и попросить их рассчитать ИМТ (индекс массы тела) человека. Эта проблема была представлена либо в виде кода в стиле Python, либо в виде обычного предложения.

Тот же метод был использован для ScratchJr, но участникам было предложено отслеживать положение котенка, когда он шел и прыгал.

 

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

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

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

Сеть можно примерно разделить на левую (отвечающую за логику) и правую (более подходящую для абстрактного мышления).

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

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

Интересно, что решение кода активировало части сети с множественными запросами, которые не активируются при решении математических задач. Таким образом, мозг не рассматривает это как язык или логику – это кажется его собственным феноменом.

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

В этой работе было показало фрагменты кода начинающим, опытным и экспертным программистам, пока они лежали в МРТ. Участников попросили разделить их на один из четырех типов алгоритмов.

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

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

Материалы:

  1. https://arstechnica.com/science/2021/03/how-does-the-brain-interpret-computer-languages/
  2. http://dx.doi.org/10.7554/eLife.58906

Поделиться статьей:

Подписаться на новости:




В тему: