もしサバプロで学生がrails generate scaffoldを打ったら

この記事はCPS Lab Advent Calendar 2016の20日目の記事です。


(前注)サバプロ→「サーバプログラミング演習」。弊学科3年次に、5人組になってJava+Tomcat+Apache+PostgreSQLを利用して要件定義、クラス設計からMVCフレームワークまでを一気にさらう鬼科目の事。

私たち情報メディア学科ーー他学部でも本研究室に入ることはできますがーーの学生の最終的なスキルセットは、Java、C、Processing、HTML、CSSJavaScriptというのがふつうです。オブジェクト指向も「Java」、データベースも「「Java」」、サ ー バ 構 築 演 習 も 「 J a v a 」 で 行 っ て い ま す 。(←ゆっくりのスローボイスっぽく)
 その一方で、スーパーファミコン慶応義塾大学湘南藤沢キャンパス)の学生は1年生でJavaScriptを、Javaオブジェクト指向を、そしてRuby on Railsをたたく科目が存在するようです。明治大学総合数理学部ネットワークデザイン学科はカリキュラムの中でPerlPythonRaspberry Piをたたく科目が存在しています。(流石にiOSAndroidプログラミングはチラッと見たけどゼミレベルの科目にしかありませんでした。)僕がウチの学科の後輩に「Web系に行きたいならさっさとインターンをしろ」と言っているのはこのためです。弊学科からWeb系に就職するには、課外時間でかなりの知見を積むことが要求されます。Rubyすら「ゼロ」です。モダンJavaScriptのモの字にも触れていません。この先、SNSや、ソーシャルゲームが流行っていくなかで、SI屋さんよりもWeb系を志す学生は本学でも増えていくのではないでしょうか?
 そこで僕がオススメしたいのが、「サバプロ事前アンケート」です。それも、集める項目は「将来どっちかというとSI屋さんになりたいか、それともWeb屋さんになりたいか」この一つだけです。この結果によって、学生を「Ruby on Rails + Unicorn + nginx + git組」と「Java + Apache + Tomcat + タイムスタンプのzipでバージョン管理組」に二分し、授業を開始します。これにより得られる効果は次のとおりです:

 ・将来Web系に進みたい人がほぼ絶対にやることのないTomcat開発を強いられることを避けることができ、就活のためのRuby on Rails開発の弾を得ることができる。
 ・お互いの発表を見ながら「こういう開発フレームワークがあるのか」「こういう言語があるのか」という勉強になり発想が広がる。
 ・MVCや要件定義というクラス設計やプロジェクトマネジメントのコンテキストにおいて齟齬が発生しにくい(と思う)。

 現況としては、学習意欲の高い学生のいるチームが、自主的にC#PHPなどの言語を用いたりして半ば「勝手に」授業をハックしているという状態ですが、教室側からのハックが伴えば、サバプロは今以上に「Webプログラミングの文化祭」のようになり、履修してよかったと思う学生も増えるのではないでしょうか。サーバサイドはAPIだけを吐き、iOSまたはAndroidでネイティブアプリを開発、(できたらフロントエンドでSingle Page Applicationもつくる)のような猛者が現れたら楽しいですね。
 以上、授業を通して、プログラミングに対するスキルセットやマインドセットが豊かになるようなハックの必要性を見直す良いきっかけが、サバプロには隠れていると思ってやまない今日この頃でした。


 # サバプロはどうしたらさっさと学生にrails scaffold generateを打たせられるか


副手のみんな〜〜