第3クォーターの,月曜午後のプログラミング演習科目は,先週で最終回を迎えました.
金曜日23:59をプログラムなどの答案の提出期限,土曜11:59を振り返りの提出期限とし,それぞれ回収しました.
学生に答えてもらった振り返りと別に,自分でも,8回の授業を振り返ってみました.
1. 授業実施
昨年度から,いくつか違いがありました.まずは対面型授業(4年ぶり),講義室での演習授業(コロナ前はプログラミングの演習室で実施していました),それと,人数制限を行ったことです.
これらは,相互に関連しています.昨年度までの遠隔(オンデマンド型)授業では,人数制限を設けず,100名以上の受講を受け入れました.今年度は教室で実施することとなり,指定された講義室では,120名ほどが着席可能ではありますが,学内無線LANの使用を考慮し,80名の履修制限を設けました.
結果として,教室内は過密にならず,通信の不具合も特に発生しなかったように思います.また意図したわけではありませんが,一人で実施したい学生は教室前方,それに対し学生どうしで議論するのは教室後方と,棲み分けを図りながら,各自,課題に取り組む環境ができたのは,良かったと感じています.
質問対応は,大部分が授業中で済みました(と言いたいけれど,第8回の期限の数時間前に,VirtualBoxがエラーを出していてゲストOSが使えないというメールの問い合わせには,こちらはなすすべがありませんでした).学生がノートPCを手に教室前方まで来てもらい,スタッフの誰かに質問する形態が,後半の回には定着しました.
ただ自分自身は,手の空いているときにはもう少し教室の巡回を行い,その場の質問対応や,西日が差したときにカーテンを閉めるなど,すべきだったと反省しています.
2. 使用したソフトウェア
授業では毎回,BYOD PCを持参してもらいました.主なソフトウェアとしてはVirtualBoxで(課題によってはホストOSのブラウザやテキストエディタも併用),ゲストOSとしてDebian 12を使用しました.各ソフトウェアのバージョンは上がりましたが,基本的な使い方は昨年度までと同じです.授業中のUSBメモリ貸出と,授業時間外のダウンロードという二段構えは,3年前期の演習科目でも採用していました.Macユーザへの対応についても,UTMを利用したゲストOS環境の用意が,第2回開始までにうまくいきました.
反省点としては,第4回にhostコマンド,第6回にtelnetコマンドを,各自のゲストOS上でインストールしてもらいましたが,これらのインストールは事前にこちらで実施し,ovaファイルに含めておくべきでした.
授業中にもらった質問の中で教室全体に共有したい事項や,こちらで思いついた課題実施のヒントについては,ソフトウェアではなく外部のWebサービスですが,https://miro.com/で付箋を表示することを試みました.編集はこちらで行い,みなさんには閲覧のみ可能なURLをお知らせしました.付箋のテキスト編集がままならず(期待しない位置で改行されることがよくありました),見やすいとは思えませんでしたが,即興でメッセージを書くのには適していたように思います.
3. 取り組んでもらった課題
主なテーマは,第1回が環境構築,第2~4回がソケットプログラミング,第5~6回がApacheのビルドと活用,第7~8回がCGIプログラムでした.例年同じ内容ですが,いくつか,学生の作業も教員側の採点も苦痛だった課題を,今年度は削除しました.
コマンド実行に関する課題は,課題iから課題viiまでに割り振り,授業中のメインの課題と分離するとともに,少しの変更を行いましたが,出題内容は基本的に,昨年度と同じでした.VirtualBoxのゲストOS上でコマンドを実行するというのは,第4クォーターの同じ曜日時限の演習科目でも必要になります.VirtualBoxを使用するのは,学部カリキュラムの中ではこの2科目だけですが,Linuxなどのサーバにsshでログインして実行したり,MakefileやDockerfileなどでコマンドを記述したりすることに,活用を期待したいと思います.
課題実施に関して,残念な話もあります.第5回課題と第8回課題で,学生間で酷似した答案の提出があり,該当者にメールで連絡するとともに点数を0点にしました.
4. 来年度に向けて
カリキュラム改編により,科目名がほんの少し変わります.ネットワークコンピューティングメジャーを第1メジャーとする学生は必修科目です.今年度受講したみなさんの中で,ネットワーク情報学が第1メジャーで,かつ,今年度不合格だった人は,来年度は科目名変更した分を履修し,読み替えることで,卒業に必要な単位の修得となります.
新しい科目について,担当教員の変更はなく,第4クォーターも同じようにほんの少し変わる科目と連携して,引き続き実施にあたります.
課題のうち,ソケットプログラミングは,2年前期で身につけたC言語の技能を,インターネット通信に適用するという点で,意義があり,またApacheのビルドと利用も,自分でコードを書いてコンパイルするだけがプログラムを作ることではないのを確認する機会として,今後も実施したいのですが,CGIプログラムをC言語で書くのは現実的でなく,来年度,または将来的には,今年度の第7~8回の課題内容は,変更することを予定しています.課題の候補は,Secure Shell(SSH)の活用,Webスクレイピングなどです.