トピックス

Topics

東京工科大学 HOME> トピックス> 2012年のトピックス> 自ら学ぶ姿勢とチームワークで勝ち取ったプログラミングコンテスト優勝

自ら学ぶ姿勢とチームワークで勝ち取ったプログラミングコンテスト優勝

コンピュータサイエンス学部 1年 ルーク?ホーソーンさん 山浦 裕貴 さん

接戦を制して、学長賞を獲得!

 2012年1月11日、東京工科大学にある片柳研究所の大ホールは、静かな熱気に包まれていた。巨大スクリーンに映し出されていたのは、小さなロボット戦車が砲弾を打ち合うバトルゲーム。その勝敗を見届けようと、画面にひと際、熱い視線を注いでいたのが、ルーク?ホーソーンさんと山浦裕貴さんらのチームだ。

 この日、大ホールではコンピュータサイエンス学部(以下CS学部)の1年生を対象にした「プログラミングコンテスト」が開催されていた。Java言語でプログラムしたロボット戦車同士を対戦させる仮想ロボット?バトル環境「Robocode」を用いて、より強いロボット戦車を開発するというのが、本コンテストの主旨だ。優勝チームには、2011年度から設けられた、自主的に問題解決ができた学生を讃える“学長賞”が贈られる。

 ルークさん?山浦さんらのチームは、決勝まで勝ち進んでいた。決勝戦は、3回勝負。1回目は勝ち、2回目は負けた。そして優勝者を決める3回目。接戦を制したのは、ルークさん?山浦さんらのチームだった。その瞬間をルークさんはこう振り返る。「実はゲームが終わった時、どっちが勝ったのか、わからなかったんです。画面に表示されるロボットのエネルギー残量がなくなった方が負けなのですが、僕の位置からはそれが見えにくくて(笑)。どうなったんだ? と思っていたら、最後に点数が表示されて、自分たちのロボットの名前が一番上にありました。それを見た瞬間、『やった! 本当に1位になれたんだ!』って、すごくうれしかったですね」と、声をはずませる。山浦さんも「ただただ、うれしかったです!」と笑顔を見せた。

コンピュータサイエンス学部 1年 ルーク?ホーソーンさん 山浦 裕貴 さん

手探りの中で、自ら学び、切り拓く

 「プログラミングコンテスト」の実施が発表されたのは、大会開催の2ヵ月ほど前のこと。あらかじめ決められたメンバーとチームを組み、リーダー、アルゴリズム発案、コーディング、報告文書作成と役割を分担して、バトルに強いロボット戦車を作成するという、CS学部1年生全員参加の課題だった。ルークさんは、過去にプログラミングでゲームをつくった経験があったことからリーダーを担当。と同時に、“強いロボット戦車”をつくるためのアイデアを出し、形にしていく要の役も担った。「僕らのロボットは、例えば、敵の動きを記録し、それを元に次の動きを予測して攻撃をしかけるようにつくっています。また、敵の攻撃から身を守るために、できるだけ敵から距離をとれるよう画面の端を動くようにしました。敵の砲撃は弾が速すぎて感知することは難しいのですが、砲撃の時、必ずエネルギーを消費するルールになっているので、敵のエネルギー量が少しでも減ったら砲撃されたと判断して、避ける動きをするようにプログラムしました」とルークさん。開発の初期段階では、次々と浮かぶアイデアをメモ帳に書きとめ、実現に向けて、ウェブで情報収集をしたり、システム研究に取り組んだりもした。そんな彼が最も苦労したと語るのは、実はプログラミングではない。「他のメンバーと作戦やアイデアについて話し合うのですが、その時間を調整するのが、すごく大変でした。みんな授業やアルバイトがあって忙しい中、メンバーのスケジュールを合わせなければならなくて。だけど迷った時、メンバーの意見が聞けるという、グループワークならではの心強さも感じましたね」。チームでの作業は初めてだったルークさん。複数の人と“ものづくり”に取り組む、難しさと楽しさを知ったと語る。

 一方、大学に入学して、初めてプログラミングを学んだという山浦さんは、サブリーダー兼報告文書作成を担った。「まだプログラミングの基本もできていなくて、正直、わからないことだらけでした(笑)。幸い、ルーク君に経験があったので、彼に色々と教えてもらいながら、少しずつ理解していくというかんじでしたね」。報告文書の作成も初めての経験で、手探りの中、進めていった山浦さん。「授業で書いている実験レポートをベースにして、わかりやすくまとめることを心がけました。それにルーク君がつくったプログラミングの内容を、僕自身が理解しないと報告文は書けないので、理解できるよう質問したり、調べたり、自分なりに勉強して頑張ったつもりです」。

プログラミングコンテストの様子

所狭しとプログラミングしたロボットが動き回ります!

プログラミングコンテストを振り返り…。

プログラミングコンテストから得たもの

 それぞれが持てる力を活かし、足りない知識は自ら補って、取り組んだ2ヵ月。経験の差や役割の違いはあれど、各々に収穫があったと二人は話す。「最初は、基本的なことすらわからない状態でしたが、ルーク君に基本となるロボットの動かし方を教わったりして。今は以前より、ちょっとプログラミングというものが理解できるようになったので、その分、楽しくなってきました」と山浦さん。ルークさんは「ロボットに周囲の状況を判断させて、自動的に動かすというところまでは、プログラミングした経験がなかったので、すごく勉強になりました。それに、ネットで同じようなゲームをつくっている人たちの記事を読んで、“そういう考え方もあるんだ”と発見があったことも大きいです」と話す。

 大学生活が始まって、まだ1年と経たない二人。山浦さんは今回の経験から、基本的なプログラミングは、完璧にこなせるレベルになりたいと目標を抱くようになった。一方、ゲームがきっかけで日本に興味を持ち、来日したというルークさんは、こう話す。「イギリスにいた時は、ずっとゲームをつくりたいと思っていたけど、日本で色々な経験を積むうちに、考えが変わってきました。今は、プログラミングなど自分にできることを活かせるなら、ゲームにこだわらなくてもいいかなと思っています。そういう意味でも、ゲームだけでなく、幅広く学べるCS学部を選んで良かったと思いますね」。

 コンピュータの世界の入口に立ったばかりのルークさんと山浦さん。これからの大学生活で、それぞれが何に興味を持ち、どんな分野へ羽ばたいていくのか、その成長が楽しみだ。

■コンピュータサイエンス学部
/gakubu/cs/

?次回は3月9日に配信予定です。

2012年2月10日掲出