何が大変なのかっていうことですが、
約4200個の演習問題を数人で採点しなければならないことです。
採点に関しては自動採点に持っていった方が良さそうです。
自動採点にする場合、必要なものは以下の2つです。
- 演習問題の解答コード(.cファイル)
- 解答コードの実行結果(.txtファイル)
プログラミング演習では、上記の2つは受講生が提出物として提出してくれますが、
実行結果の方は鵜吞みにしてはいけません. . .
(ねつ造していることが結構あったりします)
そのため、採点では解答コードだけ回収して
Linux内でfor文を組み、その中に全員の解答コードを突っ込んで実行することで新たな実行結果ファイルを生成しています。
既存の提出システムでは以下のように分類されます。
フォルダ1 : 解答コード
フォルダ2 : 解答コードの実行結果
フォルダ3 : 解答コードの採点結果
また、[解答コード, 実行結果]のペアが判別できるように学籍番号をファイル名にします。
フォルダ2は前述のことがあるためLinux内で生成したファイルにすり替えています。
「フォルダ3への↓」のところで自動採点すれば良いかなという感じですね
採点方法は以下が一般的です。
・模範解答コードの実行結果と比較して
実行結果が同じなら正解、異なるなら不正解
ですが、これだけだと全く機能しません. . .
正解か不正解かというのは100点か0点しか無い状態です。実際には
部分点を付ける作業があります。
また、「実行結果が同じなら正解」は
常に正しいとは限らないです。
「入力した数字の計算結果を表示するプログラム」などでは、ある入力値では実行結果が同じでも、入力値を変えたら異なる結果になったとかが結構あります。
では、「
部分点を付けたい」「
実行結果が同じでも鵜吞みにできない」という状態で、どのように自動採点すればよいでしょうか?
ここで「演習問題の作成方法」を合わせていきます。
今回はここまでです。次回の記事では作成の段階を説明します。