2012/12/03

競技プログラミング界の現在 〜そして大河へ〜


本記事はCompetitive Programming Advent Calendar Div2012の12月3日の記事です。

昨年はつまらない記事でトリを務めることとなり恥を晒しましたが、今年はつまらないだけにとどまらず、おカタい記事で恥を晒すことにいたします。

クリスマスと新年をほとんど同じと扱う欧米諸国では、アドベントカレンダーはある意味「新年へのカウントダウン」としても見られると聞いたことがあります。その真偽はともかく、私も年末としての記事を書いてみたいと思います。私の知る範囲になりますが、「これまでの競技プログラミングをざっと振り返って、2012年が競技プログラミングにとってどんな年だったか考えたい」というものです。

源流のころ 〜今は昔の話〜
ここ数年の競技プログラミング界の躍進には眼を見張るものがあります。少し前、私が初めて競技プログラミングらしきものをかじった頃に眼を向ければ、そのことは明らかです。
その頃、とは2005年頃のことですが、JOIが復活するなど現在の潮流になる産声…源流は既にありました。ですが、現在私の知るコンテストを思い返しても、この当時から続いているのはICPC, TopCoder, PCK, SuperConなどです。"自由に参加できるコンテスト"は少なく、比較的頻繁に行われているのはTopCoderだけという状況でした。英語での参加に躊躇していたため、私は日本語のコンテストに多少参加しただけでしたが…。
実は、この頃に1冊、"競技プログラミング本"が誕生しています。それが「スーパーコン甲子園」です。現在に息吹がたしかにあり、しかしまだまだ小さい芽であった頃の話です。

増え行くコンテスト 〜育ち始めた芽〜
日本語の競技プログラミング関連書籍で、私の知る限り2冊目となる「目指せ!プログラミング世界一」は2009年の出版です。その頃、英語の大会を敬遠しており、また周りに人もおらず、競技プログラミングからは離れていましたが、それでもこの本だけは買いました。この本を見て、多くのOnline Judgeやコンテストを知り、競技プログラミングも少し広がったのかな、と感じました。この本はICPC本ですが、同じ年の2月末にCodeChefが初の大会を開いていますから、ICPCに向けて各国の注目が少しづつ高まってきたとも言えるように思います。
その後、Codeforcesができたのが2010年2月で、UTPCなど各大学別のコンテストも多く開かれました。

蟻本からAtCoderへ 〜広がる日本の競技プログラミング〜
Codeforcesが始まったその7ヶ月ほど後、蟻本こと「プログラミングコンテストチャレンジブック」が発売されます。もっと最近だった気がするのですが、私の気のせいだったようです。これ以降、蟻本著者やAtCoder関係者の手で日本の競技プログラミングの世界はどんどん広がっていったように思います。
そして、今年。AtCoderの始まりや、東大チームが銅メダルをとったICPC等、ニュースは多数あります。昨年開かれたGCJJでわかった日本の"競技プログラミングの需要"に応えるように、日本語の競技プログラミングが広まっていきました。情報処理学会の会誌にも秋葉氏の競技プログラミング関連の記事が乗り(プログラム・プロムナード以来のことではないでしょうか?)、蟻本の第2版や、チーター本こと「最強最速アルゴリズマー養成講座」も出版されました。他にも、多数のオンサイトなど、これまでには見られなかった躍進があり、2012年は日本の競技プログラミング界にとって重大な位置を占める年であったと認識しております。これは、これまでにも連載やGCJ講座などでAtCoder社長の高橋氏らが多くの活動をされていましたが、これらが花開いた結果だと思います。結果として2012年には、2〜3週間に一度は日本語のプログラミングコンテストが開かれるようになり、英語が嫌だという人も簡単に参加できるようになりました。

そして大河へ 〜一愛好者としての希望〜
今の高校生を見てもわかりますが、競技プログラミング愛好者のレベルはどんどん上がっているように思います。私がSuperConでまぐれにもいい成績を残せたことは今昔の感がある話となり、「あの頃」はもう過去の話となりました。現状を見る限り、競技プログラミングの世界はこれからもまだまだ広がっていくと思うので、その一助になればいいなとおもって、提言させていただこうと思います。

オンサイトの機会の増加:オンサイトはどんどん増えていますが、これにより拍車がかかって行って欲しいと思います。同好の士がいるかいないかはとても重要だと思います。会場台を多少とってもいいと思うので、例えばARCの時にどこかの会議室を借りてのオンサイトなどあれば面白いではないでしょうか。

交流できる団体を増やす:先と重なりますが、オンサイトに限らず勉強会・練習会なども出来るような、サークルが出来ればな、と思います。大学別サークルもありますが、大学生でないと参加は少し厳しい気がしましたし、自分の学校になかったならば参加できる機会は激減すると思います(インカレの競技プログラミング扱うサークル、聞いたことがありません)。5年先・10年先に、社会人サークルという形で、競技プログラミングのできるサークルが出来ればいいんじゃないかな、って思います。

教育に活かしてうまく発信する:競技プログラミングにより多くの人に入ってもらうためにも、これを発信することが大切だと思います。ニコニコ動画を始め、いくつかの方面で先駆的な取り組みがなされていますが、これは「好きな人」が見られる発信だと思います。教育の場などでより競技プログラミングを行い、広めていくことが大切だと思います。私自身、後輩に教えるときに競技プログラミングを有効利用している他、既にいくつもの取り組みが見られますが、もっと広がっていけと思います。

最後に
以上のように、おカタい記事でお茶を濁しましたが、本記事が"入ったばかりの人"や"若手の人"にとって、これまでを知る一助となれば幸いです。

この記事で紹介したような潮流を作ってきた皆様に心より感謝の意を評し、本記事の括りといたします。

以降、もっとつまらないおこぼれです。

自分話
私自身が競技プログラミングを離れていた時期と途中に書きましたが、これは英語が出来なかったこと・同好の士がいなかったことが原因でした。逆に言えば、日本語の大会が多ければ、当時からSNSなどを使ってもっと交流できていれば、間違いなく参加していたでしょう。逆に、今はこれらのことが解消されており、一般の人へのハードルはずいぶん低くなったと思います。
一時期離れて戻ってみれば、高校生のレベルは随分上がっていましたし、人とつながるのは簡単になりました。本当に、離れていなければと、今でも後悔しきりです。
決意して英語の大会に参加するようになったら日本語の大会が増えるなんてちょっと皮肉にも感じますが、競技プログラミング愛好者の一人として、これからもこの世界が広がることを祈っています。でも、私は先の本を書くような「ガチ勢」ではないのですが。

今個人的に書いているテキストにも、競技プログラミングの問題をうまく取り入れようと思っています。小さい力かもしれませんが、何か役に立てれば嬉しいです。競技プログラミングの未来が明るいものでありますように!

0 件のコメント:

コメントを投稿