みたにっき@はてな

三谷純のブログ

出席回数

非常勤講師で担当した授業の成績評価をそろそろ考えなくてはならない時期になってきました。プログラミングの演習がメインなので、レポートと講義の出席回数を考慮して評価することにしています。
レポートはポツリポツリと提出され始めているので、そのたびに評価を行っているのですが、問題は出欠回数の評価。
これはまだ集計をとっていなかったのです。
ちなみに、出席のチェックは講義の時間の中で、学生に自分の学生番号をHTMLのフォームに入力してもらって、HTTP経由でPCに登録してもらうようにしました。
(このようにすると、同じIPアドレスから投稿されたものをはじくことで、代返のチェックができてしまって便利)
その結果、出席した学生の学生番号が1行に1つ入っているテキストファイルがログとして残っています。手書きの出席簿だと後で集計が大変ですが、デジタルデータとして残しておけば、どうにでも処理できます。
ログファイルから学生番号の出現頻度=出席回数と判断して、次のようなPerlのプログラムで集計を取りました。

open(IN,"log.txt");
while (<IN>) {
    chomp;
    $COUNT{$_}++;
}
close(IN);
foreach (sort keys %COUNT) {
    print $_ . "\t" . $COUNT{$_} . "\n";
}

以上。
たったの9行のプログラムで学生番号と出席回数の対がExcelで読める形式で出力できました。
Javaの授業だったのに出欠の集計はPerlで行ったというのが皮肉なものですが、やっぱり小さなプログラムをササッと作るにはPerlが便利ですね(もしかしたらUNIXコマンド使ったりしてもっと簡単にできる??)。


と、すんなり集計が終わったのであればスマートな話なのですが、学生番号にアルファベットや全角文字が含まれている場合もあったりして、やっぱり全自動はできなかったのでした(T-T