教育システム情報学会 2013年度学生研究発表会

東海地区

プログラミング演習システムの演習履歴を用いた演習状況の閲覧・分析システムの開発

A system for browsing and analyzingstates of programming exercise using its histories
小澤 賢一郎*1， 立岩 佑一郎， 山本 大介， 高橋 直久
Kenichiro OZAWA， yuichiro TATEIWA， daisuke YAMAMOTO， Naohisa TAKAHASHI
名古屋工業大学情報工学科*1Department of Computer Science and Engineering, Nagoya Institute of Technology
Email: ozawa@nitech.ac.jp
あらまし：CAPES は，受講者に課題リストをブラウザで提示し，答案をサーバで自動評価し，その結果をブラウザに表示することで，QA サイクルを実現するプログラミング演習システムである．CAPES のデータベースに格納された演習履歴から，受講者の演習状況を特徴付ける値を演習履歴から算出する機能，その値をソートやフィルタリングして表示する機能を有するシステムを開発する．
キーワード：プログラミング演習支援システム，CAPES，演習状況

1.

はじめにある．図 1 は演習状況データの算出方法である．

本校のプログラミング演習支援システム CAPES
では，演習履歴確認機能で受講者の答案提出時刻や課題評価結果などを確認可能である．しかし，従来の演習履歴確認機能では，以下の問題がある．
問題点 1：受講者ごとに各課題の答案提出状況と正誤判定結果をまとめた一覧表（進捗状況表）を提示し，答案の提出時刻などの詳細は，この表から辿れるようにしている．このため，相対的に提出の遅れがちな受講者を見つけて指導したい場合などに，全受講者について，答案提出時刻を比べようとすると，データを辿る操作を繰り返さなければならないので多大な手間と時間を要する．
問題点 2：進捗状況表から辿れる詳細データは，答案内容，課題閲覧時刻，答案提出時刻などの基本データだけである．このため，解答時間，誤解答提出回数などの値は，利用者が計算しなければならない．
問題点 3：全受講者の平均解答時間や正解答案数などの統計情報を用いて，他の受講者と比べて相対的に解答時間が長い受講者や，他の課題に比べて著しく正解率の低い課題を見つけることは，問題点１，２が重なるため，人手で行うことは現実的ではない．
本研究では，上記の問題を解決するため，多様な一覧機能を有するプログラミング演習状況の閲覧・分析システムを提案する．提案システムは，以下の機能を有する．
機能１：演習状況データ作成機能
CAPES データベースから得られた課題情報，演習履歴を用いて，受講者ごとに各課題の受講状況を表す値（以下，演習状況データ）を算出して，データベースに格納する．演習状況データは，解答順位，解答時間，誤解答提出回数，課題猶予時間（単位：分，％），課題正解時間（単位：分，％）の７種類で（１）

図 1 演習状況データの算出
機能 2：演習状況データ分析機能
受講者，課題の特徴を選択することで，その特徴を有する受講者，課題，演習状況データを表で提示する．また，演習状況データが指定された条件を満たす場合に色を変えて強調表示するフィルター機能を実現する．これにより，視認性を向上させて，受講者と課題が多数の場合でも，表から特異な値を容易に発見できるようにする．

2.

提案システムの実現

以下の手順により，提案システムを実現する．
手順 1：演習履歴テーブルの作成
同じ講義の全受講者に対して，演習状況データを算出し，一覧表にまとめた演習履歴テーブルをデータベースに格納する．演習状況データの種類を切り替えることにより，解答順位，解答時間，誤解答提出回数など複数の視点から演習状況を分析する機能を実現する．これにより，相対的に遅れがちな受講者や，相対的に誤答案が多い受講者など，全受講者の中で相対的に問題のありそうな受講者や，相対的7教育システム情報学会 2013年度学生研究発表会

東海地区① 受講者の演習の進捗状況を把握② プログラミングの得意・不得意な受講者の発見③ 積極的・消極的に課題を取り組んでいる受講者の発見④ 受講者の得意・苦手な課題の発見⑤ 課題の難易度を推定に優れた受講者を見つけることを容易にする．
手順 2：課題テーブルの作成
同じ講義の全課題について，課題の種別をまとめた一覧表（課題詳細テーブル），および，if 文，while文など各課題の正解例プログラムに内在する構文を解析してまとめた一覧表（問題詳細テーブル）をデータベースに格納する．これらの一覧表から課題の特徴を選択することで，その特徴を有する課題だけを演習履歴テーブルから選択的に提示する機能を実現する．
手順 3：演習状況データの表示
データベースに格納された演習履歴テーブル，課
題詳細テーブル，問題詳細テーブルから選択した特徴を満たす受講者（縦軸），課題（横軸），演習状況データ（値）を表で提示する．表において，演習状況データが指定された条件を満たす場合に色を変えて強調表示するフィルター機能を実現する．これにより，視認性を向上させて，受講者と課題が多数の場合でも，特異な値を容易に発見できるようにする．

3.

演習状況
①
②
③
④
⑤

把握のしやすさ3.7（2.9）
3.8（2.4）
3.7（2.2）
4.1（2.1）4（2.8）

使いやすさ
3.2（3.0）
3.3（2.8）
3.4（2.2）
3.8（2.4）
3.3（2.5）

値の見やすさ3.3（2.7）
3.8（2.4）
3.6（2.2）
3.4（2.4）
3.8（2.4）

表 1 アンケート結果の平均
CAPES の演習履歴確認機能では，演習状況を推定するためのデータを取得するのが困難であるため，演習状況の把握を諦めた人が存在した．例として，プログラミングの不得意な受講者を発見する際に，誤解答提出回数を見ようとしたが，何度も課題詳細画面を開き，答案提出回数を数える必要があるため諦めたといった意見があった（問題点１，2）．
プロトタイプシステムでは，他の受講者，課題と誤解答提出回数などを比較しやすい（問題点１，2の解決），フィルター機能により目的の値の発見が簡単（問題点 3 の解決）という意見があった．しかし，表の設定に手間がかかる．複数の値を同時表示したときに，値が見づらい．直感的な操作が難しいという新たな問題が生じた．
このアンケート結果から，全体的に提案システムの方が，従来の CAPES の演習履歴確認機能より，上記の演習状況の分析という点では優れていると考えられる．

プロトタイプシステム

提案システムの実現法に従い，プロトタイプシステムを作成した．表の条件を入力し，図 2 がその結果例である．表の条件として，以下が設定できる．
縦軸：指定した学籍番号の受講者，課題の未正解がない・未正解がある受講者，と縦軸を決定する．
横軸：課題の種別（必須・チャレンジなど），課題の持つ構文を指定し，横軸とする課題を選択．
値：表示する演習状況データの選択．値の並び替え．
また，表を作成した後，フィルターにより，条件を満たす演習状況データを抽出し，色を変えて強調表示する．

5.

おわりに

本研究では，より良い演習を行うために，指導者が受講者の演習状況を分析・把握するためのシステ
ムを提案し，その実現方法を示し，従来システムと比較評価した．今後の課題として，以下があげられる．多様な演習状況データを算出し，より多角的に演習状況を分析する．求めたい演習状況であると判断する基準の確立．システムの直感的な使用を可能とし，より多様な演習状況データの一覧機能の実現．
これらの点を改善し，指導者のより正確な演習状況の把握を目指すことが今後の課題である．

図 2 システムが提示する表

4.

システムの総合評価
3.5（2.7）
3.9（2.3）
3.7（2.3）
3.8（2.2）
3.9（2.5）

提案システムの評価

従来の演習履歴確認機能とプロトタイプシステムを 10 名に使用してもらい，アンケートをとった．ア
ンケート対象者に両システムを用いて，以下の 5 つの演習状況の把握を目指し，5 段階評価で点数をつけてもらい，その結果が表 1 である．5 段階評価は，5：良い，4：少し良い，3：普通，2：少し悪い，1：悪いとする．
（）外が提案システム，（）内が従来の演習履歴確認機能の評価平均である．

6.

参考文献

参考文献
(1) 中島秀樹，高橋直久，細川宜秀，“プログラミング学習のための QA サイクル-受講者の習得度に応じた問題自動提示メカニズム-”，電子情報通信学会論文誌，VOL.J88-D-I， NO.2，pp439-450，2005

8