Javaの講義を始めたのはこの大学に着任した翌年だから、かれこれ10年くらいになるだろうか。オブジェクト指向プログラミング言語といえば、SmalltalkかC++がまず挙がる頃だった。そんな中でJavaを取り上げたのは、アプレットという講義で教えるには適当な題材があったからだ。ブラウザでプログラムが動くというのは学生の興味を惹く話だし、そのために教えるべき内容もあまり多くはなかった。演習を伴わない、という制限の下での講義なので、話だけでそこそこ楽しめるというのは割と大事なのである。
ところが、いつの間にかJavaの用途はデスクトップアプリケーションやサーバサイドアプリケーションになり、ブラウザで動くプログラムもJavascriptやFlashに移り、講義はだんだんとやりにくくなっていった。Javaは、ひとまず動くだけのプログラムを作るにも知らなければならない知識が多く、しかもそれが直列的にならない。Hello, Worldプログラムを作るだけでも、「public や static はとりあえずオマジナイだと思っておいて」と説明せざるを得ない。また、一通り文法を教えて、具体的な題材を通して講義を進めようとしても、クラスの使い方が話の中心になってしまう。講義でメソッドの説明を順次聞いても、ひたすら退屈だろう。
大学の講義というのは、概して、興味をそれほど持っているわけではない学生に対して、いかに興味を持たせるか、というところから始まる。その点において、Javaは面白い話がしにくい。竹内郁雄先生が「Javaには遊び心がない」と言っておられるが、その気持ちはとてもよく分かる。
教える側が面白くないのに、教わる側が面白いわけがない。それなら、教える側が面白いと思える言語に変えよう…という結果、Rubyを選んだわけである。もともとスクリプト言語は大好きな上に、最近関数型言語に自分の関心が向いていることが加わって、こういう選択になった。実社会でも注目を集めているのもいい。なお、関数型言語そのものは、ずっと前から2年生対象に Standard ML を教えている。
せっかくスクリプト言語を対象にするわけだから、具体的な事例もそれにふさわしいものにしたい。というわけで、Webアプリケーションを事例にして、うちの学科が以前より手薄だったアプリケーション層のプロトコル(HTTP)やデータベースの利用まで話してしまおう、という目論見を立てている。とはいえ、計画通りに講義が進むとはとても思えないが。
ともあれ、半年間にわたる自転車操業の開始である。さてさてどうなることやら。
2 comments:
私も在学中(5年くらい前)にもぐりで情報処理演習の講義を受けていました。(専門は理・物理でFortranの演習講義が選択であったくらい)
「演習」なので実装もあったのですが、言語はC++を中心にJavaやPerlが少しでした。この分野がいかに変革が激しいのかを感じます。
# 物理の講義内容が5年そこそこで内容が変わることはまずないです。
コメントありがとうございます。情報工学分野でも理論系はあまり内容は変わらないですね。オートマトンとか、コンパイラやデータベースの基礎的な話とか。プログラミング言語も、理論的なところはあまり変わらないです。
プログラミング技術に直結した部分や、Web周りは、ほんと変化が激しいですねえ。教員も知識を更新していかないと、時代遅れになってしまうことがままあります。教員の都合だけで言えば、変えないほうが楽なんですけど、そうもいかないので…
コメントを投稿