第3クォーター,月曜午後のプログラミング演習科目は,今週が最終回でした.
先週までは授業日の23:59を提出期限としていましたが,最終回だけ金曜日の23:59にしていて,本日,答案を回収して,一つ一つを見て素点をつけていきました.
最終回では4つに分けて提出をしてもらいました.CGIプログラムのソースコード,スクリーンショット,Apacheのアクセスログ,それと振り返り*1です.
4つのうち,最初に見ていったのは,スクリーンショットです.Moodleから,zip形式で答案をダウンロードしたものに対し,独自のRubyスクリプトを実行して展開とファイル名変更を行い,画像を一つのフォルダに集めます.IrfanViewで順に見ていき,おかしな画像には,CSVファイル---学生番号・ファイル名・ファイルサイズなどからなる表で,これもRubyスクリプトで作成します---の学生番号の行に,コメントを記録していきます.ファイルサイズのすぐ右の列にはすべて「1」を書きました.ひとまず全員同じ点数という意味です.100点満点の1点分,ではありません.成績案を作る際に何倍かします.
次は,Apacheのアクセスログです.前々回,前回にもアクセスログを提出してもらっていました.先述のスクリプトでファイル集約とCSVファイル作成をしたあと,前回作成したRubyスクリプトをEmacsで開き,ファイル名を変更しました.
前回は,提出されたログファイル(結局のところ学生番号)ごとに,授業日にcgi-binを含むパスに何回アクセスがあったかを集計していました.その分布(「0回」「1~9回」「10~49回」「50~99回」「100回~」の該当者数)をTeamsで学生にフィードバックして,アプリケーションの完成度を高めるには多くアクセスすることですよと促していました.
アクセスログを見ていくスクリプトについて,cgi-binを含むパスに限るのは変わりませんが,日付は,前回授業日以降すべてを対象にしないといけません.ともあれ編集時間はあまりかからず,実行してみると,処理はあっという間で,テキストファイルに保存されました.
そのファイルを開くと…
なんと,最終回にもかかわらず,cgi-binを含むパスのアクセス回数が「0」というのが,何人かいました.該当する学生番号ごとに,アクセスログのファイルを開いて後ろ(新しい日時)からさかのぼりながら見ていくと,いずれも,CGIプログラムを実行してアクセスログに記録した形跡が見当たりません.ログの最後の行の日時が,先々週の授業日というのも,ありました.プログラム作成・実行に十分な時間をかけたとは言えず,点数も「0」にせざるを得ません.
それからやっと,CGIプログラムです.ただし最初に実行してもらうプログラムを提供していたので,採点対象はそこからの追加分のみとなります.これについては,diffコマンドを実行することなく,すべての答案を,区切り行を入れながら連結して一つのテキストファイルに保存し,上から見ていき,不備のある答案や,明らかにこのままでは動かないプログラムについて,区切りのところにコメントをつけていきました.
全部をみてから,コメントをつけた答案について,その学生番号のスクリーンショットとアクセスログを見ていきました.プログラムは動作していて課題で指示していたコメントをソースファイルに記入していなかったものと,プログラムが動作できていなかったものとで,減点幅を変えました.いくつかのスクリーンショットの点数を「0」にしました.
不備のない答案は,満点です.CSVファイルに記入して,素点つけは完了です.振り返りの採点も,時間はかかりませんでした.
提出ごとのCSVファイル25個を統合して,100点満点の成績案のExcelファイルを作るのは,週明けにします.