ソフトウェア工学研究の日々

ソフトウェア工学の学術研究を紹介しています。ソフトウェア開発に関する調査と実験が大好きです。

習熟度の高いプログラマは、瞬間的にプログラムの内容を把握する

 ソフトウェア工学研究室の幾谷吉晴さんがプログラム理解に関する実験結果を論文として発表しました。論文自体は英語ですが、内容の概略を日本語プレスリリースとして出してもらいました。

www.naist.jp 実験は、1画面に収まる程度の長さの Javaソースコードを10秒間読んで、それが何をしているか(数学のアルゴリズムか、文字列処理か、など)おおよその当たりを付けるという作業を、習熟度= AtCoder rate が異なる30人のプログラマたちに実施してもらうというものです。プログラマたちの脳活動をfMRIを使って計測した結果、レートの高い人と低い人では、脳の異なる領域が活動していることが確認されました。

 プレスリリースではレートと正解率に相関があったとだけ書かれていますが、レートが高い人の中には、4択問題として出された分類問題を90%以上正解するような人も目立っていました。競技プログラミングの訓練を積んだプログラマは、画面に映ったプログラムを素早く、しかも正確に認識する能力に長けている、ということになります。計測方法の都合上、ファイルの選択や画面のスクロールなどを伴う一般的なプログラム読解の状況とはだいぶ離れてしまう実験ではありますが、熟練者が、プログラムを眺めただけでその内容を素早く把握できるのは、それまでの経験の蓄積によるものだといえそうです。