初学者の探索的プログラミングにおけるプロセス認識を支援するシステムの提案

槇原 絵里奈 (1351097)


ソフトウェア開発者が扱いに慣れていないプログラミング言語やAPIを操作する際,探索的プログラミングと呼ばれる手法を用いることが知られている. 探索的プログラミング手法の例として,まず開発者は修正の基点となるプログラム(プロトタイプ)を作成する. 次にプロトタイプの一部のみを修正して,コンパイル・実行を行う. この際エラーが生じたらプロトタイプに戻し,別の方策に基づく修正およびコンパイル・実行を行う. この手法を用いて開発することで,開発者はエラーが起こる箇所の推測・特定が容易となり,その結果として開発の効率がよくなると言われている. 従来,探索的プログラミングは熟練者のみが行うと考えられており,その支援手法や実態調査などの研究は熟練者を対象に行われてきた. しかし,プログラミング初学者もプログラムが意図した挙動を示さない際に,一部分を修正してその都度コンパイルや実行を行うと言った形で探索的プログラミングを行うことが考えられる.

そこで,初学者の探索的プログラミングの支援を行うため,まず初めにプログラミング演習における探索的プログラミングの実態調査を行った. その結果,41名中16名に探索的プログラミングの傾向が見られた. しかし,初学者は探索的プログラミングを行う際に非常に長い時間を費やしていた. これは,過去に自分がどのような修正を行い,いつコンパイルあるいは実行を行ったのか,プログラミングプロセスを認識していないためであると考えられる.

そこで本研究では,初学者の探索的プログラミングにおけるプロセス認識を支援するためのプログラミング環境Pocketsを提案する. Pocketsは,ユーザが過去のソースコードに対してどのような変更を加えどの作業(保存,コンパイル,実行)を行ったか, また,それによってどのような結果が得られたのかを提示することでプロセス認識を支援する. さらに,過去の特定のリビジョンへ容易に戻ることが出来る機能も備えており,これらの機能によりユーザは過去にコンパイルあるいは実行が成功したソースコードへ容易に戻ることができ, 探索的プログラミングを効率よく進めることが出来ると考えられる.