2012年4月22日日曜日

分からない学生が躓く点その1(関数・メソッド)

Javaを使ってプログラミングを教えていますが、学生が躓く点が共通していることが分ってきました。
見よう見まねでプログラミングしていればそのうちわかるようになるだろうと思っていましたが、考えが甘かったです。
分からない学生は既存のコードから逆算して「あーこういうことか!」と推測する力が弱いと感じます。よって、何時まで経っても暗号かおまじないのままです。写経のように書き写すだけで進展がありません。

幾つか躓くポイントがあるのですが、まず大きいのは関数・メソッドです。何がわからないかというと、たとえば呼び出しと宣言が同じファイルに書いてあることが混乱を招くようです。例えば、

正解サンプル:
public static void main(String[] args){
   int year = 2010;
         if( isLeapYear(year) ){
            System.out.println("LeapYear");
         }
}
public static boolean isLeapYear(int val){
   boolean result = false;
   :
   :
   return result;
}

こんな感じのコードを書いてもらおうと課題を出すと、

 メソッドの呼び出しを
   if( isLeapYear(int year) ){
     :
  }
と書いたり、定義の箇所で
 public static boolean isLeapYear(year) と書きます。

その他にはメソッドの返り値のreturn文ですが、
 return 100; というようにリテラルであれば書けていたのに変数を返すように指示すると

 return int a; と書いたりします。

なんとなく、理解できていない点はわかるのですが、学生に説明できるまでにまとめられなく、自分の力不足を実感します。

変数が値を保存する箱だという定番の説明が理解できるのですが、メソッドへの引数、リターン文で値を返すということになると途端にできなくなります。

いまだ引数、パラメータについては上手く説明できませんが、返り値は次のように説明すると大体わかってくれます。

  int a = 1 + 3;

これは 1と3の計算結果が変数 aに格納される。それと同じで、

     int a = foobar(1,3) ;

メソッドの実行結果が aに格納される。aに格納する値が何かというとreturn 文に書かれている値である。ここで値を「返す」と説明してしまうと、返すとはどういうことかわからず混乱してしまいます。

型が厳しいJavaを教えることがそもそも無謀というレベルかも知れませんが、スクリプト言語をやっとこさ覚えたところで将来エンジニアにあとしてやっていくのは無理だと思うので、試金石という意味でも今後もJavaで行くのが良いと考えています。(わかりませんけどねw)

2012年2月21日火曜日

単4電池に代えてApple Magic Mouse を軽量化


AppleのMagic Mouseは単三電池を二本使います。一日中使っているとその重さで手首が痛くなってきます。単4電池にできたらいいのにと思っていたらありました、スペーサ。単2や単1に変換するスペーサは見かけるのですが、単四を単三に変換するスペーサはあまりありません。


amazonで5本パックのを見つけたのでそれを購入。直ぐに届いたので早速交換してみました。効果テキメン!


軽くなって大分使いやすくなりました。電池の持ちは悪くなるでしょうが eneloopにしたのでこまめに充電すれば大丈夫でしょう。なんとなく沢山単三のeneloopを買ったあとに切れると困るリモコンは単4が多いことに気づいて後悔してます。これからは単4で統一し、単三のデバイスにはスペーサをつかう方法で行きたいと思います。

2011年8月15日月曜日

Titanium Mobileで作る iPhone/Androidアプリ


Titanium mobileはAppcelerator社が提供するスマートフォンアプリの開発環境です。Javascriptでコードを記述することでiPhoneやipad用のアプリとAndroid用のアプリの両方が生成できます。

Androidアプリの開発経験は有りましたが、iOSアプリは未経験でした。



今回、Titaniumを試すにあたりエミュレータのみでiOSアプリを動かしてみていますが、エミュレータがAndroidと比べて非常に軽快に動くことに感動しています。というか、Android開発はエミュレータを使わず実機を使うべきですね。USBで繋ぐだけでエミュレータと同様にインストール&起動がコマンド一発で行えるのですから、あの重いエミュレータを使う理由はないです。(持っていない実機のテストには必要ですが)


この本のコードを入力しながらTitaniumの勉強をしていますが、これはハマりますね。本当に簡単にアプリが開発できます。とはいえ色々ハマることも多く、特に受託開発で使うにはまだまだリスクが高いと感じますが、非常に可能性のあるテクノロジーであり、継続してウォッチしノウハウを蓄積していきたいと思います。



P.S.
 同様な開発環境としてPhoneGapにも注目しています。そのうちTitaniumとの比較をしてみたいと思います。

2011年3月22日火曜日

リスク対応指針

今回の東日本大震災で被災された皆様方に心よりお見舞い申し上げます。
以前からITとリスク管理については興味があり、個人情報保護について調べたりしていました。このような大災害が発生したことでリスク管理の重要性を再認識させられました。

すこしでも誰かの役に立つだろうと思い、リスク関連のエントリーをアップして行きたいと思います。
第一弾「リスク対応指針」。個人的にはこれがリスク管理の基礎の基礎と考えています。



リスクとはなんぞや?というさらに基本的な話もあるのですが、なんとなくリスクと言われてイメージされるもので間違いはないと思います。(機会があればエントリを起します)

図にあるようにリスクが発生する可能性と、いざ発生したときの損失との組み合わせで対応方法は4つに分類されます。

1)リスクが発生する可能性は低いはいざ発生すると損失が大きい場合は、自力で対処するのは非効率であり、リスクの移転を考えます。移転というのはたとえば保険に入ったりして損失からのダメージを低減するようにします。
2) 発生する可能性が高い上に損失も大きい場合はそのリスクの発生に巻き込まれないようにします。個人情報漏洩(が必ずしもこのケースに当てはまるとは思いませんが)のリスクから個人情報をなるべく収集しないようにしたり、危険の大きい事業から撤退するなどの対処があります。
3) 発生する可能性が小さく、また損失も小さいリスクは対策を取るほうが無駄なのでそのまま放置します。
4) 発生の可能性は大きいが損失はそれほどでも無いケース。この場合は自ら対策を実施してリスク低減を図ります。また、言い方を変えると、このケースのリスクに対しての対策が一番費用対効果が高くなります。

以上のように、ただ闇雲にリスク対策をしたり、闇く雲に怖がってリスク回避するのではなくこの分類にしたがって保有しているリスクをよく分析した上で適切な対処を行うことが大切です。

2010年12月8日水曜日

続・介護分野で求められているサイトとは

リハ.システムウェイさんがHPをまだ持っていらしゃらないので、その必要性をプレゼンしてきました。
ネットマーケッティングとB2B向けに必要性を説明したところ納得していただけました。
具体的には手始めに企業イメージの統一、ブランディングという視点からドメインを取得してURLとメアドのドメインを統一することを提案させて頂きました。

もし、相応のWEBサイトを構築したいとの要望があった場合はWEB業者さん。お手伝いください。私、人様からお金が取れるようなWEBサイトは作れませんのでw。

2010年11月24日水曜日

介護分野で求められているWEBサイトとは?

只今、介護分野のネット活用について調査中。

まずは、検索ワードの調査。

「介護」「リハビリテーション」等、関連する検索キーワードを調べてみると検索目的に次のような傾向があることがわかりました。
  1. リハビリ方法(脳梗塞・骨折・ヘルニアなど)
  2. 就職情報の収集(求人・年収・資格)
  3. 介護にかかる費用
  4. めずらしい病気に関する情報(パーキンソン病など)

この結果を踏まえてWEBサイトへの落し込みができれば、介護分野でも有効なサイトの提案ができそうです。宿題がひとつ出来ました。

2010年11月10日水曜日

【サイト構築実績】まなびあい大学

富山福祉短期大学の北澤学長さんが発起人となってはじめたボランティアのまなびあいの場である「富山まなびあい大学」のホームページとSNSをwordpressとelggを連携させる構成で実現しました。
SNSに登録した授業スケジュールをホームページに表示させるなど、SNSとホームページのデータ交換を実現しています。

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger