ヒューリステックを用いた,プログラミング演習用の効率的な自動採点システム
全文
(2) 4 採点スクリプトの記述. (1) 提出プログラム $TARGET.c を整形し,コンパイ ルする。 (2) 前チェックファイル $TARGET.pre を実行する。 (3) BBT の $TARGET.sh を実行する。複数のテスト ケースを指定できる。 (4) WBT の $TARGET.pat を実行する。 (5) 採点結果をログに出力する。. 採点スクリプトは BBT ($TARGET.sh) と WBT ($TARGET.pat) にファイルを分けて csh 言語を用いて 記述する。この他に前チェックを行う $TARGET.pre も ある。不必要なものは省略できる。採点スクリプトを grep コマンドなどを使って書くと,テストコードが煩 雑となり,記述も長くなるため,次のマクロスクリプ トを提供している。. • fhaveFunction.sh 関数の定義があるか調べる。 • fhaveOutput.sh 出力の大きさの上下限を調べる。 • fpattern.sh ソース中にパターンがあるか調べる。 • fpatternInFunction.sh 関数定義中にパターンがあ るか調べる。 • fpatternInOutput.sh 出力中にパターンがあるか調 べる。. 正解の学生に対しては, 「クラスごとの採点結果」と して次のファイルを生成する。. (a) $TARGET.c ソースプログラムを連結したもの。 (b) $TARGET.out プログラム出力を連結したもの。 (c) $TARGET.txt 提出ファイルを連結したもの。 不正解の学生に対しては,次のファイルを生成する。. (d) $TARGET.err エラー内容,テストケースの実行 結果,ソースプログラムを連結したもの。. fpattern.sh などのパターンを調べるマクロスクリプ トは,次のパターン式を指定できる。pattern には正規 表現を指定できるため,ヒューリスティックを容易に 記述できる。. • INCLUDE pattern 回数 [MORE|EQUAL|LESS] pattern の出現回数を調べる。 • AND pattern1 pattern2 pattern1 と pattern2 を含む行があるかを調べる。 • OR pattern1 pattern2 ... いずれかのパターンを含む行があるかを調べる。 • NOT pattern pattern を含む行がないことを調べる。. 採点の結果として,○(アルゴリズムが正しい), △(アルゴリズムに問題がある),×(コンパイルエ ラー,実行エラー,課題を満足していない),★(ファ イルが存在しない)の 4 レベルの評価を付けている。. 6 採点スクリプトの作成法 本システムを用いた課題の採点は次の手順となる。. (1) 問題と解答例のプログラムから仮の採点スクリプ トを作成し,採点処理を実行する。 (2) 「クラスごとの採点結果」を調べ,ヒューリス ティックを収集する。ヒューリスティックを追加・ 削除して何回か採点処理を実行する。正しいプ ログラムが不正解とならず,不正解なプログラム が正解とならないような採点スクリプトを作成 する。 (3) 重要な課題やバグの多い課題は, 「クラスごとの採 点結果」を教員が調べ,提出プログラムを詳細に 採点し,問題点をコメントする。. たとえば,前述の課題の採点スクリプト workc0.sh は次のように書ける。 #!/bin/csh -f setenv OPTIONS ’33 88 11’ limit cputime 1 pushd $TMP/ > /dev/null ./$TARGET.exe $OPTIONS |& $FNORMALIZE > $TMP/$TARGET.out unlimit cputime popd > /dev/null. 7 おわりに マクロスクリプトと正規表現を用いて記述したヒ. ## 最大値の出力を確認する。 ./fpatternInOutput.sh -e "x" AND "最大" "88" if ( $status != 0 ) then exit 1 endif ## 連結リストの表示の行数を確認する。 ./fpatternInOutput.sh -e "×" INCLUDE "LIST" 6 if ( $status != 0 ) then exit 1 endif exit 0. ューリスティックを用いることで採点を効率的に行え, 採点の確度は 9 割ほどである。ただ,冗長なプログラ ムやアルゴリズムの悪さを指摘することはできない。 本システムは学生の進捗状況の把握や課題の採点を 目的としているが,学生がプログラムの問題点を確認 するために使用できるように改良する予定である。 参考文献. 5 採点の処理フロー 提出プログラム $TARGET.c の採点処理は次の順番 で行う。いずれかのフェーズでエラーを検出したとき は,エラーメッセージをログに書き込み,採点処理を. [1] Zin, A. M. and E. Foxley, ”Automatic Program Quality Assessment System”, Proceedings of the IFIP Conference on Software Quality, 1991.. 中止する。. 4−346.
(3)
関連したドキュメント
This paper introduces an on-line cooperative planning and design system and studies its educational application as an exercise tool for practicing public
21 これ以後は、PIAC(1967 第 13 会大会)[1]の勧告値を採用し山地・平地部 150ppm、市街地 100ppm を採用し、都市内では重交通を理由として 50ppm
[r]
VDE-REG 8789 EVC 07BZ5-F 3x2,5+1x0,5 450/750 V EN 50620 EVC1234 (manufacturing order no.). LEONI
需要動向に対応して,長期にわたる効率的な安定供給を確保するため, 500kV 基 幹系統を拠点とし,地域的な需要動向,既設系統の状況などを勘案のうえ,需要
Conservation of water quality of rivers in Japan is an important national measure to support the life of the people and industry. However, concerns about ensuring the water
[r]
Work Values, Occupational Engagement, and Professional Quality of Life in Counselors- in Training: Assessment in Constructivist- Based Career Counseling Course.. Development of