抄録
プログラミング演習では学生が様々な形で流用を行うことが報告されている.我々の研究グループでは,ファイル編集履歴を用いた学生によるコードの流用動向の分析を行っている.先行研究では,Java言語を対象とした学部2年生向けのある授業において,約89.2%の学生が平均3回程度の流用を行っていることや流用の大半は課題についてのコーディングをしながら同一課題内で行われていること,着手直後や完了直前の流用が多いことなどが確認された.本研究では,先行研究において特定したコード流用の中でも同一課題内における自己流用678件について著者らが目視で確認を行い,誤検出かどうか,誤検出でない場合もどのような意図によるコード流用なのかを流用行動5カテゴリ,誤検出4カテゴリに分類した.分析の結果,目視で確認を行った678件のうち流用行動は642件(約94.7%)を占め,誤検出は36件(約5.3%)であった.流用行動については,課題着手直後には機能追加を目的とした流用,エラーを解消するためなどの短期的な試行錯誤の割合が多く,中盤ではコードの位置を変更するといったものの割合が増加した.さらに,完了直前では機能追加を目的とした流用,エラーを解消するためなどの短期的な試行錯誤に加え,改善を目的としたリファクタリングによる流用などの割合が増加したことが確認された.