【海外記事】 脳にとって、コンピューター・コードを読むことは、言語を読むこととは違う。
アン・トラフトン|MITニュースオフィス
出版日 2020年12月15日
元記事
ある意味では、コンピューターのプログラミングを学ぶことは、新しい言語を学ぶことに似ている。新しい記号や用語を覚え、それを正しく整理してコンピューターに指示を出さなければならない。また、コンピューター・コードは、他のプログラマーが読んで理解できるくらい明確でなければならない。
このような類似点があるにもかかわらず、MITの神経科学者たちは、コンピューター・コードを読んでも、言語処理に関わる脳の領域は活性化しないことを発見した。その代わりに、多重要求ネットワークと呼ばれる分散型ネットワークが活性化される。このネットワークは、数学の問題やクロスワードパズルを解くような複雑な認知作業にも利用される。
しかし、コンピュータ・コードを読むと多重要求ネットワークが活性化されるとはいえ、数学や論理の問題よりもネットワークの異なる部分に依存しているように見えることから、コーディングは数学の認知的要求を正確に再現するものでもないことが示唆される。
「コンピューター・コードを理解することは、それ自体であるように思えます。言語とも違うし、数学や論理とも違います」と、MITの大学院生でこの研究の筆頭著者であるアンナ・イワノヴァは言う。
フレデリック・A・アンド・キャロル・J・ミドルトン神経科学キャリア開発准教授で、マクガバン脳研究所のメンバーであるエヴェリーナ・フェドレンコが、本日eLifeに掲載された論文の上席著者である。この研究には、MITのコンピューター科学・人工知能研究所とタフツ大学の研究者も参加している。
言語と認知
フェドレンコの研究の主要な焦点は、言語と他の認知機能との関係である。特に、脳の左半球にあるブローカ野やその他の領域を含む脳の言語ネットワークに、他の機能が依存しているかどうかを研究している。これまでの研究で、彼女の研究室は、音楽や数学がこの言語ネットワークを活性化するようには見えないことを示してきた。
「というのも、コンピューター・プログラミングは非常に新しい発明であり、優れたプログラマーを生み出すようなメカニズムが、生まれつき備わっているわけがないとわかっているからです」とイワノヴァは言う。
脳がコードを学ぶ方法については、2つの考え方があると彼女は言う。ひとつは、プログラミングが得意であるためには数学が得意でなければならないというもの。もうひとつは、コーディングと言語には類似性があるため、言語能力の方がより重要であるという考え方である。この問題に光を当てるため、研究者たちは、コンピューター・コードを読んでいるときの脳活動パターンが、言語に関連した脳活動と重なるかどうかを調べることにした。
PythonとScratchJrは、5歳以上の子ども向けにデザインされたビジュアルプログラミング言語である。この研究の対象者は全員、テストされた言語に堪能な若年成人であった。プログラマーたちが機能的磁気共鳴(fMRI)スキャナーに横たわっている間、研究者たちは彼らにコードの断片を見せ、そのコードがどのような動作をするかを予測させた。
研究者らは、脳の言語領域ではコードに対する反応はほとんど見られなかった。その代わりに、コーディング課題では主に、いわゆる多重要求ネットワークが活性化されることがわかった。このネットワークは、脳の前頭葉と頭頂葉全体に広がっており、通常、一度に多くの情報を頭に入れる必要のあるタスクに利用され、さまざまな精神的タスクをこなす能力を担っている。
「イワノヴァは言う。「認知的に困難なこと、難しく考えさせられることなら、ほとんど何でもこなします。
これまでの研究で、数学と論理の問題は主に左半球の多重要求領域に依存しているようである一方、空間ナビゲーションを伴うタスクは左半球よりも右半球を活性化することが示されている。MITの研究チームは、タフツ大学のマリーナ・バーズ教授(児童学・人間発達学)と協力して、コンピューター・コードを読むと、多重要求ネットワークの左右両方が活性化することを発見した。
経験の効果
研究者らによると、プログラミングだけに特化したような領域は確認されなかったが、コーディングの経験が豊富な人であれば、そのような特化した脳活動が発達する可能性があるという。
「プロのプログラマーで、特定の言語で30年も40年もコーディングしてきたような人を対象にすれば、何らかの専門化、あるいは多重要求システムの一部の結晶化が見られるようになるかもしれません」とフェドレンコ氏は言う。「コーディングに慣れ親しみ、これらの作業を効率的にこなせるが、経験が比較的浅い人たちには、まだ専門化は見られないようだ。
eLife』誌の同じ号に掲載された関連論文で、ジョンズ・ホプキンス大学の研究チームも、コード問題を解くと、言語領域よりもむしろ多重要求ネットワークが活性化することを報告している。
この研究結果は、コーディングを数学ベースのスキルとして教えるべきか、言語ベースのスキルとして教えるべきかについて、明確な答えがないことを示唆している。その理由のひとつは、プログラミングの学習は、言語と複数の需要システムの両方を利用する可能性があるからである。
「数学と一緒でなければならない、言語と一緒でなければならない、という両陣営の主張があります。「しかし、コンピュータサイエンスの教育者は、コードを最も効果的に教えるための独自のアプローチを開発しなければならないようです」。
この研究は、全米科学財団、マサチューセッツ工科大学(MIT)脳認知科学科、マクガバン脳研究所から資金提供を受けた。
この記事が気に入ったらサポートをしてみませんか?