わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

成績評価は,CSVファイルの整理から

前期担当4クラスの成績評価に取りかかりました.とはいえ講義の試験はまだですし,試験が終わってから点数をつけると予告したレポート課題や,試験後に期限を設けた再提出課題もあります.
今期は,提出物は可能な限り1〜2日以内に素点をつけていました.Moodleで提出されたものを一括ダウンロードし,簡単なRubyスクリプトでファイル名を変えるとともに,学生番号・氏名・ファイル名・ファイルサイズの4列からなるCSV (Comma Separated Values)ファイルを生成しました.これをExcelで開いて,E列以降に,素点やメモを記入しました.
学生番号と氏名は,ダウンロードしたファイル名に含まれているので,別途,名簿ファイルなどを使用していません.
しかし,こうして得たCSVファイルは,「誰が提出したか」が容易に分かる反面,「誰が提出しなかったか」が分からないという問題点もあります.
また新たなRubyスクリプトを作りまして,名簿(xlsをcsvに変換)と,各提出物のCSVファイルを入力にとり*1,学生番号をキーとして,素点を取り出し,一つの大きな表を作りました.未提出の箇所は空欄となります.
このRubyスクリプト,当初は,情報処理科目2クラス分を処理するものとして作り,専門科目の講義(ネットワークセキュリティ)と演習(Webアプリケーション構築演習)では,別にせざるを得ないかなと思っていたところ,CSVファイルを見直してみると,どれも同じ形式なのに気づいて,結局スクリプトの分岐をせずに済みました.
できあがった表をを見ると,点数なので数値が書かれるべきところで「?」となっているのに気づきました.CSVファイルに戻って修正し,スクリプトを実行し直して,表を更新しました.

*1:入出力のCSVファイルはシフトJISでCRLFです.Rubyで処理する際にはUTF-8のLFにしています.文字コードと改行コードの変換には,nkfコマンドを用いました.