生徒の実習課題の提出を確認する、集める
公開日 2023-10-25 更新日 -
生徒の実習課題の提出確認
生徒のユーザーホームディレクトリはサーバーにありますから、生徒は保存しただけで提出したことになります。教師は居ながらにして課題の出来具合をチェックできます。これがフロッピーであれば出し入れしなくてはならないし、ましてや各コンピュータのハードディスクにあったときにはすべてのコンピュータのスイッチを入れてまわって見なければなりません。サーバーに保存されていることは画期的なことでした。
それでもなお、ディレクトリを操作して見ることはなかなか面倒ですし、漢字を含むデータの場合は漢字コードの問題もあります。また、評価をしようと思えば、次の時間に生徒が書き足す前に見なければならないこともあります。そこで、授業後に実習ファイルをすべて一カ所にコピーし、Windowsのソフトを使ってチェックをすることにした。
また、課題ファイルの存在だけをチェックすれば良いこともありますし、内容まで吟味する場合もあります。PaintShopProの描画課題ではHRごとに集めてサムネイルを作り、ギャラリーを作って校内に公開することもよくやりました。これらのチェックとコピーにはやはりperlのスクリプトを使いました。
生徒のユーザー名がリストになったファイルが必要です。たとえば
課題のファイル名は、指定したファイルとちょっと違うファイルも判定します。たとえば、当時流行したIloveYouウイルスの話題を入力練習に使ったときには、iloveyou.txtという名前で保存するよう指示しましたが、大文字小文字の違い、全角半角の違いでいろいろな間違いが出ます。正しいファイルがないときには書き込み日時などを頼りに調べ、ファイル名候補に加えます。次のような名前が発見されました。
1年目のsambaの設定ではASCII以外のファイル名はHEXコードで保存します。:82:89 は Shift_JISの 8289 つまり全角の「i」です。このリストを使って存在をチェックしたりコピーしたりします。
プログラムは以下のとおり。"not exist xxxxx..." と出たユーザーについて /home/<username> を調べて、間違いファイル名があればファイル名リストに加えます。授業ごとなので、次第にリストが充実して楽になっていきます。
プログラムの使用法は、
# fck2 names2A.txt iloveyoulist.txt
#はここではプロンプト。全生徒のファイルを読む関係で管理者になって実行します。本当は生徒ファイルを読めるユーザーを管理者より低い権限で作る方が安心。
names2A.txt, iloveyoulist.txt は ユーザー名リスト, ファイル名リストの例です。
生徒の実習課題を集める
PaintShopProで描かせた絵は、コピーして集めます。最初の課題は山と空と木が書いてあるもので、ファイル名はyama.pspでマイドキュメントに保存する指定です。
集め方は、
/home/c8satomi/yama.psp → ./kadai/2A/yama/c8satomi.psp
/home/c8sayoko/yama.psp → ./kadai/2A/yama/c8sayoko.psp
/home/c8kaori/山.psp → ./kadai/2A/yama/c8kaori.psp
...
というようにしました。2Aの部分は授業のクラスごとということです。
プログラムの使用法は、./kadai/2A/をカレントディレクトリにしてyama/を作ってから、
# fcp2 names2A.txt yama.txt yama
#はここではプロンプト。全生徒のファイルを読む関係で管理者になって実行します。
names2A.txt, yama.txt, yama は ユーザー名リスト, ファイル名リスト, コピー先フォルダ名 の例です。
課題確認のスクリプトは、何度か改良を加えたり、特別バージョンを作ったりしていますが、ここにはバックアップからできるだけ初期のもの選んで掲載しました。