数理・計算科学系2年 noya2です。
traPではアルゴリズム班に所属していて、「作問部」の部長をしています。
この記事は、「作問部」が8/11(金)に開催する 「作問ハッカソン」 の告知記事です!
traPとアルゴリズム班の紹介
traPは東京工業大学のデジタル創作を行うサークルで、プログラミング・音楽・イラスト制作などの幅広い創作活動を多くの部員が行なっています。
traPではそんな幅広い人が創作活動を行っているのですが、それぞれ「班」と呼ばれる組織に属して活動をしています。
そして、プログラミング、とくに競技プログラミングに関心がある人たちがおおく活動しているのが「アルゴリズム班」です。
traPアルゴリズム班ではアルゴリズム基礎講習会や機械学習講習会、ヒューリスティック講習会(開催予定)など、多くの講習会イベントが開催され、他にもICPCではtraPメンバーがチームを組んで今年の国内予選を突破したりと、非常に活発に活動しています!
さて、アルゴリズム班には、「部」という下部組織が存在します。
アルゴリズム班
| ----- アルゴリズム部
| ----- ヒューリスティック部
| ----- 作問部
| ----- Kaggle部
Kaggle部では機械学習に興味がある人が集まり、アルゴリズム部とヒューリスティック部ではそれぞれプログラミングコンテストで好成績を収めるべく部員が日々精進しているのですが、アルゴリズム班には「プログラミングコンテストを運営する」活動をする人が集まる部も存在します。それが 「作問部」 です。
作問部の紹介
作問部は主に競技プログラミングの問題を作成する活動をしています。
例えば、毎年春に行われる CPCTF というtraPの新入部員を主なターゲットにしたCTFと競技プログミングを組み合わせたコンテストの競技プログラミング分野の問題作成を担当しています。
一方で作問部ではそれ以外に部員みんなで活動をする機会が限られていました。というのも、作問という作業は知識も必要で若干ハードルがあります。
競技プログラミングの作問は、問題のアイデアを出すだけでは多くの人に解いてもらうことは難しいです。問題をカタチにして公開するには、必要な作業がいくつか存在します。もちろん問題のアイデアがなければ始まりませんが、他にも次のような作業を行う必要があります。
- 問題文や解説を書く
- テストケースを作る
- テストケースが制約にあっているかを確かめる
問題によってはジャッジコードを書く必要があったり、インタラクティブ問題の場合はそれ専用のコードを書く必要があったり、他にもさまざまな作業が必要になることもあります。
これらの作業は初めての人には多少ハードルが高く、問題を公開して他人に見てもらうために丁寧で伝わりやすい文章を書いたり、誤った解法で正解されることを防ぐために強いテストケースを作ったりと、簡単にできることばかりではありません。他にも、テストケースが制約違反をしていないことを確かめるバリデーションには専用のツール(testlib)を使うのがおすすめですが、このツールの使用にも慣れる必要があります。
ですが、作問をしたことがない人が作問の仕方を学ぶ機会は特に設けられておらず、部として個人の活動を後押しすることができていませんでした。
そこで今年は参加者が作問に必要なことを学んで今後の作問活動に活かしてもらうために「作問ハッカソン」というイベントを開催することになりました。
作問ハッカソンとは
作問ハッカソンは、ハッカソンのように短期間で一気に作問作業を行い、それを通して作問に必要な知識を得ることを目標にしたイベントです。
午前中は講義形式で、作問に必要な作業やツールについて学びます。午後はチームに分かれ、チームリーダーがチームメンバーのサポートを行いながら、参加者が一人一問完成させることを目指します。
作問には初心者が自力で行うには難しい作業もいくつかあります。そこで、初めて作問する方にも経験者も何人か集まるイベントに参加してもらうことで、教えられながらまずは1問作ってもらって、作問作業の流れを知ってもらい、今後作問がしたい場面でその経験を役立ててもらうことがこのイベントの狙いです。
イベント終了後、運営陣 10 名による test-run を行い、問題文や想定解法、テストケースのなどチェックを行います。自分の作った問題を別の人に見てもらい完成度を上げることも、作問の重要な作業のひとつです。
すべての作業を終えたらイベントは終了... というわけではありません!!!
コンテスト告知
作問ハッカソンでは参加者が一人一問の問題を作ります。ただし、それだけではありません。作問を多くの人に見て解いてもらうのも作問のひとつの醍醐味です。
ということで、作問ハッカソンで作成された問題を集めて 8/18(金)の21:00〜24:00に yukicoder でコンテストを開催します!!! (コンテストページはこちら:traP 作問ハッカソンコンテスト 001)
イベントには 20 人程度が参加する予定なので、コンテストの問題は 20 問程度になる予定です。コンテスト時間は 3 時間を予定しています。 ぜひご参加ください!