見出し画像

技育展を2連覇しました

こんにちは、にゃにゃんです。

題名の通り、なんと

技育展を2020年と2021年で2連覇しました!

とても嬉しいです!というわけでこの記事では今年の技育展で何をしたのかを書いていこうと思います。

ちなみに去年の記事はこちらです

技育展とは

学生向けのものづくり(主にIT分野)コンテストです。

個人やチームで開発したものを発表します。いくつかのテーマがあって、私は去年も今年も「無駄開発」部門に出ました。

今年の場合、各テーマに優秀賞と最優秀賞があり、優秀賞は10万円、最優秀賞は30万円が渡されます(例外として「初めてのアウトプット」部門はこのシステムが異なります)。

賞金総額は去年の200万円から大幅に上がってなんと500万円になりました。


何を作ったか

2020年はルービックキューブを解くロボットを作りましたが、今年はレトロオセロAIを作りました。

簡単に言うと、「世界10位のオセロAIを作ってそれを50年前のパソコンと同等性能のマイコンで動かした」というものです。詳しくは以下の記事を参照してください。


応募

技育展には事前審査があります(2021年時点)。

2021年については、応募は文章と関連URL(確かGitHubレポジトリ)によるものでした。内容は

・概要(100字程度)
・アピールポイント(200字程度)
・使用技術(200字程度)
・その他アピール

だったと記憶しています。

応募文章は何に応募するにしても大体同じだと思いますが、以下のことに気をつけました。

・字数はなるべくギリギリを狙う
・概要は最大の推しポイントを濃縮する
・アピールポイントと使用技術で詳細を語る
・その他アピールで対外的な指標による凄さ(今回なら「世界10位になった」など)を書く

実際の文章は以下です

概要
本作品は今から50年前、1970年代のパソコンと同等性能のマイコンを使ったAIで人間に勝利しようというコンセプトで製作したオセロAIである。制約の多い計算資源をうまく使うことで製作者よりも強いオセロAIを開発した。
(97字)
アピールポイント
乏しい計算資源で高速に処理を行うため、データ構造とアルゴリズム双方の軽量化および高速化、さらには複数のマイコンを相互に通信させて計算を並列化した。並列化アルゴリズムは本作品のために独自に設計したものである。これらの工夫によって4手の先読みにかかる時間を2秒程度に抑えた。評価関数のパラメータ調整には焼きなまし法や遺伝的アルゴリズムなどのアルゴリズムを使用した。大量のLEDとスイッチを制御する専用回路も設計した。
(197字)
使用技術
8bitマイコンATMEGA328Pを9つ使用し、それぞれの開発はArduino環境でC++様言語を使った。並列化にはマイコン間でI2C通信を、その他の通信にはシリアル通信を使用した。LED制御には複数のシフトレジスタを、スイッチ制御はマトリクス状に設計した回路を使用し、128個のLEDと64個のタクトスイッチを制御している。定数調整アルゴリズムはPythonとCythonで実装した。
(147字)
その他アピール
レトロオセロAIに使用した技術を応用して、現代のコンピュータで動くオセロAIも制作し、オセロAIの世界的なコンテストで世界10位になった(https://www.codingame.com/multiplayer/bot-programming/othello-1/leaderboard)。
また、レトロオセロAIと他に私が製作した作品でMaker Faire Tokyo 2021の出展が決定した。
これらの知識と経験をまとめた冊子「オセロAIの指南書」を現在執筆中である。
(130字)


発表前開発期間

去年と違い、発表前の2週間程度、サポーター企業(技育展のスポンサーをしているIT企業)の方々に作品や発表について相談できました。

私はその時ちょうどオセロAIにニューラルネットワークを組み込もうと模索していたので、それについて1対1で1時間程度相談の時間を設けていただきました。これがとてもありがたくて、その後の開発がとてもスムーズに進みました。


事前の交流

コンテストで面白いことと言えば参加者との交流です。今回は去年よりもたくさん交流の機会を設けていただきました。これがとても楽しかったです。

ただの懇親会だけでなく、いわゆるもくもく会を企画していただいたり、さらにはサポーター企業の方々が主催する懇親会もあったりして、様々な参加者、サポーター企業の方々と交流できました。

しかし、技育展全体での登壇者数を考えると懇親会参加メンバーは結構固定されていた感じがして、もっと交流したい気もしました。もちろん個人の事情があるとは思うので絶対参加しろなどとは全く言えませんが、もしその時間が暇だったら気軽に参加すると面白いと思います。


審査方法

さて、発表が近づいてくると審査方法や日程などが公開されます。

去年は各テーマで審査基準が個別に設定されていましたが、今年は一律の基準でした。それは以下です。

・技術レベル:どんな技術を用いているか(難易度、挑戦度など)、ソースコードの中身(公開されているもののみ)
・完成度:実装されている機能、内容、デザイン/UI/UXなどの工夫
・作品の価値:作品へのこだわり/愛情、作品の独自性/可能性

各テーマにおける特有の基準は3つ目に入ると聞いた気がします。

正直これには少し困りました。どのテーマにも使える漠然とした基準な気がして、どうやってスライドを作ろうかと数日ぼやっと考えていました。

さらに、発表時間は去年5分だったところが今年は3分です。短すぎて技術について詳しく解説は困難であると判断しました。それでも審査基準に技術に関する内容が入っているので、結構困りました。

さらにさらに、去年は企業の審査員だけで完結していた審査が、今年は以下の4種類の何十人、何百人もの審査員による審査でした。

①企業審査員(対象:テーマ担当企業、日程:プレゼン時)
②登壇者審査員(対象:各テーマ50名、日程:プレゼン時)
③学生審査員(対象:各テーマ50名、日程:プレゼン時)
④一般投票(対象:サポーターズ会員、日程:展示期間)

審査員が企業の人数人であればある程度その人たちのバックグラウンドを調べて合わせに行くことができますが、今回は無理です。

なお、審査員については企業審査員(4人)の重みが大きいので、主に企業審査員に伝わるように説明することに一定の効果はあります。


プレゼン準備

審査方法がなかなか悩ましいものでしたが、どんな発表をしたら良いのでしょうか。結局私は自分がやりたいようにやりました。

とは言ってもそれなりに審査方法を考えていて、

・技術の詳しい話をしなくても凄そうに見えるように
・とにかく情熱が伝わるように

の2点を心がけました。

プレゼン準備は結局発表の3、4日前に始めました(これはとても良くない)。練習はしすぎると棒読みになって情熱が伝わらなくなるので、合計で10回もしていません。プレゼン資料はなるべく無駄を削ぎ落として、それでも参考になる数字は入れるようにしました。以下はスライドの一部です。

画像1

画像2


プレゼン当日

プレゼンなんて慣れるものではありません。特に賞金がかかっているとなれば、それなりに緊張します。

私の発表は真ん中より少し後の、11番目/15作品で、正直あまり良い位置だとは思いませんでした。観客もこの時間帯は疲れてくるころなので。そこで、自分自身の緊張をほぐし、観客の疲れも取る目的で、発表開始直後に、「みなさんそろそろ疲れてきましたよね、一回深呼吸しましょう」みたいなことを言って深呼吸を促し、自分もしました。

実はこれ、中学生時代にスピーチコンテストでアドリブでやったらウケがよく、そのおかげか最優秀賞を取れた秘伝の(?)技です。

情熱が伝わりやすくなるよう、去年同様少し話し方を特徴的にして、テンポ良く発表しました。まあそれが原因で深呼吸を入れたにも関わらずなんと30秒も余らせたんですが。

プレゼン終了後はマイクを切り忘れる失態がありました。気をつけましょう…


他の人のプレゼン

コンテストの醍醐味の2つ目ですね。自分の発表ではないのでそれなりに気楽に見られますし、みなさん面白いことを話してくれます。

今回は有志で(技育展への登壇者に限らず)技育展鑑賞専用のdiscordサーバを立ててくれた方がいらっしゃったので、そのサーバに入ってワイワイ喋りながら聴いていました。


結果発表

正直賞を取れる自信はそんなにありませんでした。無駄開発部門の優秀賞で名前が呼ばれなくて、かなり複雑な気持ちで次の最優秀賞の発表を待っていました。レトロオセロAIの名前が呼ばれたときには思わず「あぁ~…」と声に出して、喜びと安堵の混ざったものを感じていました。

審査員のコメントが少し公開されていたので読んだところ、オセロAIを作っただけでなくてそれを制約のあるハードウェアで動かした「無駄さ」がウケたようです。うまく推しポイントが伝わったようで良かったです。

そんなに時間を空けずに受賞者の再演があったので、ほぼ無練習で臨みました。なんだかんだこれはいい感じの時間配分で発表を終えられ、ほっとしました。

実は前日、というか当日の朝6時までプログラミングしていた関係でヘトヘトの状態でした。


最後の懇親会

すべてが終わった後の懇親会です。ここにはこれまで懇親会で見なかった人たちもたくさん参加したようで、初対面で面白い話がたくさんできました。ただ、とんでもなく疲れて眠かったですが。。


まとめ

なんだかんだそれなりに周到に準備はしました。参考になれば嬉しいです。

技育展に限らず、コンテストや何かのプロジェクトに応募する際、少し躊躇することがあると思いますが、基本的に応募して失うものはありません。それどころか、不採択でもしっかりフィードバックをくれるプロジェクトもあったりします。

ちなみにですが、「応募して落ちたらメンタルが…」という方も多くいると思います。以前Twitterで見かけたのですが、ある技術系の強い人が自身の不採択リストを上げていました。私も応募して不採択に終わったものはいくつもあります。みんなそんなものなので、私は落ちても失うものはないと心に言い聞かせています。

ぜひみなさんも何か機会があれば軽率に応募してみてください…!

この記事が気に入ったらサポートをしてみませんか?