5/11 プログラミングWS開催記(&MojaCoderコンテスト開催記)
おはこんばんにちは!
東京通信大学5期生、情報マネジメント学部3年のウルズニャーです。
競プロ勢向けに別の自己紹介をすると、Atcoder水色で、ARC絶対負けないマンを名乗っていたウルズニャーです。(5/12に初めて負けたんだけどねw)
この度、大学の新宿コクーンタワーの部屋をお借りし、対面形式の勉強会を主催させて頂きました。
その際に作成した問題を一般公開しコンテストまで同時に開きましたので、開催記的な物を書かせて頂きます。
想像以上に長くなってしまったので「長ぇよ!」って方は『イベント主催をしての感想』だけでも読んでいってください。
開催の経緯
東京通信大学でもっと競プロを布教したい!と思っていた所、プログラミングWSの学生代表の方から、「ICPCに向けた勧誘も兼ねて、オフラインイベントやったらどう?」みたいな話が来ました。
いつもはオフラインイベントはもっと大規模でやるのですが、東京圏以外の運営メンバーは、Teams配信からのオンライン参加にして、規模小さめで・・・・という話でした。
いいね!と思った私は、全体管理の大変さを理解せず、割とノリと勢いで開催を決めました。(アホ)
そして私が、競プロ問題の作問熱が高まっていたのもあり、作問して出題する企画で組み立てる事にしました。(ここで仲間を3名ほど勢いで巻き込みましたw)
そして色々あり、中谷先生(TOUの初級プログラミングの科目を担当されている先生)にご担当頂き、大学のプログラミング課題の質問を受ける部屋も同時開催する事となりました。
勉強会当日
0.運営体制、規模感
オフライン会場参加者:10名程度(一部ボランティア協力頂いた)
オフライン会場運営:5名(内4名作問者)
オンライン配信参加:10名程度
となっていました。
1.準備→受付タイム
レンタルしていた機材の配置、機材トラブル等々で、気が付いたらあっと言う間に時間が経過していて少し焦りました。
しかし、完璧な準備をする事より参加者の方に明るく挨拶したりする事の方が大事だと思い、それを心掛けてみました。
2.開会式
会場唯一の作問メンバーではない運営メンバーのまりくろさん。司会進行上手すぎて、逆にその後の代表挨拶緊張しましたw
私は原稿暗記よりアドリブトークが得意なので、ノリと勢いで喋ってるためですw
3.競プロについて色々説明
プログラミングに関わる説明は、作問メンバーの4人で分担しました。
トップバッターで私は競プロの紹介をしたのですが、参加者の方々の緊張が解ければと思い、割とふざけめな本音をスライドの最初にぶち込みました。
実はコレ、当日の明け方2時頃に、親から「真面目に紹介しすぎじゃない?もっと面白そうな感じで紹介しなよw」って言われ、突如ぶち込んだスライドです。
4.実際に競プロ問題に取り組む
MojaCoderというサイトを使い、運営メンバーで4人で作った競プロ問題を6問出題しました。
実際の問題リストはこちらです。(学内向けを一般公開したくないのでオープンコンテストのリンクを貼っています)
一般的な競プロのコンテストと違い、行き詰ったら運営メンバーや他の参加者と交流しながら取り組む形式を採用しました。
実は色々な原因(体調不良や予定が入った方等々…)で当初より先生含め参加人数が減ってしまいました。
なので少し盛り上がるか不安だったのですが、一人一人が行き詰った時に運営がしっかりサポート出来たので、割と良かったと思っています。
他にも語りたい事は色々ありますが、大学のTwitterから様子が投稿されてるのでそちらを貼るだけにしておきますw
5.解説タイム
作問を担当したメンバーが自分の問題を解説する形式を取りました。
1問目は出来る限り丁寧な説明を心掛けましたが、上手く伝わっていると嬉しいですね。
6問目は自己満足で作った鬼ムズ問題(AtcoderのF~簡単なG、Diffは青上位問題位と思ってる)を出題したので、これの解説でビビッてしまった方がいないかが少しだけ不安です。
一応、『解説の最初に私自身も80分では解けない』と入れておいて「オイ!なんつー問題混ぜてんねん!」って空気感にもって行くのが理想でしたw
6.閉会式
後はノリと勢いです。はい。
閉会式後に、課題質問部屋から戻った方も含めて、ICPCの勧誘をしました。
この時に、凄い壮大な去年のICPC参加動画を上映したのですが、これは作問メンバーの一人だったユースケさんが作ってくれたものです。
出題した問題の振り返り
※この項目は割と競技プログラマー向けに書いています。
TOUのイベントの開催記として読んでる方は、主催してみての感想の項目まで読み飛ばしてくださいw
実質会場向けには5問で、6問目はオンライン公開してる、競技プログラマー向けに作った所でした。
学内向けの難度感
結果として、2問目までは全員解けており、5問目まで完走した人数は2人で時間ギリギリ。
難度は割と狙い通りに行ったと思っています。
強いて言えば、緩やかな階段を作るのに、3問目と4問目の間に、考察要素の入らないifとforの組み合わせ問題があれば・・・・って感じかな。
それとオープンコンテストの方でサラッと坂本先生が全完に挑戦しているという・・・・・・w
オープンコンテスト
まず、茶Diffを楽しんでくれる層にもこういった個人コンテストが届いていて大変嬉しい気持ちになりました。
そしてF問の落とされ方を見ると、Fの配点600は流石に高く付けすぎた印象を受けますね。(それとも参加者が強すぎるだけ・・・?)
想定解をマージソートツリー、ABC339Gの応用として出題していたので、それより配点を下げる訳にも・・・・と思いこの配点にしました。
実際にはクエリをオフラインにして解いたり、色んな解法で解かれてますので600点というほどでは無かったのだと思います。
これらの提出の解法は時間を掛けて解読させて頂きます。
え?なんでクエリ暗号化しなかったかって?
まあ、小数点じゃなくてmod998244353で答えさせるとかすれば出来たけど、個人的には確率mod998244353を998のアルゴリズムを使わない問題で使うのが好きじゃないのが1つ。
もう一つは単純に自分が色んな解法で解かれた提出を読んでみたかったからw
イベント主催をしての感想
普段のオフラインWSとの違い
いつものオフラインイベントのWSは
メイン:交流
サブ :プログラミング
だったと思っていて、今回初めてメインをプログラミングにしての開催だったのではないかと思っています。
そのお陰か、少人数ながら凄くエネルギッシュなイベントになり、自分の中で何か感慨深いものがありました。
今回、課題質問に来ていた方も、WSをキッカケにプログラミングが好きになってくれたら嬉しいですね…!
頂いた声
会場から参加してくれたPalmさんがブログで、早々にWSの記事を書いてくれました。
和やかな雰囲気と参加者側も感じてくれていたとの事で、そこを割と意識して動いた効果が出たのかな?と思ったり。
『集中すると3時間なんてあっという間』と思って企画していました。
過集中モードに入ってしまう変態の感覚が入っていた感は否めません。
まあでも何より、Palmさんのブログ見て、ただただ嬉しくて、なんか語彙力ある反応が出来ません!w
運営メンバーとの準備
今回、ユースケさん、HackberryA3さん、真鍋愛さんが、作問や色んな雑務作業を本当に長く協力してくれました。
最初、作問以外の部分の大変さを正直甘く見ていたので、かなり負担を掛けてしまったかな・・・・・という気持ちがあります。
ただ、こんな風に作問に手を出せるメンバーが4人も集まったから成立した企画ですし、実は物凄い事をしているのではと思っています。
そして私があまり得意ではなかった司会や受付等をしてくれたまりくろさん。
司会とか受付を受けてくれていなかったら、この辺に私が追われて、リラックスして喋りたい事を喋る余裕が無かったと思います。
本当に最後のピースを埋めてくれて大感謝です。
今後の活動
私個人的な話になってしまいますが、今は競技プログラミングがメインですが、プログラミングの楽しさを1人でも多くの人に伝える事が私の生きがいです。
これからもプログラミングの楽しさを広めて行ければと思っています。
まずは、ICPCに今回来てくれた人たちを誘って行こうと思います。
ICPC
ICPCという、国際大学対抗プログラミングコンテストというのがあります。
3人1組で出場するプログラミングの大会です。
仲間と協力して出場するというのは、本当に良い思い出になると思うので、是非参加しましょう!
またTOUの競プロDiscordを立ち上げました。
ICPCのチーム組みにも使えたらと思っています。
どんな活動してるの?って興味あるだけの方も、是非来て欲しいです。(ご興味ありましたらuruzunyaaまでDMとかください)
他にも土曜日の夜22:40頃からAtcoderコンテストの振り返りをしたり、ICPCの情報共有とかしていきます。
謝辞
このイベントは本当にたくさんの参加者、運営者で成り立っています。
こちらで改めてお礼を述べさせていただきます。
会場から、配信から、そしてオープンコンテストから参加してくれた方も。
本当に参加してくれた皆様には感謝しかありません。
ご参加本当にありがとうございました!
そして、プログラミングWS運営メンバーの方々、WSにご協力くださる先生方。
本当に全ての皆様のおかげで成り立ったイベントです。
本当にありがとうございました!
大反省
さて、割と大反省すべき部分がたくさんあります。
備忘録として割と雑に未来の私へ書き出しておきます。
公開する事で、忘れないように頑張ります。
・集合写真位取りましょう。あなた写真を一枚も取ってませんよ。
・人の予定確保は1ヵ月前までに完了させましょう。
・報連相多すぎてキツイから減らすんじゃなくて、報連相のやり方を工夫しましょう。
・チャットの報連相で全てやると報連相で壊れるので通話を設けましょう。
・毎回会議日程調整とかキツすぎるので、直前何回かだけで良いので定例会形式で調整しましょう。
・荷が重い事を最初に考えましょう。気付けば遅すぎる事になってます。
・同じ属性の人で周りを固めないようにしましょう。視野が狭まります。
・人に頼む時、もう少し大きいタスクの単位で依頼しましょう。タスク書き出しの時に分けすぎた結果「それわざわざ頼む位なら自分でやった方が楽だわ」になってますよ。
・技術的な仕事頼む時は、簡単にで良いので講習会開きましょう。何度も「修正してください」って投げるのは双方に得がありません。
・設営、片付けみたいなもの、もうちょっと練習してください。延長コードをまとめて結ぶのが出来ないとか、色々マズいですよ。
・WS開いたら本来いつもやってる、参加者アンケートを忘れましたよ。
・あなたリーダーなんですから、見本として一番最初に資料作成とか終わらせましょう。
・苦手な事はもっと上手く他の人に依頼しましょう。苦手な事を自分の中でスタックさせるのが一番ダメですよ。
直接お礼言うより先になんで自分のブログにお礼書いてるんですか。
順序おかしいですよね。そういう所をまず直しなさい私。
最後に
ここまで読んで頂いた方、ありがとうございました。
割と半分備忘録で書いたので、かなり見苦しい文章になっているかもしれませんが、想いをぶつけました。
書きかけで放置してる記事も近日中に投稿しますのでまた別の記事でお会いしましょう。