Codechef is a popular site which hosts monthly programming competitions with participants from all over the world. But you probably already know this, so lets jump to the point – How to become a problem setter for Codechef?
Who can become problem setter?
Anyone can apply to become problem setter. While applying you need to mention what roles you are interested in – Problem Creation, Problem Testing, Editorial Writing . Your handles on TopCoder, CodeForces, SPOJ and CodeChef. Your contact details, details for payment etc. Plus you need to print, sign and scan a NDA(Non Disclosure Agreement). Once applied it is up to the administration of Codechef to accept you or not. Don’t make tall claims and give a true picture of your abilities.
What are the tasks of problem setter?
I have set problem in 6 monthly Long contest at the time of writing. From my experience I can tell you that problem setting is a fun task, but not necessarily easy and possible for everyone. So think wisely. Responsibilities of problem setter are-
- Create a problem and categorize it in appropriate difficulty level – Cakewalk, Simple, Easy, Medium, Hard, Challenge. This is very important. When you submit a problem, you have to give its difficulty level as well. If your given difficulty level is different from actual difficulty, the contest can become unbalanced.
- Provide Test data plan and Test data generator as mentioned here.
- Provide Commented solution for the problem submitted by you.
- Once your problem is accepted, the testing and polishing work starts. You get a mail roughly 10-12 days before contest. During this you need to address the concerns of tester/editorialist regarding problem statement, test cases, constraints, solution complexity etc.
- During testing phase you need to devote roughly 4-10 hours. This can vary a lot depending upon problem difficulty and your preparedness.
- A problem can undergo a lot of changes before contest, so you need to be active all the time.
- Once the contest starts – It is your responsibility to moderate comments and monitor solutions. If a submission seems suspicious check if it is a case of cheating or not.
That’s pretty much to it. If you have any doubts you can ask in comments.