目的違うよ

忘れてた、これを書こうと思ったのに、全然別の話題を書いちゃった。

今のPython演習の課題の大半は「ゲーム」。教科書に書いたのは(っていうよりも、僕の発案じゃなくて、骨格は全部佐々木先生の発案だけれど、)「ブロック崩し」と「マインスイーパ」。そこに僕が悪ノリして「サーカス(風船割り)」ゲーム(もどき)のソースを開示した。その作り方で、丸々一章を使った。その上で、去年までのレポート課題の「解答例プログラム」をネットに晒しちゃってるもんだから、レポートの題材を変えた。

まず「ピンボール」(ブロック崩しよりも難しい。重力、斜めの壁での反射、斜めの壁での転がりがあり、回転運動のフリップでボールを打つ物理モデルは、実を言えば、僕も「解答例」を出しそびれた。動いているものどうしで、しかも、「速度」に応じて1フレームの「移動前」と「移動後」の座標の関係から、時々「すり抜け」が起きてしまう。結構時間がかかりそうなので、パスした。(諦めました。いや、時間の都合で・・・。Haskellなんかだと、結構簡単に書けるらしいんだけれど・・・覚えたいなぁ、時間の余裕さえあるなら・・・)

次の課題は「迷路」。迷路探索アルゴリズムもそうだけれども、派生ネタが多い。昔で言えば、「平安京エイリアン」もそうだし、「パックマン」も迷路ベース。(若い人たち、知らんだろうなぁ。)多少変形させると、ドラクエやファイナルファンタジーの、第1作、第2作あたりなら、コピーが作れる。

そして、最終課題も、自作のゲーム、なんだけれども、無論ゲーム以外のデータ処理プログラムも「可」という設定だった。

そうしたら、「課題の目的」(この課題を行うことで、教員側が何を理解して欲しいと思っているか)を考えて書きなさい、という、レポートの割と冒頭部分に、数名の学生がこんなことを書いて来た。

「この課題の目的は、ゲーム作成に習熟することである。」

違いますってば。俺、授業中にちゃんと言ったよね。題材はゲームだけど「今回は、関数構造をオブジェクト指向に書き換えることが課題です。」とか、「ネットワーク表現の探索アルゴリズムや、待ち行列型、スタック型のバッファの使い方を覚えて欲しい」とか、「自分でイメージしたものを、どうやって具体化するか、こんなことをやりたいというものを、どうやって調べるか、ライブラリのリファレンスをググりまくって、自力で実現してみて欲しい」とか、確か言ったと思う。さらっと言っただけだから、さらっと聞き流したんだろうと思うけど、別に、学生に「ゲームプログラマ」になってもらおうなんて、カケラも思ってない。いや、そういう選択肢を選んでも、もちろん構わないけど。

ゲームだったら、作ってて面白いでしょ?いいものを作れば、本気で遊べるよね。皆さんの中で、これまでゲームで遊んだことが一度もない人、いますか?って、冗談めかして聞いたこともあったと思う。どうせ勉強するなら楽しみながらやったらいい。だから、ゲームを素材に扱っているだけ。

この先生は、なぜ今こんな話題を持ち出したんだろうか、って、そこに興味を持ってもらえたなら、(教科書棒読みの先生でなければ、)たぶん、学校の授業は10倍面白くなるような気がする。物凄い「引き出し」をお持ちなのに、話題の持ち出し方が下手な先生もいらっしゃったりするかも知れないけれど、そういう先生に「うまい質問」とかしたら、すごく面白い展開になると思うんだが。今時は、小中学校では、そういう授業はさせてもらえないのかも知れない。それなら、AIの方がマシなのかなぁ。

来年は、毎回言おうかなぁ。「別に、ゲームプログラマになってもらいたいなんて、思ってないからね。」こんなことを言っても、全然聞いてなくて、ってか、授業に出て来なくて、「課題の目的は、ゲーム作成です。」って書いてくる学生、やっぱりいるんだろうなぁ。