授業計画

2年前から母校で非常勤講師をしている。本業はまた別にあるのだがパートタイムの講師。

「学生に教える」ためには自分もきちんと復習しておく必要がある。分かりやすい授業をするために授業内容を整理する必要があり、それもまた知識の体系化に役立つ。教えるという偉そうなことを言いながらも半分は自己研鑽が目的である。

担当している授業の名前は「オペレーティングシステム」。自分が学生だった頃は、Andrew Tanenbaum的なOSの世界を勉強したのだが、今の学生は初めて触ったパソコンにすでにWindows3.1がインストールされていたという世代。昔はコンシューマ向けにはMS-DOSというOSがあり、その背後でUNIXのようなマルチタスクOSが大学で開発されていて、今だれでもマルチタスクOSが使えるようになっているのはすごいことなんだ!などと話しても年寄りの昔話にしかならない。学生がわくわくするような最先端につながる話をしたい。

ということで、OSの基礎から初めつつも最終的には今の最先端であるクラウドについて話しをしようということで毎年取り組んでいる。

去年の授業計画を引っ張りだしたところこんなようになっていた。

第1回 オリエンテーションオペレーティングシステムとは?)

第2回 オペレーティングシステムの基本機能

第3回 メモリ管理とディスク管理

第4回 プロセス管理とマルチタスク

第5回 プロセス間通信・ソケット通信とWebシステム

第6回 情報システム

第7回 情報セキュリティ

第8回 シェルとスクリプト言語(演習)

第9回 Webシステムの作成1(演習)

第10回 Webシステムの作成2(演習)

第11回 OSの機能としてのユーザインタフェース

第12回 代表的なオペレーティングシステムの歴史

第13回 特殊用途のオペレーティングシステム

第14回 分散オペレーティングシステム・仮想化

第15回 学力考査および解説

基礎編でOSの基本機能とlibc的なOSとのインターフェースについて話をして、途中の演習でRMIとしてのWebAPIを触ってもらい、最後の数回でクラウドについて話をするという構成。去年の反省点としては前半であれこれ詳細を教えるためにもたもたしてしまい、後半で深い知識を教えることができなかった。もう少し上手く体系を作ることはできないか。また、最近の世の中の動きで新たに話す必要がある重要なトピックはないか(「特殊用途のオペレーティングシステム」の回で携帯用OSについて話すのは良さそうだ)。
まだ時間はあるのでいろいろ思考中。