情報科学専門学校公式ブログ
2007年10月 9日
 ■  U-20プログラミングコンテスト入賞への道

ネットワークシステム科 水谷です。
今回は、U-20プログラミングコンテストで見事、入賞を果たしたネットワークシステム科 3年 飯島諒亮くんへのインタビューをお届けします。

「U-20プログラミングコンテスト」は20歳以下の若者のためのプログラミングコンテストで、今年で28回目。最優秀および優秀作品に輝くと経済産業大臣から表彰されるハイレベルのコンテストです。
そんなコンテストに「円周率計算分散処理アプリケーション」という作品で入賞した飯島くんですが、専門学校に入学するまでプログラミングの経験はまったくありませんでした。

そこで、入賞した飯島くんにプログラムの勉強方法や入賞の感想、作成時の苦労話などを聞いてみました。

---これまでにプログラムを作った経験はありましたか?
飯島
僕は、情報科学専門学校に入学して初めてプログラムを勉強しました。今回の作品も授業で作ったプログラムの延長線上にあると言えます。当然、授業では習わなかった部分も出てきたのですが、そうしたところは書籍やインターネットで勉強しました。「自分で調べる」経験も自分の力になったと思います。
procon1.jpg
<10月1日、情報化月間記念式典にて表彰される快挙です!>

---どれくらいの期間で作成しましたか?


飯島
今年の5月から開発にとりかかり、およそ3ヶ月で完成しました。
開発言語はJavaを使用し、開発環境はEclipseを使用しました。プログラムソースの規模は、クライアント・サーバ合わせて約2000ステップです。

水谷
クライアント・サーバ合わせて約2000ステップ(行)かあ。とても小さいプログラムですね。RMI技術を使うことによって、通信部分のコーディングがかなりスリムになっているからなんだね。

---こだわりポイントは?
飯島
円周率計算を複数のサーバに分散して処理する機能だけではなく、内部でどのような処理が行われているのか理解しやすい機能を実装しています。この機能を利用すると、アプリケーション全体の流れと、サーバプログラム内でどのように円周率を求めているかを視覚的に理解することができます。

水谷
私も見せてもらいましたが、「モンテカルロ法」の考え方がとてもよく分かりました。なかなか面白いですね。

procon2.jpg
<ネットワークプログラムなので最低でも2台のPCが必要です>

---苦心した点は?
飯島
僕は、とあることから分散処理技術に興味を持ち、このアプリケーションの開発を通じて、その理解を深めたいと考えました。しかし、「分散処理技術を利用したアプリケーションを作ろう。」と決めたまでは良かったのですが、分散処理を用いて何を行えばいいのかという点で非常に迷いました。当初は、リバーシや囲碁などのゲームを考えたのですが、ゲームでは分散処理の有用性を確認するのは難しいのではと感じ、コンピュータのベンチマークなどでも使われる円周率の計算を扱うものにしようと決めました。ですが、私は数学があまり得意ではなかったため、円周率の計算アルゴリズムを組み込む部分で非常に苦労しました。

水谷
最終審査会のプレゼンテーションでも「数学が苦手」って話して、審査員に受けていましたね。
procon3.jpg
<表彰式の前に作品のデモが行われ、企業の方にもいろいろなご意見をいただきました>

--- 入賞の感想は?
飯島
私が応募したプログラムには特に目新しい点や面白みがあるわけではないので、当初、入選したことに戸惑いました。でも、最終審査会で審査員の方々から貴重な意見を聞くことができ、また他の入選者の方々の作品を見て、もっと良いものを作りたいという思いが強くなりました。来年以降のコンテストには応募できませんが、これからもプログラミング技術の向上に励みたいです。

水谷
最終審査会は、ホント面白くて、私自身も勉強になりました。でも、飯島くんのプログラムには、ロジックの正確性以上の何か、穏やかな湖面の静かな響きみたいなものがあって、私は好きです・・・分かりづらいけど誉めてますよ(笑)。
procon4.jpg
<表彰式後の祝賀会で企業の方々と歓談。お疲れ様でした!>

飯島くんの、さらなる飛躍を期待しています! p(^^)q
さて最後に、飯島くんの作ったプログラムがどんなものなのか、少し書いておきます。

●モンテカルロ法という計算方法を用いて、円周率を求める計算を複数のサーバに分散して処理させるアプリケーションです。
●クライアント・サーバ間の通信部分にJavaのRMIという機能を利用し、別のコンピュータにあるプログラム(オブジェクト)をあたかも自分自身が所有しているかのように呼び出す仕組みになっています。

ふう・・・。言葉だけで説明するのは難しいので、興味が湧いた人は、飯島くんまたは水谷までアクセスして下さい。

蛇足ではありますが、皆さん、円周率って覚えてますよね。あの「3.14・・・」ってやつで、円の面積とか円周の長さを求めるときに使うものです。この円周率を何万桁も覚えている人もいますが、皆さんは、この無限に続く、この数字の列に宇宙的なロマンを感じませんか?
(感じない、という声が若干聞こえる・・・、でも、そんなの関係な~い!)
それから、3月14日は「円周率の日」だって、ちょっと面白いですね。

入賞理由などは情報化月間のサイトでも確認できますので、是非こちらもアクセスしてみて下さい。

ちょとしたアイデアとそのアイデアを実現するためのプログラムのスキルを身につけて、来年はあなたが「U-20プログラミングコンテスト」に入賞して下さい。期待してます!

投稿者 isc_blog : 2007年10月 9日 12:45

トラックバック

このエントリーのトラックバックURL:
http://blog.iwasaki.ac.jp/mt/mt-tb.cgi/681