8月27日 WRO Japan 富山予選会を県のITセンターで開催した。私の所属しているITネットワークアシスト高岡(通称NAT)では昨年度よりWRO Japanの富山県予選を開催しているが,昨年度参加したのは高岡の小学校の児童だけだった。本年度から富山市にあるITセンター情報工房でロボット講習会を始めたことで,本年度は富山市の児童も参加してくれた。名実ともに富山県予選になったわけである。

 私は全体の進行と審査委員長を受け持ったのだが,WROの国際大会の競技を予選競技として行ったのでロボットのハード,ソフトとも,昨年度とは比較にならない充実したものとなった。

 優勝した児童のプログラムである。プログラムはROBOLABで作成されている。時間を掛け工夫した様子がわかる。どこで何をしているのかわかるようにコメントをたくさん入れてあるところなど,若いプログラマに見習ってほしいほどだ。彼のプログラムは富山予選では断トツの出来であるが,決勝大会に行くと同じように考え抜かれたプログラムを持ち込む児童がいるので工夫を重ねてほしいと思う。

 予選競技とは別に少し簡単なオープン競技も同時に実施した。オープン競技のベストプログラミング賞をとった小学3年生は,プログラムを作り始めると,人の言うことなんか聞かない。ロボットの動きだけを頼りにどんどんプログラムを作成していく。猛々しいプログラマである。自分の作ったプログラムを人に説明することはできないが,人に指示されるよりも自分の理解を基にプログラミングを進めていく姿勢がベストプログラミング賞であった。

 WROJapanの予選会を開催するようになったことで,MindStormsな人たちと出会えるのがうれしい。古くからMindStormsを使った授業をしておられる富山高専の先生は,子供連れで見学に来てくれた。この先生が以前セミナーで言われた「MindStormsは動くデバッガである」という言葉に筆者は足を打ち鳴らしたいほど共鳴した。

 WRO事務局であり,アフレルという会社で小学生から技術者までを対象にした教育プログラムの普及に励んでいる人は「MindStorms で組み込み系の技術者にUMLを教えるのだ」と言う。富山予選の総評をお願いしたら,子供たちに問いかけをしながらプログラミングの重要さを伝えてくれた。

   講習会のときに,LEGOのCADの本を見せてくれた児童のお父さんが,聞いてみると大学でCGを教えている先生だったりする。おもしろい人,教えを請いたい人をMindStormsが引き寄せる。この調子で行けば,そのうちセイモア・パパート博士にも会えるかもしれない。

-Knowledge is only part of understanding. Genuine understanding comes from hands-on experience.-

 万が一会えたら,私は博士のこの言葉が一番好きなのだと伝えたい。セイモア・パパート博士は1928年生まれなので,長生きしていてもらわなくっちゃ困る。

   ではMindStormsの欠点は何か?デバッガとしてうまく動いてくれているときはいいだが,ときおり何で動かないのか想像がつかないことがある。疲れて,ぼうっとしているときは原因にたどりつけず,作り直しになることもある。テキストでロボットの状況をPCに返してくれるとわかりやすいだろう。

 さて,そろそろこの日記の本来の主役を登場させよう。EclipseでJavaプログラミングを牛歩のごとく進めているこうしろうである。今日も「1時間だけ」とGUIにSwingを使うカメラ台帳のプログラミングを始めた。それが1時間経っても終わらない。ときおり頭をテーブルに触れるまで折り曲げて苦しんでいる。たまに,少しずつしかプログラミングしないので,前回どこまで設定をしたかが,わからなくなったりするようだ。たとえば,MySQLのJDBCドライバをCLASSPATHに設定し忘れていたり,前に作ったメソッドがオブジェクトを返すのを忘れていたりするのだ。

 WRO Japanの予選ではないが,ある程度まとまった時間をとって,全体像をイメージしたままプログラムを作るか,JUnitでユニットテストをしてクラスにピリオドを打っておくとよいのかもしれない。しかし,対処療法もないわけではない。起きた問題から,考えればいいのだ。

 「例外を見てパッパと判断できるようになればいいんだよ」とこうしうろうに話しかける。Javaはプログラムの実行に失敗するとメッセージをドバッーと吐き出すので,どこに問題があるのか例外メッセージから,すばやく判断してプログラムを直せるようになればいい。

 たとえばこのメッセージは,データベースにアクセスするユーザーIDかパスワードが間違っていることを示す。

 ドキュメントをじっくり読んで,なかなかプログラミングが始められないよりは,どんどん例外を出して,プログラムを修正しながら目的の処理を作成していく猛々しさもプログラマには必要だろう。

   もちろんプログラムが動いてから,言語の仕様を見直して修正を加える用心深さも忘れてはならないが。