四国地区

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

実行テスト系列を取り入れた小コンテスト形式の初級 C 演習における巡回指導支援ツールの GUI の改良
Revision of GUI of an Instruction Support Tool in Classroom Round for Introductory
C Programming Exercises Based on Contest Style Using Execution Test Series
Shoya OTA,

太田 翔也, 中矢 誠, 花川 直己, 富永 浩之
Makoto NAKAYA, Naoki HANAKAWA, Hiroyuki TOMINAGA
香川大学工学部
Faculty of Engineering, Kagawa University
Email: s13t210@stmail.eng.kagawa-u.ac.jp

あらまし：小コンテスト形式の初級 C 演習を実践し，提出コードの正誤を自動判定する大会運営サーバ tProgrEss を開発している．中間目標で部分点を与える実行テスト系列を用意し，時間調整点を含む得点ルールを設定する．進捗状況を即時通知し，順位公開して競争意欲を刺激する．本論では，巡回指導支援ツールを提案する．タブレット PC を保持して教室を巡回しながら，座席表から受講者の着席位置を確認し，呼出に応じて質問に答える．着席位置から，コンテストの得点順位や提出履歴などをモーダルウィンドウで閲覧する．機能要件を整理し，動作実験を踏まえて，GUI の改良を行った．
キーワード：初級 C 演習, 小コンテスト形式, 実施監視, 巡回指導, 出席管理

1.

はじめに置であり，参加点のみとする．早期と延長における加減点は提出時期で傾斜させる．これにより，学生の早期解答を促し，演習を活性化させる．頻繁な提出は，教師にとっても教室全体の実施監視に役立つ．
最終テストでは，例外的な入力を含む，網羅的な入出力サンプルを用意する．誤答減点により，完答への慎重な確認を行わせる．最終テストが誤答や未答で終わった場合は，予備テストの部分点のみを与え，最終テストの誤答減点は行われない． コンテス
ト中の実行テストの結果は，本人および教室全体にWeb 上で公開される．ただし，ニックネームを登録して，学生同士では匿名化することもできる．

大学の情報系学科では，初年次の C 言語教育を重視している．しかし，理解度が異なる学生が受講しており，進捗状況や演習態度に大きな差が生じやす
い．本研究では，授業中の演習を活性化させるため，初心者が気軽に参加できる小コンテスト形式のプログラミング演習を 2006 年度に提案し，試行実践を経て，2009 年度から実際の授業で実践している[1]．
提示されたプログラミング問題に対し，受講者がローカル PC で作成した解答コードをアップロードする大会運営サーバ tProgrEss を開発している．サー
バ側でコンパイルし，事前に用意された入出力サンプルによる実行テストを用いて，プログラムの正誤を判定する．

2.

3.

教師への実施監視ページ

tProgrEss では，2011 年度より，教師への実施監視ページも用意し，小コンテストの進捗状況をモニタリングすることができる．このページでは，得点順位と提出履歴と個人進捗のモードを切り替えて必要な情報を提示する．
得点順位モードでは，得点の順に学生の行(レコード)が並び，各問題の予備テストの進捗状況および正誤判定と得点が示される．提出の最終日時も表示される．得点が低い学生を見つけて激励したり，個別指導を行う．また，しばらく提出のない学生に警告したりもする．
提出履歴モードでは，提出コードごとの行(レコード)が時系列で表示される[2]．誰がいつ提出した，どの問題のどの段階の実行テストに対する提出か，正誤判定の結果とともに一覧で表示される．受講者，問題，実行テストの段階，正誤判定の結果で絞込み表示も行える．コードの行をクリックすれば，コード自体，実行結果，コンパイルやエラーのメッセージも確認できる．2015 年度からは，教師が用意した模範コードと並べて閲覧できる．簡単な差分機能が実行テスト系列と得点ルール本演習の特徴を述べる．まず，受講者の幅広い理解度に対応するため，複数の予備テストと 1 つの最終テストからなる実行テスト系列を用意している．
コーディングの指針や中間目標としての予備テストは，条件を緩めた部分的な仕様を満たせばよい．予備テストは，3 つ程度で構成する．プログラムの段階的実装を誘導し，徐々に完成に近付けさせる．予備テストには誤答減点がなく，気軽に提出できる．
不得手な受講者にも，着手の糸口を与え，部分点を与える．教師は，進捗状況をより詳細に把握できる．
また，部分解答の状態でも提出コードを閲覧でき，理解不足の箇所を知ることができる．
次に，プログラムの判定結果には，時間調整点に基づく得点ルールを適用する．時間調整点は，最終テストの提出時期により，通常の配点に加減点を付与する．早期の提出は積極性を評価し加点する．通常の提出には加減点はない．延長の提出は多少は許容する代わりに減点する．事後の提出は追試的な措

139

四国地区

教育システム情報学会 2015年度学生研究発表会あり，相違を比較することが容易である(図 3)．なお，個人進捗モードについては，本論では割愛する．

4.

演習時の教室と補助者の状況

本演習では，授業の主担当の教師以外に，教授側の補助者として，数名の補助教員と技術職員，そして TA(ティーチングアシスタント)が協力している．
補助者は，教室を巡回しながら，挙手した受講者からの質問に，その場に出向いて回答する．小コンテ
ストに，実行テスト系列と時間調整点を導入しているため，通常の演習よりも質問が出やすく，補助者の出番が多い．
実際には，午後の 2 限 180 分を演習のみの時間として設け，課外の延長も認めている．受講者は 70 名前後で，補助者は最大 10 名程度である．ただし，補助者には，正規の TA 以外にボランティアで臨時に参加する上級生も含まれている．演習から最初の 1
時間は解き始めで余り質問が出ず，2 時間を経過した頃から挙手が多くなり，3 時間を過ぎると残った数人を個別に指導するという状況に合わせている．
そのため，後から参加の補助者は，以前からの補助者に状況を聞きながら，対処していくことになる．
1 回の演習で，6 問の出題があり，実行テストは，15 問程度になる．そのため，解答コードの提出も，各受講者で 15 件前後となり，15 分に 1 回程度は，提出が行われる．また，正確な計測ではないが，質問数は 50 程度はあり，1 回 5 分は費やすとすると，延べ 250 分になる．10 名の補助者が約 20 分程度の時間は対処していることになる．そのため，ピーク時には，複数の受講者が挙手したまま，補助者による回答をしばらく待たされる状況が生じている．
また，プログラミングの問題であるため，正誤だけでなく，受講者のコードを眺めてバグを指摘する必要がある．これには，質問を受けてから適切に回答するまでに時間がかかることがある．演習の教室
は，通路が狭く，補助者が移動しにくい．机上にディスプレイがあり，視界を遮って，受講者の挙手を見逃すことがある．並んだ座席の背後から割り込み，受講者のノート PC の画面を覗き込んで，問題箇所を指摘するのは，容易とはいえない．
2015 年度から，補助者にはタブレット PC を貸与し，教師と同様の実施監視ページの各モードにアクセスできるようにした．タブレット PC は 4 台を貸与し，自分のタブレットを利用する補助学生もいた．
これにより，指導中でも受講者の進捗状況を把握しやすくなった．しかし，実施監視ページだけでは，実際に学生の座席の傍に出向く補助者には不便な点が多かった．

5.

コンテスト連携の巡回指導の支援ツール

本研究では，tProgrEss による小コンテストの実施と連動し，補助者が主に利用する巡回指導支援ツールを提案する[3]．本ツールは，教師のモニタリング機能を派生させ，図 1 のように補助者への巡回指導140に必要な独自の機能を追加したものである．
機能については，座席表による出席管理，チャットによる質疑応答，掲示板によるメッセージ通知な
ど，ツール固有で単独に利用できるものがある．また，tProgrEss とのデータ連携を図り，小コンテストの実施時に，進捗状況を監視し，補助者の指導に必要な情報を簡潔に提供する機能もある．
本ツールのサーバは，tProgrEss とは別のマシンで独立に稼動することができる(図 2)．ただし，通信のセキュリティの条件を満たす必要がある．補助者に対する GUI は，タブレット PC での利用に適した設計とする．受講者と教師に対する GUI は，将来的には，tProgrEss の Web ページに組み込めるようにする．現在は試作版であり，専用の GUI のみである．
tProgrEss

教員補助者
巡回指導

受講者

図 1 巡回指導の風景
大会運営サーバ

巡回指導支援ツール

教師

補助者

出席一覧

補助対応

教室活動

出席登録

補助呼出

回答送信

教室進捗

一斉通知

会話

成績連携

質問送信

個人進捗

コンテスト監視成績

コード要項

コンテスト受験

受講者

図 2 巡回指導支援ツールのモジュール構成

6.

出席登録と出席一覧の GUI

本ツールの GUI は，Web ブラウザ上で，タブレッ
ト PC でも見やすいウィンドウサイズとし，タブ形式の表示を採用する．受講側の出席登録では，各授業の教室の座席一覧のタブを開く(図 3)．教卓側を上にした長方形の配置とし，個人の着席位置ごとに縦横に番号を振っておく．隣接する机は接するようにし，通路に相当する部分は離して，ブロック単位の状態を直感的に表す．教室の構造上などで実際には座席がない箇所は，空枠とする．
受講者は，演習前の着席時に，座席表の空席をクリックして，自分の着席位置を登録する．既に着席の位置には，出席者の学籍番号が表示され，着席のクリックはできない．退席する場合は，自分の着席位置をクリックすると，空席に戻る．着席位置を間違えた場合は，新たな着席位置をクリックし直す．

四国地区

教育システム情報学会 2015年度学生研究発表会に公開しているオンラインの C 言語のハンドブックなどが既に開かれており，本ツールの画面を十分に開く余裕がないためである．
補助側の教室進捗は，教室進捗タブで表示する(図6)．tProgrEss 本体の教師監視ページとほぼ同様の情報がタブレット PC での閲覧に適した状態で表示される．コンテスト前に，コンテスト要項を表示する．
コンテスト中に，提出履歴の情報を，一定時間ごとに更新する．受講者の一覧表示に，受講者の問題ごとの進捗状況を表示する．

tProgrEss による演習では，自宅から遠隔での参加を行うこともある．その場合は，教師の了解の下，遠隔参加として登録する．
補助側および教師側の出席一覧でも，座席表の配置は，ほぼ同様である．遠隔参加の受講者も，座席表の欄外に表示する．なお，上下を反転することができる．受講者一覧のタブを開くと，受講者全員の一覧も表示される．各行で，学籍番号，氏名，着席位置，出席状態を表示する．出欠に応じて，出席欄を色分けする．出席は緑色，遠隔参加は黄緑色，欠席の場合は灰色で表示する．

7.

教室進捗と個人進捗の GUI

本ツールの特徴は，tProgrEss 上の小コンテストとの即時的なデータ連携である．この機能は，補助側において，個人進捗と教室進捗に分かれる．個人進捗は，まずは，座席表の各受講者の着席位置での簡易表示として提供される．さらに，その位置をクリックして出現するタブ形式のモーダルウィンドウで詳細表示として提供される．これは，本ツールの試行実践において，モーダルウィンドウのスクロールが不便であるという意見を取り入れたためである．
座席表の各位置には，総得点が表示されている．
コンテストごとに設定する目標点での合否を，得点欄の背景色で区別する．合格なら得点の背景を水色に，そうでなければ黄色にする．座席表を一瞥すれば状況が把握できる．これは，補助者が巡回指導をどのように行うか，他の補助者と分担や協力を行うかの目安になる．また，座席にマウスオーバーすると，簡易表示として，氏名と学籍番号，現在の順位と総得点，最終提出の日時と問題番号をポップアップウィンドウで表示する(図 4)．
なお，最終提出の情報については，本来は，現在も取り組んでいる問題番号を表示すべきであるが，現時点では tProgrEss 側のアクセスログの処理が対応していない．しかし，実行テストの種別も表示することで，予備テストであれば，その問題に解答中であることが推測できる．また，提出日時よりは，最終からの経過時間の方が見やすいという意見もあり，検討している．
各受講者の詳細表示は，モーダルウィンドウの学生情報タブと個人進捗タブで提供する(図 5)．前者には，個人の基本情報と進捗の概要を表示する．後者には，提出履歴を表形式で表示する．表示は，提出日時が新しい順に上から並ぶ．提出コードの各レコードには，提出日時，問題番号，実行テスト系列の種別，採点結果，得点を示す．正答なら緑色で，誤答なら赤色で行の背景色を強調する．また，実際の提出コードを閲覧するリンクも張ってある．
受講側の個人進捗は，tProgrEss 本体の個人ページとほぼ同様の情報を表示する．将来的には，tProgrEss内の個人ページに埋め込まれる．これは，受講者の画面では，tProgrEss の問題解答ページ，テキストエディタ，言語処理系を実行するコンソール，授業用

図 3 受講側の出席登録と補助側の出席一覧

図 4 各座席での簡易表示

図 5 補助側の学生情報タブと個人進捗タブ

図 6 補助側の教室進捗タブ

8.

巡回指導の支援に関する GUI

本ツールは，巡回指導において，受講者の挙手による質問と，補助者の現場での回答を，円滑に行えるように支援する．受講側は，基本的に，自分の位置から挙手して，補助側に呼出しをかけるだけでよい．質問内容は，何をしたら何が起きたのか，どこ

141

四国地区

教育システム情報学会 2015年度学生研究発表会がどう分からないのか，予め整理しておくことが望ましい．補助側は，個々の受講者への対応だけでなく，教室全体の状況の把握も必要である．
これらへの支援において，待ち時間を無駄にしない，遠隔でも簡単に指導する，共通の回答や注意は一括するなどの用途で，コミュニケーション機能も活用する．また，補助者同士が協力や分担を相談したり，担当教師から通知を受け取る場合にも利用できる．これらの中には，受講者に知らせたくない情報もあり，教室内で口頭で伝えることは適切でない．
基本的に，本ツールの補助側の座席表では，受講者の状況がアイコンで表示される．モーダルウィン
ドウには，対応すべき振舞を現す各種のボタンが表示される．必要に応じて，チャット機能を利用して質疑応答をすることもできる．
まず，受講者は，質問があるときや指導を受けたいとき，挙手ボタンを押して，補助者を呼び出す．
補助側では，着席位置に質問中の状態を示すクエスチョンマークのアイコンが表示される．最初に気付いた補助者が応対ボタンを押す．他の補助者の座席表でも，応対中のアイコンに変わる．指導が済めば，補助者が解決ボタンを押して，最初の状態である解答中に戻る．
逆に，教室進捗や個人進捗を眺めていた補助者が，対応すべきと判断した受講者の方へ指導に向かうこともある．例えば，しばらく提出がない，同じ間違いを繰り返している，などである．他の補助者からの要請，担当教員からの指示の場合もある．この場
合，補助者は該当する受講者の位置で指導ボタンを押す．受講者の位置は，指導中のアイコンに変わる．
受講者の座席まで出向くか，チャットで指導するかは状況による．解決ボタンを押せば，元に戻る．
これらの状況において，補助者が座席に来るまで，受講者および補助者は，質疑応答タブで，事前に質問と回答を行うことができる(図 7)．簡単な質問では，その応答だけで済み，解決ボタンを押して終了となることもある．受講者は各自のスレッドで，質問ボタンを押して質問を投稿する．補助者の方にも通知が届き，質疑応答タブを開くように促す．最初に，問題番号とテスト段階を明記しておく．逆に，補助者が特定の受講者に対して，受講者のスレッドで質問を行うこともある．
各自のスレッドは，受講側は受講者本人だけであるが，補助側は全員が閲覧し，記事の投稿もできる．
チャットタブでは，その授業内での過去の投稿も一覧できる．
補助者は，座席表の GUI には，受講者の状況だけで応対中の補助者も明記される．受講者の進捗状況，補助者の対応状況，チャットの記事など，本ツールが提供する様々な情報に基づいて，自分の行動を検討する．必要に応じて，補助者同士のチャットのスレッドを用いる．これは，受講者には非公開である．
また，担当教員から補助者への一斉通知など，メッ142セージ機能も実現している．同じようなミスをしている受講者のみにヒントを提示するなど，送信先を選んで，一対多でメッセージを送信する機能も求められている．これについては，現在の試作版では未実装である．
○○から質問の挙手
受講者 : 総和が合いません
補助者 : 変数の初期化した？
受講者 : してませんでした○○への応対が終了

図 7 受講側と補助側の質疑応答タブ

9.

おわりに小コンテスト形式の演習において，タブレット PCを保持する補助者の巡回指導を支援するツールを試作した．大会運営サーバとデータ連携し，得点状況や進捗状況を，巡回指導中に Web 座席表で把握できる．受講者からの挙手呼出と補助者の現場応対を迅速にする機能，受講者と補助者のチャット機能を提供する．補助者同士の情報共有も促進する．
関連研究として，日高らの座席表の着席位置も扱
う出席管理ツールには，RFID を利用した出席管理システムがある[4]．これは，座席の RFID と受講者のRFID を組で登録することで着席位置を特定している．また，片切らは受講者の操作履歴を分析して指導者の支援を行っている[5]．
本ツールは，小コンテストとのデータ連携を行い，着席位置とコンテストの進捗状況を紐付けることで補助者の巡回指導が円滑に行えるように支援している．また，必ずしも出席しなくても遠隔参加も認めている．今後は，機能の実装を進め，実際の演習での試用実験を行って利用者からの評価を受け，機能を改善する．

参考文献
1) 倉田英和, 富永浩之, 林敏浩, 垂水浩幸, 山崎敏範, "実行テストを用いたコンテスト形式の入門的 C プログラミング演習の大会運営サーバの開発", 情処研報, Vol.2006, No.108, pp.916 (2006).
2) 西村智治, 川崎慎一郎, 富永浩之, "競争型学習を取り入れた
初級 C プログラミング演習における教師支援 ‐モニタリン
グ機能としての解答状況と提出状況の視覚化‐", 信学技報,
Vol.110, No.453, pp.163-168 (2011).
3) 太田翔也，中矢誠，花川直己，富永浩之 "実行テスト系列を取り入れた小コンテスト形式の初級 C 演習における教師支援 ‐コンテストの進捗状況と連動する出席管理ツールと補助学生による巡回指導の支援機能‐", 教育システム情報学
会 研究報告, Vol.30, No.5, pp.7-12 (2016).
4) 日高良太, 相原玲二, 隅谷孝洋, "着席位置を特定する出席管理システムの設計と試作", 情処研報, Vol.2006-DSM-040,
pp.13-18 (2006).
5) 片桐由祐, 立岩佑一郎, 山本大介, 高橋直久, ”受講者の操作履歴の分析機能を用いたプログラミング指導者支援システムの実現”, 信学技報, Vol.109, No.335, pp.181-186 (2009).