Исследовательская группа Хемницкого технологического университета в Германии впервые проанализировала, как работает мозг человека при работе над программным кодом.
Что происходит в головах программистов, когда они пишут код? На этот вопрос постарались ответить:
- доктор Джанет Зигмунд с кафедры разработки программного обеспечения в Хемницком политехническом университете;
- профессор Свен Апель с кафедры разработки программного обеспечения в Саарском университете;
- доктор Андре Брехманн, руководитель специальной лаборатории неинвазивной визуализации в Институте нейробиологии им. Лейбница в Магдебурге.
Чертоги разума
«Идея нашего исследования возникла в Магдебурге во время совместной встречи ученых из Института нейробиологии им. Лейбница и факультета компьютерных наук в Магдебурге», – говорит Джанет Зигмунд. «При поддержке моего научного руководителя, профессора Сааке (Университет Магдебурга) и профессора Лейха (Университет Гарца), мы смогли начать основную работу по разработке методики исследования». В нескольких малых и крупных экспериментальных исследованиях была создана разносторонняя методологическая основа. Методология, разработанная Зигмундом и ее коллегами, уже зарекомендовала себя в международных исследованиях.
Метод исследования
«Наша цель состояла в том, чтобы разработать совершенно новый подход, чтобы мы могли лучше понять когнитивные процессы, которые происходят во время программирования», – говорит Свен Апель.
Исследователи использовали методы визуализации из нейробиологии и изучили, какие области мозга активируются при чтении и понимании компьютерных программ. Выяснилось, что при работе с программным кодом работают области мозга, которые также имеют отношение к обработке естественного языка.
Испытуемые сначала работают над заданием в магнитно-резонансном томографе, для которого им необходимо понять выдержку из программного кода. После небольшого перерыва вы должны проверить фрагмент кода на наличие простых синтаксических ошибок, что является обычной задачей для программистов, поэтому это не было вопросом понимания.
Процесс повторили несколько раз. Впоследствии изображения мозговой активности во время обработки рутинного задания были вычтены из изображений теста на понимание и остались те области мозга, которые имеют особое значение для процесса понимания программы.
Язык вместо математики
Исследователи использовали функциональную магнитно-резонансную томографию. Данные изображения ясно показывают, что области испытуемых в левом полушарии были активированы, что в первую очередь связано с пониманием речи.
«К нашему удивлению, мы не увидели активности в направлении математического или логического мышления», – резюмирует Свен Апель. «Наше исследование предполагает, что понимание языка играет центральную роль в программировании.
Известный голландский ученый-компьютерщик Эдсгер В. Дейкстра уже высказал это предположение в 1980-х годах». Их выводы могут иметь далеко идущие последствия для программирования, например, при проектировании языков программирования или при обучении программированию.
Перспективы
Результаты исследований могут влиять на нейробиологию, открывая новые когнитивные процессы, которые отличаются от понимания прочитанного и логических рассуждений.
Свен Апель и его команда теперь хотят выяснить, как понимание программы отличается у экспертов и начинающих, то есть читают ли они и интерпретируют программный код по-разному.