
学内プロコンを復活させた【TeraCoder2024開催記】
Kawa_です.
2024年12月22日に京都産業大学の学内プログラミングコンテストであるTeraCoder2024を開催しました.
せっかくなので開催記を書きます.
TeraCoderとは
ではそもそも学内プロコンであるTeraCoderとはどんなものだったんだい.みたいな話になると思いますのでその辺に触れます.
TeraCoderは院生の有志によって運営されていたようで,第一回の開催は2013年です.そこから途切れることなく2022年まで開催されました.
2023年に運営する人材が確保できなかったことでその姿を消すことになりましたが,今年復活しました.
難易度はプログラミングが苦手である人たちでも楽しめるような工夫のある問題から,競技プログラミング緑あたりの人がターゲットである問題まで幅広くそろっていることが多かったです.
教授にスポンサーとして支援していただいて賞品も準備してある,そこそこしっかりとしたコンテストです.
復活の背景
めでたいことに消失の翌年である今年に早速その姿を見せることになったTeraCoderですが,なぜそんなに早く復活をすることができたのでしょう.
これには僕が深く関わっています(言いたいだけ).
話は高校の頃に遡ります.少しお付き合いください.
僕の在籍していたのは京都産業大学とちょっと関わりのあった高校だったので,ありがたいことに高校1年生の頃にTeraCoderに参加する機会をいただきました.この頃の僕は情報オリンピック予選に参加したことですっかり競技プログラミングの虜です(実際は全く別のことをしていましたが).
よろこんで参加し,高校生枠で入賞.賞品としてアマギフ1000円分とかをいただきました.思えばこれが最初で最後の競プロでの賞金獲得ですね.
話は飛んで,僕は大学1年生になりました.だいたい冬頃の話です.
最低限のC言語の知識程度でブイブイ言わせている頃ですが,ちらつくのはTeraCoderのことです.学内プロコンなので正式に参加できるしAtCoder茶色だったため,ちょうど当時AtCoder水色の先輩が卒業した学内では最強クラスです.出たくて仕方ないですよね.どこからその話が聞こえてくるのかとワクワクしていたら2年生になっていました.
「あれ?TeraCoderどこいった?」
とかなりますよね.聞けば運営が卒業しちゃって開催できなかったとか.
ふーん.残念だな...
仕方ないので開催側にまわることにしました.夏休みに競プロキャンプin京都に参加し,簡単目な問題で作問経験を積ませていただいた僕は自身に満ち溢れていますね.
先生方に協力いただくことでこれまでのTeraCoder開催環境とそれに関する情報を得ました.また,どの先生もTeraCoderの開催に恐ろしいくらいに協力的なのでハードウェアであったり,広報面ではほとんど困ることはありません.ありがたい話です.
また,なんやかんやあって競プロにどっぷりつかった友人2人も運営として参加してくれることになりました.運営も頭数が足りました.
こうしてTeraCoderが復活・TeraCoder2024として開催されました.
開催準備
運営は全員が京都産業大学情報理工学部2回生です.2回生では「実験」と呼ばれる授業があります.火曜日3限から5限の時間に実験をし,多い場合は週ごとにレポートの提出が求められます.どの学年も時間的余裕があるというわけではありませんが,こと2回生においてはその余裕が少ない学年です.
まぁつまり開催準備の時間が全然取れなくてやばかったと言いたいわけですね.経験者がいないため,ノウハウに関しては過去の開催記録やドキュメントから読み取るしかありません.だいたい1週間ほどの時間をかけてコンテストサイトを動かすことに成功しましたが,サーバとなる機器を新調していただいたこともあり,環境がかなり変わっていたため苦労しました(Python2がデフォルトでは無くなっていたのが何気に一番苦しめられました).
作問は現AtCoder緑の友人2人に任せることにしました.僕は運営のメンバーの中では一番競技プログラミング歴が長いにもかかわらず最弱だったので自然な流れですね.代わりに,それ以外の用意をなるべく担当することにしました.ティザーサイトの運用管理,コンテストサイトのデプロイ周りや仕様の確認,関係各所への連絡などです.また,学内プロコンだったのですがせっかく作問するのに学内だけで開催するのはもったいないという話が出たので試験的に外部の参加者も受け入れることにしました.学内のコンテストサイトはシステムが若干古臭いので外部参加者にはモダンな雰囲気でおなじみmofeCoder様をお借りすることに.
事務仕事に似たものが多かったですが,その甲斐あってか2人に質の良い問題を作ってもらえたんじゃないかと思っています.
作問-J: radix-N conversion
でも僕も一つくらい問題を置いておきたいということで作成しました.
簡単な問題が足りていなかったで,みんな経験してるはずの基数変換をやってもらう問題にしました.ライブラリからメソッドを呼び出すだけで解けては面白くないのでちょっと進数を増やしてみたのですが,学内ターゲット層にとっては実装が重い問題になった感じで申し訳ないという感じです.
外部の皆さんはS=0のケースで意外とWAを出してくれたみたいでありがとうございます.このケースが3つくらいあるのは,ランダムに1個紛れていたのと心配症で一応二つこのケースを作成したからですね.
解いていただきありがとうございました.
おわりに
9月に開催したKSDUPCではそのほとんどをYuuさんがやってくださったため,共同開催とは言いにくいものになってしまいました.
今回,TeraCoder2024で「僕らの力でコンテストを開催した」という実感を得られたんじゃないかなと思っています.また,Twitterのつぶやきを見ていても学内,学外ともに好評な声が上がっているのをみてほっとしています.
一方で,開催準備時点から開催中まで様々な課題が表面化してきました.僕のすべきことは,このTeraCoderが再び途絶えてしまわないような流れ作りまでだと考えているので,下の世代への引継ぎの体制を整えることや課題の解決をしていきます.TeraCoder2025の開催も実現できるように全力を尽くしますので,開催できた暁にはひとつ,よろしくお願いします.
スポンサーの皆さま,テスター,mofeCoder運営者様,
コンテスト開催へのご支援とご協力ありがとうございました.
ご参加いただいた学内・学外の選手の皆さま,
コンテストへのご参加ありがとうございました.
余談
いい感じに締めたと思ったんですが,こういう僕の記事は雑な余談がついてきます.「おわりに」とは一体(笑)
オンサイト開催に向けて
KSDUPCはYuuさんが持ちかけていただいたことで実現した奇跡のオンサイトコンテストです.そのため,来年度の開催は現実的ではないです.合わせて,TeraCoder2024も当初,オンサイト化の話が出ていました.今年度は余力がなくなるだろうことを考慮し,採用しませんでしたが来年度以降は学内参加者向けのオンサイト,学外参加者も含めたオンサイトなども視野に入れて企画していきたいですね.
ICPCと被った
予選突破できなかったので全く考慮していませんでした.当然学内からの出場者はいないのでそこまで気にすることでもなかったですが,どうせなら学外の方にもたくさん出てほしかったのでやってしまった~~という感じでしたね.TeraCoderは11月に開催していた年もあったみたいなので来年の開催時期も要検討といった感じです.(逆にICPCの熱に当てられて参加した人もいるかもって話があるのでどっちがいいのやら)
問題文にも工夫したい
非競技プログラミングerを楽しませる取り組みの一環として問題文をちょっとおかしくして面白さを求めて見ました.と,いうのは過去問にあまりにも問題文が面白いものがあったのでこれは参考にすべきだ!と取り入れたのです.そこまで完成度の高いものにはなりませんでしたが,参加いただいたみなさんは楽しんでいただけたでしょうか.
また,様々な問題でTerakoさんがなにかをしています.AtCoderでいうTakahashi君やAoki君のような立ち位置におられるのがTerakoさんです.これから長い付き合いになりそうです.次のTerakoさんは空を飛んでいるかもしれないし,火を噴けるようになっているかもしれないなぁ.
おしまい
これでほんとにおしまいです.開催記にしてはそれに関する内容が薄い気がしないでもないですが,作問してなくて内部システムのことをあんまり話せないとなるとこんなもんです.多分.
最後まで読んでいただきありがとうございました.
ではまた.