コンピューターコードの解釈と脳の働き
言語と認知
- コンピュータープログラミングを学ぶことは、新しい言語を学ぶことに似ている。
- MITの神経科学者たちは、コンピューターコードを読むことが言語処理に関連する脳領域を活性化しないことを発見した。
- その代わりに、複雑な認知作業を行う際に活性化される多重需要ネットワークを活性化する。
研究方法
- 研究者たちは、PythonとScratchJrという2つのプログラミング言語を使って実験を行った。
- 実験参加者はfMRIスキャナーに横たわり、コード片を見て、そのコードがどのような動作をするかを予測した。
- 研究結果によると、言語関連の脳領域ではほとんど反応がなく、多重需要ネットワークが主に活性化された。
経験の効果
- 研究者たちは、プログラミングに打ち込んだ人々がより多くの経験を積むと、特定の脳領域が専門化する可能性があると述べている。
- しかし現在の研究では、プログラミング経験が比較的少ない人々には、このような専門化は現れなかった。
結論
- コーディングを数学ベースの技能として教えるべきか、言語ベースの技能として教えるべきかについて、明確な答えはない。
- コンピューターサイエンス教育者は、コーディングを最も効果的に教えられる独自のアプローチを開発する必要がある。
GN⁺の見解
- コーディングと脳の関係: この研究は、コーディングが言語処理とは異なる脳領域を活性化するという点で興味深い。これはコーディング教育の方法論に新たな視点を与える可能性がある。
- 教育的アプローチ: コーディングを教える際には、数学的アプローチと言語的アプローチの両方を考慮する必要がある。これは、さまざまな学習者に合わせた教育を提供する機会を開く。
- 経験の重要性: プログラミング経験が蓄積されるほど、脳の特定領域が専門化する可能性があるという点は、長期的な学習と経験の蓄積の重要性を強調している。
- 多重需要ネットワーク: このネットワークが多様な認知作業に関与しているという点で、コーディングは単なる技能の習得を超えて、複雑な問題解決能力を養うのに役立つ可能性がある。
- 今後の研究方向: より多くの経験を持つプログラマーを対象とした追加研究が必要であり、これはコーディング教育の最適化に重要なデータを提供する可能性がある。
1件のコメント
Hacker Newsの意見
論文へのリンクは示されていないが、おそらくこの論文のことだろう。研究者たちはプログラマーにコード片を見せ、そのコードがどのように動作するかを予測させた。
リンク先の記事によれば、コードを読むときには脳の特定の領域が活性化し、そこは見慣れない問題を慎重に解く領域だという。ただし、30年以上のプログラミング経験がある人には一般化できないかもしれない。
Lex Fridman が最近、言語学者の Edward Gibson にインタビューしており、その中にはコード読解が言語とは異なる脳の部位を活性化させるという話が含まれている。
プログラミング言語を人間の言語のようにしようとする試みは初歩的な誤りだ。プログラミング言語は主に何らかの構造を作ることに近く、これはコミュニケーションとは異なる。
プログラミング言語と人間の言語の違いは、プログラミングが何らかの構造を作ることにより近い点にある。人間の言語は多様な目的のコミュニケーションに使うことができる。
コード読解と形式化された人間の言語の読解、あるいは形式化された言語と非形式的な言語の読解のあいだで脳活動を比較したほうが、より興味深いだろう。
クリーンなコードを書くうえで最も役に立ったのは、アカデミック・ライティングの授業を受けたことだった。コードの予測は、言語中枢よりも計画課題に近い。
YouTube チャンネルでオープンソースプロジェクトのコードを読んでいる。これは音楽を視覚的に読むことに似ている。研究者たちは言語領域でほとんど反応を見つけなかった。
普段は主に自宅で働いていて、コーディングするときは音楽を聴きながら歌うこともある。だが、読んでいるあいだは歌えない。コーディング中ならできる。
コード読解は散文を読むことや数学をすることとは違う。パズルを解くのに近い。複数のことをリアルタイムで結び付け、翻訳しなければならない。
コード読解は歯車の写真を見せられて、「歯車Aは時計回りに回るか、反時計回りに回るか」と問われるのに似ている。メカニズムを研究している感覚だ。
コードを読んでいるとき、頭の中にナレーターの声は聞こえない。