Students compete in groups to create the best heuristic to an NP-hard problem.
Students are placed in groups and receive an NP-hard problem. They are asked to design a good heuristic to the problem, create an input to the problem, and a program which, given an input and output, will verify if the output is a valid solution to the input.
Groups upload their inputs to the problem and select a team name.
Groups run all inputs on their solution program and upload their outputs to the site.
Groups verify that each solution to their input from all other groups is valid.
Groups with rejections may upload new outputs for a penalty, or protest rejections.
All outputs for all inputs become available, and teams may protest any verification.
Everyone evaluates their teammates effort to be considered in their grade.