教えるべきこと

UML講師の続きで、今年はJavaEE講師。教えるべきことに集中したいので、NetBeansを導入しました。が、「教えるべきこと」に迷いが・・

今日の課題

  HttpSessionを使ってアクセスカウンタを作れ

NetBeansは、インストールするだけで、ウィザードでサーブレットを作って、web.xmlも自動で書いてくれます。スケルトンを埋めたら、ボタン一つでTomcatもブラウザも起動します。

だから、とりあえず教えることは、sessionの使い方だけ。
この課題で、書かなければいけないコードは、(NetBeans+Java5では)
たったの4行です。

 HttpSession session = request.getSession();
 Integer count = (Integer)session.getAttribute("accessCount");
 session.setAttribute("accessCount", count+1 );
 response.getWriter().println( "<html>" + count + "</html>" );

これはすごくうれしいことで、講師としては「教えたいこと」に集中できるし、生徒にとっても「何を学んでいるのか」に集中できます。
もちろん動いて終わりではなくて、動作原理も理解しなければならないわけですが、まずは動いたものを見てもらえば、その説明もしやすくなります。

このソースコードを書き始めるために、開発環境を作ったり、web.xmlを書いたりなんてやっていたら、十中八九、ヤル気をなくすって。
(ボクらの世代は、仕事だから渋々やってきたけど。)

 NetBeansバンザーイ!

と、思いきや・・・

生徒達がこの課題をクリアするのに、2時間近くかかりました。
問題は、sessionの理解そのものではなくて、
intとIntegerの相互変換(しまった、誰もJava5を教えていない!)。

 HttpSession session = request.getSession();
 Integer count = (Integer)session.getAttribute("accessCount");
 if( count == null ){
   count = new Integer(0);
 }
 session.setAttribute("accessCount"
        , new Integer( count.intValue()+1 ) );
 response.getWriter().println( "<html>" + count + "</html>" );

こちらが想定していた答えよりも、パズルが1個おおい。
まったく本質的ではない部分で悩んでいるうちに、何を勉強してるのかわからなくなってしまったのです。

  型変換くらいのことで2時間もかかるなんて、どうなのよ。

・・・という、ごもっともな意見はさておいて、これって、どう思います?

教えるべきこと???

sessionの前に、型変換を教えるのが先?
その後に、「実はJava5ではね・・・」なんて説明してたら、
sessionの話はイズコヘ?

確かに、型変換くらいチャチャッとできるようになって欲しいけど、
生徒は毎日Javaいじりしているわけではナイから、1ヶ月前にならった方法なんて、いちいち覚えていない。

こんな小さなところで止まっていてはいけない。
と思う反面、基礎を学ばずに進んでもいけないと思う。

PHPでものづくりを楽しんでほしいけど、
将来はアセンブラだって勉強してほしい。

基礎でくじけてプロへの道をあきらめてもらっては困る(SEの絶対数が減る)。基礎がないままプロになってもらっても困る(ダメSEの比率が上がる)。

文法をウヤムヤにしてJava5に進んでいいものか。

さて、いったいどこから教えるべきか、NetBeansは使うべきか。。

・・ごにょごにょ


コメント
だんべい
2007/06/11
ごぶさたです。私も後輩たちに教えてますが、AutoBoxingとGenericsは教えづらいですね。旧来Javaを使ってる人には便利なものですが、初めてJavaを学ぶ人にはわかりにくいようです。だからといって文法を2つ教えるわけにもいかないし、私も教えるときにパニックになりました(笑
うまい教え方、教えてください。
武田ソフト
2007/06/12
#うまい教え方、教えてください。

オレもわかんねっすw
他の講師の方からも、「初めてJavaを触る生徒にJava5より前の文法を教えるべきかどうか」と質問されました。
ちっぽけなことのような気もするんですが、あいまいにしてしまうと、他のことも曖昧になるような気もするんですよね。
いま考え中です。

コメントしてください

closed.