社団法人 電子情報通信学会
THE INSTITUTE OF ELECTRONICS,
INFORMATION AND COMMUNICATION ENGINEERS

信学技報
TECHNICAL REPORT OF IEICE.

構文ハイライトとフォントの違いによる開発者の脳波の比較
東英明†

柗本 真佑†

上野 秀剛††

楠本真二†† 大阪大学大学院情報科学研究科†† 奈良工業高等専門学校
E-mail: †{h-azuma,shinsuke,kusumoto}@ist.osaka-u.ac.jp, ††uwano@info.nara-k.ac.jp
あらまし

開発者がどのようにプログラムを理解するのかという疑問の解明はソフトウェア工学の重要な課題の一つである．プログラム記述は通常 IDE などのプログラミング特化環境で行われるが，プログラム読解は紙などのプログラミ
ングに特化していない環境で行われることもある．そのような非プログラミング特化環境のプログラム読解はプログラ
ミング特化環境でのプログラム読解より困難である事があるため，非プログラミング特化環境でのプログラム提示にはプログラム理解の障害となる要素が存在すると考えた．本稿の目的は，そのような障害要素に起因する認知負荷の影響の理解にある．この目的を達成するために，我々はよりプログラムに適していない環境でのプログラム読解ほど，大きな認知負荷が発生するという仮説のもと，実験を行った．しかし，実験結果は我々の仮説とは異なる結果を示していた．
そのため本稿では，実験結果が仮説に反する結果となった理由を考察する．
キーワード

プログラム理解，シンタックスハイライト，フォント，脳波

1. は じ め に

グラミング特化環境では，等幅フォントのようなプログラムに適したフォントが使用される事が多い．等幅フォントの使用は，開発者がどのようにプログラムを理解するのかという疑問の“o” と “0”，“l” と “|” などの形の似た文字を判別しやすくする

解明はソフトウェア工学の重要な課題の一つである [1]．近年でことで，読み間違いを減らすことができる．一方，ソースコード

は，精度や速度といった比較的観測が容易な尺度を用いた調査にに非等幅フォントを使用すると，インデントを活用した際に行頭限らず，生体計測を用いた開発者の内発的な反応を調べる研究ものずれが起きてしまう．インデントは制御の流れを視覚的に理増えている [2] [3] [4]．例えば，脳波と脳血流によるデータ構造把

解しやすくするため，インデントがずれることによりソースコー

握時の脳活動領域の調査 [2]，脳波によるプログラム理解時の認ドの視認性が下がってしまう．よって，適切なフォントの使用に知負荷の増減の調査 [3]，脳波と眼球運動の同時測定によるプロ

より，ソースコードの判読性や視認性を維持できる．

グラム理解中の生体反応の分析 [4] などの研究がある．このよう

しかし，非プログラミング特化環境ではハイライトやフォンに，脳活動の計測に基づく調査は，被験者自身も気付かない生体

トが適切な状態でソースコードが表示されているとは限らない．

的な反応や，認知負荷の大きさを客観的に示すことができる．

ソースコードに適切なハイライトが施されない理由は，自動的なまた，プログラム記述は通常 IDE などのプログラミング特化

シンタックスハイライトが，適用対象となるプログラミング言語

環境で行われるが，プログラム読解は，紙面などのプログラミン

それぞれに応じた構文解析が必要なためである．また，ソース

グに特化していない環境で行われることもある．例えば，研究者

コードに適切なフォントが使用されない理由は，多くの文書作成

は論文内の疑似コードや例題プログラムを PDF リーダーなどをソフトのデフォルトのフォントが非等幅フォントであるためで使用して読むことも多い．近年では，プログラム開発の情報源とある．そのため，LATEX や MS Word を用いて記述された論文内

して Web が広く使用されるようになった．そのため，ブラウザのソースコードはハイライトが予約語に限定されていることが上でのサンプルコードの読解は多くの開発者に経験があると考多い．さらに，ハイライトが全く施されておらず，非等幅フォン

えられる．

トを使用してソースコードが記述されている場合さえある．

本稿の調査の主たる疑問は「非プログラミング特化環境でのプ

本稿の目的は，非プログラミング特化環境特有の問題に起因

ログラム読解にはプログラム理解の障壁となる要素があるのでするプログラム読解時の認知負荷の影響の理解にある．まず，シはないか」という点にある．プログラミング特化環境では，ソーンタックスハイライトとフォントがプログラムに不適な状態にスコードは予約語や変数名など，トークンの意味によって色分け

なると，プログラム読解が困難になるのではないかと考え，非されたシンタックスハイライトを施されることが多い．そのよ

プログラミング特化環境ではプログラム読解時の認知負荷が増うなハイライトの適用は，構文的な誤りの発見が容易になるだけ大するという仮説を立てた．そこで，その仮説を検証するため，

でなく，制御の構造の直感的な視認を可能にする．さらに，プロ

11 人の被験者に様々な環境でプログラムを読解させることによ—1—

り，その間の認知負荷を脳波で調査する実験を行った．しかし，環境の差による認知負荷への影響を調査することにある．そこ

実験では我々の仮説とは異なる結果が確認された．従って本稿

で，我々は以下の 3 つの Research Question を立てた．

では，実験結果が仮説に反する結果となった理由を考察する．

RQ1：脳波によるプログラム読解中の認知負荷の計測が可能か．

2. 関 連 研 究
2. 1 プログラム理解と脳波

RQ2：シンタックスハイライトは認知負荷に影響を及ぼすのか．
RQ3：フォントは認知負荷に影響を及ぼすのか．
上記 3 つの Research Question と本稿の実験で比較された 7

脳波は感情や精神的な状態を測る手段として広く使用されてつのプログラムの環境との対応を図 1 に示す．横軸は 3 種類のいる [5]．脳波の中でも，8〜13Hz は α 波と呼ばれ，リラックス

フォントを表しており，縦軸は 4 種類のシンタックスハイライなどの落ち着いた心理状態に関係があるとされている．また，13トを表している．図に示されたそれぞれの環境の例のプログラ〜30Hz は β 波と呼ばれ，集中や思考などの精神活動に関係があムを図 2 に示す．図 2 の縦軸と横軸は図 1 と同等のものである．

るとされている．さらに，脳波はプログラム理解の研究にも多く

また，それぞれの環境は Ehighlightingのように表されている．例
typeface

用いられている [3] [6]．Lee らはプログラミングの初心者と熟練

えば，E+ は IDE 並みの意味的な情報が豊富なハイライトが施さ者のプログラム理解の能力差を脳波によって調査し，結果を示しれており，フォントには等幅フォントが使用されている，最もプた [3]．また，Yeh らは難読化されたプログラムの読解中の脳波

ログラムを読むのに適した環境である．また，本稿では，予約語を計測し，認知負荷を調査する実験を行っている [6]．本稿では，のみハイライトされており，等幅フォントが使用されている，E

彼らの研究と同様に，プログラム読解中の認知負荷を脳波によっをベースラインとしている．予約語のみのハイライトを適用すて計測する．

る際には構文解析を必要とせず，予約語のリストさえあれば簡単

2. 2 プログラム理解とプログラムの環境に施すことができる．そのため，E は適用の容易さから，学術論

シンタックスハイライトやフォント，インデントなどのプロ

文上のプログラム例などによく見られる例である．

グラムの環境がプログラム理解にとって重要な要素の一つであRQ1 において，プログラム読解中の認知負荷を脳波で測るこることは広く知られている．IDE のようなプログラミング特化とができるかを確認するため，非現実的なレベルでプログラム

環境は通常，プログラムに最も適したハイライトやフォントで使の読解が困難になるような環境を設定する必要があった．その用者にプログラムを提示する．しかし，非プログラミング特化ため，本稿では，ハイライトが非現実的である，トークン毎にラ

環境ではその限りでなく，ハイライトやフォントがプログラム

ンダムなハイライトが施されている E-- ，フォントが非現実的でにとって適切である保証はない．また，シンタックスハイライ

ある，筆記体のフォントでプログラムが記述されている E-- ，ハトのプログラム理解への影響を調査した研究もいくつか存在しイライトとフォントが両方非現実的である E--- を設定している．

ている [7] [8] [9]．その結果，Sarkar らは，シンタックスハイラ

RQ1 では，ベースラインである E と E-- ，E-- ，E--- という 3 つ

イトが施されていることで，理解に要する時間が短くなると結の非現実的な環境との比較によって確認を行う．RQ2 ではハイ論づけている [7]．しかし，Hannebauer らの研究では，プログ

ライトの認知負荷への影響を調べるため，ベースラインである E

ラミング初心者にはシンタックスハイライトが施されていても，とハイライトのみが異なっている，E+ ，E-，E-- との比較によっ読解時間が減ることがなかったと結論付けられている [8]．また，て行う．RQ3 ではフォントの認知負荷への影響を調べるため，

Beelders らの研究でも，シンタックスハイライトがプログラミ

ベースラインである E とフォントのみが異なっている，E- ，E--ングに有効であることを示すことはできなかったと結論づけらとの比較によって行う．しかし，我々の分析では，RQ1 の結果れており [9]，シンタックスハイライトの効果に対する結論は研でさえ有意差がない，ネガティブな結果であった．よって，RQ1

究によって様々であった．本稿でも，シンタックスハイライトので認知負荷が脳波によって計測できる前提の上に成り立ってい影響を調査するが，彼らの研究との相違点は，脳波を使用してハる，RQ2 と RQ3 にのみ関係し，中間的な環境である E-と E- はイライトやフォントが認知負荷に与える影響を調査することにページ制限を考慮し，この章以降では除外して考察を行う．

ある．

3. 非プログラミング特化環境でのプログラム読解

4. 実

験

4. 1 実 験 概 要

本稿では，ウェブサイトや論文などのように，プログラムが記

この研究の目的はシンタックスハイライトとフォントがプロ載されることが想定されていない環境を非プログラミング特化

グラム読解によって起こる認知負荷に及ぼす影響を示すことで環境として定義する．プログラミングの際に行う作業の一つである．実験は被験者が与えられたプログラムの出力を答えるまある，プログラム読解は一般のテキストの読解とは全く異なるでの間の脳波を測定することにより行われる．本実験の被験者

性質を持っている．プログラム読解では，プログラマはまず構は 10 人の大阪大学の学生と，1 人の教員であり，全員 Java の使造の全体像を掴もうとすることが多い．そして，それに続いて，

用歴が 1 年以上であった．

変数の関係性を理解し，処理の流れを理解するという流れで理解

この研究では，プログラム読解時に起こる認知負荷を測定すが進んでいく．プログラミング特化環境のような適切なソース

る分析指標として α 波と β 波の割合である，β/α を使用する．

コードの提示は前述のプログラム理解の流れを円滑にする．
本稿の目的は，プログラム読解時の提示されたプログラムの

この α 波と β 波はそれぞれ被験者の全プログラム読解の α 波と β 波の平均値で正規化されている．また，この β/α という値

—2—

baseline

betterunrealistic realistic
Fullyhighlighted

E+

Highlighted only
reserved wordE--

Nonhighlighted

実験者は 1 台の PC で装置の制御を行い，もう 1 台の PC で
baselineEE-(as paper env.)

RQ1

Randomly
highlighted

れる．

(as IDE env.)

RQ3

E-

した別のディスプレイでプログラムを提示する．被験者は提示RQ2を抑制するため，被験者は実験中にキーボードやマウスなどの操E

作は一切行わない．また，同様の理由から，被験者は肘掛けを備
betterCursive
typeface

Proportional
typeface

されたタスクの出力を頭の中で考え，分かった時点でその旨を実験者に伝える．脳波以外の体動によるノイズ（アーチファクト）

--

E---

データの記録，及び問題の提示をする．被験者には PC に接続

Monospaced
typefacecompared environment
omitted in this paper due to the page limitation

図 1 RQ と比較対象である 7 つの環境との対応づけえた椅子に座り，椅子の高さやディスプレイの高さ，ディスプレ
イとの距離を事前に調節する．

4. 3 実験タスク
実験タスクとして，1 つの出力をもつ Java プログラムを読み，その出力を答えるというタスクを被験者に課す．それぞれのプ
ログラムは処理の内容を理解する手がかりとなるコメントを含

betterhighlight

E+

(IDE)

if (null == users) {logger.warn("err");
return 0;}
users.doSomething();

if (null == users) {logger.warn("err");
return 0;-}
users.doSomething();

if (null == users) {logger.warn("err");
return 0;(basel.) }users.doSomething();

if (null == users) {logger.warn("err");-- return 0;-}
users.doSomething();

if (null == users) {logger.warn("err");-return 0;}
users.doSomething();

E

E

E

E

better typeface
図 2 それぞれの環境のプログラム例（注 1）

む．そのようなプログラムを練習用に 2 題，本番用に 28 題の合
計 30 題を用意する．
出題するプログラムはできるだけ難易度が揃うよう，プログ
ラミングコンテストである AtCoder（注 2）の B 問題から C 問題の内容を参考に改題し，作成した．参考にした B 問題や C 問題のB，C はそれぞれ問題の難易度を表しており，これらの問題はい
くつかの if 文や for 文を用いることによって解くことができる
程度の難易度である．今回プログラム問題の作成にこれらの問題を参考にした理由は，これらの問題から作成されるプログラム
が簡単すぎず，プログラミングコンテストの同じランクの問題であればある程度難易度が均一になっているのではないかと考えたためである．また，練習用プログラムは本番用プログラムよりも簡単な難易度に設定し，実験の最初に全被験者に練習用プログ
ラムをそれぞれ E+ ，E--- の環境の順で提示した．本番用プログラムは以下の 4 つの系統の問題を各 7 問用意する．

•

リスト操作系•

文字列操作系

•

数学系

•

条件分岐系

なお，タスクは全て GitHub のリポジトリ（注 3） 上で公開されている．
今回の実験では，制限時間の存在により，被験者が焦り，十分にプログラムを理解できない可能性があることを考慮し，制限
時間は設けずに各タスクを実施した．しかし，プログラムを作
図 3 実験時の様子

は，人の思考状態を観察するために有効であることが示されて
おり [10]，この値が高ければ高いほど，より大きな認知負荷がかかっていることを示す．

4. 2 実 験 環 境
図 3 に実験時の被験者の様子を示す．実験は被験者 1 名と実験者 1 名のみがいる静かな部屋で実施する．脳波の計測装置は問する上では最大でも 5 分以内で出力を導けることを想定した．
また，実験中は前の問題の誤答による被験者の心理的な不安を除くため，回答の正誤は伝えない．さらに，この実験では，プログ
ラムの提示順序が脳波や理解の速度，被験者の慣れに影響することから，その順序効果を緩和するためにカウンターバランスを行う．具体的には被験者に提示するプログラムの順序，プログラムの環境の順序を被験者毎に変化させ，どの被験者も全く同じ順序
で同じ環境のプログラムが提示されないようにした．

ナノテックイメージ社製 NeXus-10 MARKII を用いる．本計測
装置の計測周期は 256Hz である．計測された脳波は Bluetooth（注 1）：E- と E- は除外してある．

経由で脳波計測用 PC に転送され，CSV ファイル形式で出力さ（注 2）：https://atcoder.jp/（注 3）：https://github.com/kusumotolab/h-azuma_experiment-tasks—3—p=.88p=.39
p=.23

4. 4 脳 波 計 測練習タスクの開始前に被験者に脳波計測装置を装着し，読解中の脳波を計測する．また，プログラム読解の回数の多さから被

p=.61

RQ1

β/α

験者の疲労を考慮し，本番タスク 7 回に 1 回のペースで 1 分間の休憩を取りながら行った．

1.5

脳波の計測に用いる電極は，グラウンド電極を右耳（A2）とし，基準電極導出法（片側耳朶法）を用いて，基準電極を左耳（A1），
計測用電極を眉間に 1 箇所（Fpz），前頭部に 2 箇所（F3，F4），

1.0

後頭部に 1 箇所（Pz）に配置した．計測用電極を眉間（Fpz），前頭部（F3，F4）に配置した理由は，感情的な脳波の変化が前頭0.5

部に出やすいとされているためである．また，残りの計測電極を後頭部（Pz）に配置した理由は，後頭部は筋電位など脳波以外の生体現象のアーチファクトが入りにくいためである．電極の装

E+

E--

E

E--

E---

図 4 各環境における全被験者の β/α の比較

着不良によるアーチファクトを防ぐため，被験者には頭部用ネッ
ト包帯を着用してもらう．また，脳波は筋電位によるノイズに影（1） ノイズ除去

響を受けやすいため，実験中はできるだけ体を動かさないように計測した脳波に閾値が 45Hz のローパスフィルタの適用により，被験者に指示する．

体動，眼球運動などのアーチファクトの除去を行う．

4. 5 実 験 手 順
実験の手順を以下に示す．
（1） 実験説明・準備
実験の流れについての説明と，脳波計測時の注意を行う．
（2） 装置の設定（2） 開始直後 5 秒間，終了直前 5 秒間の脳波の抽出
被験者 s がタスク n を実施した際のノイズ除去済みの脳波を<t=<5
BW (s, n) とする．ここで，各タスクにおいて時間 t が 0 =の BW (s, n) を開始直後 5 秒間の脳波として抽出する．抽出した開始直後 5 秒間の脳波を BWs (s, n) とする．また，各被験被験者に電極を配置し，脳波計測装置の設定を行う．脳波が正者がタスク n のプログラムの理解にかかった時間を T 秒とし，常に測れているかを確認するために閉眼安静状態の脳波を計測

T −5 <=t<= T の BW (s, n) を終了直前 5 秒間の脳波として抽出する．

する．抽出した終了直前 5 秒間の脳波を BWe (s, n) とする．

（3） 練習タスクの実施（3） フーリエ変換・差分の取得

被験者に問題の雰囲気と答え方を経験させるため，練習タスク

計測周期 256/sec より N=256 で BWs (s, n) と BWe (s, n) に対を 2 回行う．それぞれのプログラムは全被験者共通で，1 問目はし FFT をかけ，BWs (s, n) と BWe (s, n) の FFT 結果の差分をE+ ，2 問目は E--- の環境で提示する．

取り，その差分のパワースペクトルを得る．パワースペクトルを（4） 本番タスクの実施
ディスプレイにプログラムを表示させ，その Java プログラムから得られる出力を考えてもらう．被験者は出力を理解した時点

求める周波数範囲は α 波と β 波として定義されている周波数帯域である 8Hz〜30Hz とする．
（4） 成分抽出

で声を出して実験者に知らせる．また，プログラムを読んでいる得られたパワースペクトルから，α 波の帯域である 8Hz〜14Hz，間の脳波を計測する．

β 波の帯域である 14Hz〜30Hz，それぞれの帯域成分を抽出する．

（5） 口頭での回答
実験者にプログラムの出力が分かった旨を伝えたあと，被験者はα(BWs (s, n) − BWe (s, n))

出力の内容を答える．その後，続けてそのプログラムの処理の内β(BWs (s, n) − BWe (s, n))

容を答える．
（6） 全タスクの実施
手順 4，5 を 28 回繰り返し，7 問に一回の間隔で 1 分間の休憩を挟む．

4. 6 分 析 方 法（5） 正規化
脳波は個人差が大きいため，抽出された成分データを被験者の平均値で正規化する．ここで，N は本番タスクの回数とする．

N ormα(s, n) =分析はタスクの開始直後 5 秒間の FFT 結果と被験者が声を上げるタスク終了時直前の 5 秒間の FFT 結果の差分を取ることによって行う．これにより，長時間の実験のために起こった電極のずれによるノイズの影響を小さくできる．眉間（Fpz）及び前頭部（F3，F4）から得られた脳波には眼球運動や瞬きが原因と考えられるフィルタで除去できない程の大きなノイズがのっていたため，分析にはそれぞれの被験者の後頭部（Pz）の電極から得られた脳波データを使用する．分析の流れを以下に示す．

N ormβ(s, n) =α(BWs (s, n) − BWe (s, n))

1
N

∑N

n=1

α(BWs (s, n) − BWe (s, n))β(BWs (s, n) − BWe (s, n))

1
N

∑N

n=1

β(BWs (s, n) − BWe (s, n))

5. 実 験 結 果
5. 1 プログラム読解時の脳波
まず，結果の全体像として環境毎の β/α を比較する．環境毎のタスク中の β/α を図 4 に示す．横軸は各環境を表し，縦軸は—4—

を図 5 に示す．この分析では，各環境の β/α の平均値をその被1.5

subj.1
subj.2
subj.3
subj.4

Norm β/α

1.5subj.5
subj.6

験者の E の平均値で正規化しているため，縦軸が E に対する相対 β/α となっている．そのため，どの被験者も E の値が 1.0 となっており，各環境の相対 β/α が 1.0 より高ければ，その被験者はその環境でのプログラム読解でより大きい認知負荷がかかっていたことを表し，その値が 1.0 より小さいければ，その逆で，よ

1.0

1.0

り小さい認知負荷がかかっていたことを表す．また，この図では全ての被験者を 4 つのタイプに分類している．図 5(a) の Type1は全ての環境において，相対 β/α が 1.0 より高かった被験者の

E+

E

E--

E--

E---

E+

(a) Type1

E--

E--

E---

(b) Type2

subj.7
subj.8グループである．図 5(b) の Type2 は E--- 以外の環境において，
相対 β/α が 1.0 より高かった被験者のグループである．図 5(c)の Type3 は E+ において，相対 β/α が 1.0 より低かった被験者

subj.9subj.10subj.11

1.5

Norm β/α1.5Eのグループである．図 5(d) の Others は上記 3 つのいずれのグループにも当てはまらない被験者のグループである．

Type1 に属する被験者は，非プログラミング特化環境では認知負荷が大きくなるという我々の仮説に従う結果を示していた．特に，被験者 2 と 3 は E-- や E-- よりもプログラム読解に適してい

1.0

1.0

ない E--- の方が認知負荷が大きくなっていたことが分かる．しかし，Type1 の被験者は E よりもプログラム読解に適している E+
E+

E

E--

E--

E---

E

E--

E--

E---

でも他の環境と同様に相対 β/α が 1.0 より高くなっており，こ(d) Othersの点においては仮説に反する結果となっていた．続いて，Type2

各被験者の E に対する各環境の相対 β/αに属する被験者は，Type1 の被験者と結果が似ているが，Type1(c) Type3

図5

E+の被験者の結果より仮説と異なる結果を示していた．Type2 の
認知負荷の指標である，β/α を表す．4. 1 で述べた通り，β/α は被験者が Type1 の被験者と大きく異なっているのは E--- であり，個人差による影響を最小化するため，各被験者の平均値で正規化

Type2 の被験者は相対 β/α が E--- で 1.0 より小さい値を示してしている．箱ひげ図上部の線と値は検定の対象と，その検定のいた．次に，Type3 に属する被験者の E+ に注目すると，E と比結果を表している．検定は有意水準を 0.05 としてウィルコクソ

較して明らかに認知負荷が小さかったことが分かる．これはプン順位和検定で行った．例えば，E と E-- の検定結果は 0.23 とログラミング特化環境でのプログラム読解ではより認知負荷がなっており，これは有意水準 0.05 を下回っていないため，E と小さくなることを意味している．しかし，Type3 の被験者は非E-- には有意差がないと言える．

プログラミング特化環境の多くで我々の仮説とは逆の結果を示

ウィルコクソン順位和検定による検定では，どの環境の認知していた．結論として，全ての環境において我々の仮説通りの結負荷にも差は確認できなかった．特に，E--- はランダムハイライ

果を示していた被験者はいなかった．ただし，この分析は各被験

トと筆記体のフォントでプログラムが表示される，今回の実験で者個人の結果に注目しており，カウンターバランスの効果がなくは最もプログラムを読むのに適していない環境であったが，それなってしまっているため，この結果の妥当性は慎重に検討する必でも E との比較に有意差は確認できなかった．しかし，E--- と E

要がある．

-それぞれの中央値に注目すると，E-の方が β/α の値が小さく，

6. 考

察

発生した認知負荷がより小さかったと考えられる．続いて，プロ
グラム読解に最も適した環境である，E+ に注目すると，その中全体として環境ごとの認知負荷の差を確認することはできな

央値は他のいずれの環境の中央値よりもわずかに高くなってい

かった．その理由を，「脳波で認知負荷を計測するのは難しかっる．これらの結果は，プログラム読解に適していない環境でプロた」，「内容の理解より実際の出力の計算に負荷がかかるプログラ

グラムを読むほど，認知負荷が高くなるという我々の仮説と全くムだった」，「プログラムが高難易度すぎた」，「プログラム毎の難逆の結果を示している．従って，RQ1 に対しては計測できない

易度のばらつきが大きかった」の 4 つに大別して考察する．

という結論となった．また，RQ2 と RQ3 は RQ1 で認知負荷が6. 1 脳波による認知負荷の計測が難しかった

計測できるという結果がある前提に作成されている RQ である

1 つ目の理由は，「脳波で認知負荷を計測するのは難しかった」

ため，これらの RQ でハイライトやフォントがプログラム読解可能性があるということである．この可能性に対して，認知負荷中の認知負荷に影響を及ぼすとは言い難いという結果となった．

を脳波で計測し，その計測が可能であったことを示している研究

5. 2 各被験者個人の分析がある [5]．さらに，我々は実験後，被験者に実験に関するアン

次に，さらに詳しい分析をするため，個々の被験者に注目す

ケートを行ったが，多くの被験者は非プログラミング特化環境でる．その分析結果として，各被験者の各環境での相対的な β/αのプログラム読解の方が困難であったと回答していた．それにもかかわらず，本稿の実験では仮説に反する結果が得られたとい—5—

う事実から，環境に起因する認知負荷は脳波計測によって計測できない程度の小さい影響しか及ぼさないのではないかと考えた．
本稿の実験では脳波への環境による影響は小さいという可能性が有効であると考えられる．

7. お わ り にを考慮して，非現実的なハイライトとフォントを設定したが，脳本稿では，プログラム読解中の認知負荷を脳波を使用して計波への影響は得られなかった．よって，脳波への影響を大きく測する実験を行った．しかし，いずれの環境間にも有意な差を得するためには，プログラムを読むことがさらに困難になるようることはできなかった．そのため，本稿では結果に有意差が得らな環境を追加するのがよいのではないかと考えられる．例えば，れなかった理由を考察した．

1 文字ずつ色が変化するようなさらに細かいハイライトにする，
フォントをトークン毎に変更するなどの例が挙げられる．

今後の展望としては，考察の改善案に基づく改善を行ったプ
ログラムを使用し，再実験を行うことが挙げられる．さらに，ハ6. 2 視認より脳内での計算に負荷がかかった

イライトとフォントに起因するその他の影響を調査するため，新2 つ目の理由は，「内容の理解より実際の出力の計算に負荷がたなメトリクスとして理解の正しさや理解の速度の採用も有効かかるプログラムだった」可能性があるということである．具体であると考えられる．また，視線計測のようなその他の生体メト的な入力が与えられているプログラムの出力を考えるという作

リクスの併用により，プログラム理解への新たな指標の提供が期

業には 2 つの段階が存在する．最初の段階はプログラムを確認待できるのではないかと考える．

し，プログラムの内容を把握する段階であり，ハイライトやフォ

謝辞

被験者実験に協力して頂いた方々に感謝する．本研究ントがプログラム理解に影響するのはこの段階である．その次の一部は，日本学術振興会科学研究費補助金基盤研究（B）（課の段階は入力に与えられている値を実際にプログラムの処理に

題番号：18H03222）の助成を得て行われた．

従って計算する段階である．この段階では前の段階で理解したプログラムの処理に従っていくだけであるため，この段階にはハイライトやフォントによる影響がほとんどないのではないかと考えられる．これら 2 つの段階にかかる負荷の割合はプログラムによって異なっているが，今回の実験で実際に使用したプログ
ラムは後者の段階にかかる負荷が大きいプログラムが多かった．
そのため，今回の実験においてはプログラムを理解する際に，被験者がディスプレイに視線を向けていたとしても，その意識はディスプレイ上のプログラムには向いていなかったのではないかと考えられる．このような問題に対する解決策としては，後者の段階にかかる負荷を抑えるため，実験タスクをプログラムの出力を答えるのではなく，処理の内容を答えさせる形にするのが効果的であると考えられる．

6. 3 難易度が高次であった
3 つ目の理由は，「プログラムが高難易度すぎた」可能性があるということである．本稿の実験で使用したプログラムはプロ
グラミングコンテストの問題を改題して作成されている．そのため，実験に使用するプログラムとしては難易度が高く，常に認
知負荷がかかることによって環境に起因する影響が薄められてしまった可能性がある．この問題の発生を防ぐためには，本稿で使用したプログラムよりも難易度が低いプログラムを使用する
ことが効果的ではないかと考えられる．

6. 4 難易度が不均一であった
最後に，4 つ目の理由は，「プログラム毎の難易度のばらつきが大きかった」可能性があるということである．今回の実験に使用したプログラムは全て同一のプログラミングコンテストの問題を参考にして作成したが，同一のプログラミングコンテストの同一ランクの問題でも開催回によって難易度が異なっていた可能性がある．プログラムの難易度はすべて等しいことが理想的ではあるが，ソフトウェア工学の世界ではプログラムの難易度の計測，及び統一化が難しいことはよく知られている．そこで，
この問題の解決策としては，2，3 個の変数と，1 つの分岐程度の文

献[1] N. Peitek, J. Siegmund, C. Parnin, S. Apel, and A. Brechmann, “Toward Conjoint Analysis of Simultaneous EyeTracking and fMRI Data for Program-Comprehension Studies,” In Proc. Workshop on Eye Movements in Programming,
pp.1–5, 2018.
[2] Y. Huang, X. Liu, R. Krueger, T. Santander, X. Hu, K.
Leach, and W. Weimer, “Distilling Neural Representationsof Data Structure Manipulation Using fMRI and fNIRS,”
In Proc. International Conference on Software Engineering,pp.396–407, 2019.
[3] S. Lee, A. Matteson, D. Hooshyar, S. Kim, J. Jung, G. Nam,and H. Lim, “Comparing Programming Language Comprehension between Novice and Expert Programmers Using EEG
Analysis,” In Proc. International Conference on Bioinformatics and Bioengineering, pp.350–355, 2016.
[4] T. Ishida and H. Uwano, “Synchronized Analysis of Eye
Movement and EEG during Program Comprehension,” In
Proc. International Workshop on Eye Movements in Programming, pp.26–32, 2019.
[5] P.D. Antonenko and D.S. Niederhauser, “The influence ofleads on cognitive load and learning in a hypertext environment,” Computers in Human Behavior, vol.26, no.2, pp.140–
150, 2010.
[6] M.K.C. Yeh, D. Gopstein, Y. Yan, and Y. Zhuang, “Detecting and comparing brain activity in short program comprehension using EEG,” In Proc. IEEE Frontiers in Education
Conference, pp.1–5, 2017.
[7] A. Sarkar, “The impact of syntax colouring on program comprehension,” In Proc. Psychology of Programming Interest
Group, p.8, 2015.
[8] C. Hannebauer, M. Hesenius, and V. Gruhn, “[Journal First]
Does Syntax Highlighting Help Programming Novices?,”
In Proc. International Conference on Software Engineering,
pp.704–704, 2018.
[9] T.R. Beelders and J.P.L. duPlessis, “Syntax highlighting
as an influencing factor when reading and comprehending
source code,” Journal of Eye Movement Research, vol.9, no.1,
pp.2207–2219, 2016.
[10] F. Hirai, K. Yoshida, and I. Miyaji, “Comparison analysisof the thought and the memory at the learning time by thesimple electroencephalograph,” Multimedia, Distributed, Cooperative, and Mobile Symposium, pp.1441–1446, 2013.

分量である，論文内のプログラム例のような問題を採用すること—6—