プログラミング学習の支援システム開発 - 教育システム情報学会

プログラミング学習支援システムの開発
Development of Learning Support System Programming
世嘉良 紳*1, 近藤 玄基*2,正木 忠勝*3,角田 正豊*4
Shin SEKARYO , Kondo GENKI*2, Tadakatsu MASAKI*3, Masatoyo SUMIDA*4
* 沖縄工業高等専門学校メディア情報工学科
* Okinawa National College of Technology Department of Media Information Engineering
Email: [email protected] *1
*1
あらまし:学生が作成したプログラムを自動採点する機能と教員が学生の進捗状況を把握する機能を持
つ Web システムを提案・開発した.本システムを用いることで,多くの演習問題を取り扱う授業におい
ても,学生は作成したプログラムの動作を素早く確認できる.また,教員は学生個々の進捗状況を把握
することで, 学生個々のレベルに応じた適切な指導を行うことが可能になると考えられる.
キーワード:教育システム情報学会,プログラミング学習
1.
はじめに
本校メディア情報工学科における「プログラミン
グⅠ,Ⅱ」の授業では,多数の演習問題に取り組
ませることによって,学生のプログラム作成の基礎
力を養い,簡単なプログラムを実装する力を身につ
けさせる授業を行っている.
授業にて学生は,教員が紙媒体で配布した問題に
対する解答プログラムを作成し,演習室に設置され
たコンピュータで実行させた後,各自で採点を行っ
ている.そして,40 名を超える学生が毎授業時間 10
題程度の演習問題を実習している授業状況である.
そこで,教員が各学生の正解状況や進捗状況を把
握できれば,より学生個々のレベルに応じた適切な
指導を行うことが可能になると考えられる.
今回,教員による出題,学生の作成した解答プロ
グラムの採点,学生の正解状況と進捗状況の把握管
理の一連のプロセスを実行するシステムを開発した
ので,報告する.
2.
2. 学生は問題 DB に登録された問題を解答する
3. 学生は自動採点機能に解答を送信する
4. 学生は自動採点された結果を受け取る
5. システムは採点結果を進捗 DB に登録する
6. 教員は進捗 DB にアクセスし学生の進捗状況を
把握する
以下では,それぞれの手続きについて詳述する.
システム構成
本システムは,サーバサイドのアプリケーション
実装言語である Node,js,WEB アプリケーション開
発用フレームワークである Express,データベースに
MySQL を組み合わせて CentOS 上に構築し,プラッ
トフォームとしている.
問題登録機能,自動採点機能,進捗管理機の 3 つ
機能を有し,教員が作成した問題を登録する問題デ
ータベース(以降、問題 DB と表記),問題の解答と
テストケースを保存する解答データベース(以降、
解答 DB と表記)、学生の進捗状況を記録する進捗デ
ータベース(以降、進捗 DB と表記)の 3 つのデー
タベースと組み合わせてシステムを構成している.
教員や学生は Web ブラウザを用いてシステムを利
用する.
本システムは,図 1 のようにこれらの機能を組み
合わせることでプログラミング学習の支援を行う.
本システムの動作手順は以下の通りとなっている.
1. 教員が問題 DB に問題を登録する
図1.システムの動作図
2.1 問題登録機能
教員はシステムへログイン後,教員メニューペー
ジへ移動する.メニューページから問題登録のリン
クを選択すると問題登録ページへ移動する.
問題の登録は教員が作成した XML 形式のファイ
ルをこのページを通して問題登録機能に送信するこ
とで行われる.XML ファイルの内容は図 2 の通りと
なっている.
教員は XML ファイルを作成後,問題登録ページ
のファイル選択ボタンをクリックし,作成した XML
を指定した後,送信ボタンをクリックすると問題の
登録が完了する.
図 4.解答のゆらぎ一覧
図 2.XML ファイルの内容
2.2 自動採点機能
学生はシステムにログイン後,問題選択ページへ移
動する.問題選択ページで問題を選択すると問題解
答ページへ移動する.
学生は問題を解答した後,問題解答ページ内に設置
された図 3 のテキストエリアに作成したプログラム
を記述し,送信するボタンをクリックすると自動採
点機能へ解答が送信される.
自動採点機能では,学生が送信したプログラムを
gcc のコンパイラを用いてコンパイルし,exe ファイ
ルを作成する.その後、解答 DB から取り出したテ
ストケースを exe ファイルへ入力データとして与え,
出力された結果と解答 DB から取り出した解答デー
タを比較することで採点を行う.
採点は,解答データとの完全一致のみで行わず,例
として図 4 の表に示すように,ある程度の解答のゆ
らぎを許可するようになっている.
学生は採点の結果を問題解答ページ内で,図 5 の
ようにアラート形式で受け取ることができる.
図 5.採点結果の表示
2.3 進捗管理機能
教員は,教員メニューページから進捗を確認する
というリンクを選択すると進捗確認ページへ移動す
る.
進捗確認ページでは、ページ右上に設置された学
年と授業の回を選択することで、図 6 のようにその
授業で出題された演習問題を学生がどれだけ解けて
いるかといった進捗状況を把握することができる.
図 6.進捗確認ページ
3.
おわりに
教員が出題したプログラミング演習問題を保存し
学生からのデマンドに応じて出題する問題登録機能、
学生が作成した解答プログラムを実行し結果を教員
の解答データと比較して採点を行う自動採点機能、
学生の正解状況を監視し個々の学生の進捗状況を教
員が把握管理できる進捗管理機能の三つの機能を有
するプログラミング学習支援システムを開発した.
本システムは、CentOS, node.js, Express, MySQL を
組み合わせてプラットフォームとし,構築している.
本システムは、本校「プログラミングⅠ,Ⅱ」の
ような多数の演習問題を実習する授業において、 初
歩レベルの学習者のプログラム作成の基礎力を養成
するのに効果があると考えられる.
図 3.テキストエリア
参考文献
(1) 近藤玄基:“プログラミング学習支援支援システムの
開発-正解判定方法の検討と実装-,沖縄工業高等専門
学校 平成 24 年度卒業研究 (2012)