The 2017 Hawkeye Challenge Programming Competition will be held Saturday, April 29th, on the University of Iowa campus in Iowa City. Participating teams in two divisions will program solutions to problems on the computers in the Computer Science Labs. The first three teams of each division will be recognized during an awards ceremony following the competition. Any changes, additions, or clarifications to these rules will be announced during the orientation meeting preceding the competition. 
 

Materials

During the competition, team members may use written materials (e.g., textbooks) of any kind. Pencils and scratch paper will be provided. Calculators are permitted. Teams may not bring any storage devices. No Internet use beyond the website of HackerRank is allowed.

Computers

Each team will be assigned one computer to use during the competition. Instructions on computer usage will be given during the orientation meeting preceding the competition. Tables at the back of the room will be available for work away from the computer. 

Student Monitors

Student monitors from UI will be available to assist team members. The monitors will answer questions concerning computer usage and competition procedures but will not answer any questions regarding logic, language syntax, or problem interpretation except for anything relating to HackerRank.  Questions are to be posted on HackerRank so that everyone can see the answer.  Student monitor will also be checking Internet useage.  Internet is not allowed except for HackerRank.
 

Problems

When the competition begins, each team will be given 5 computer problems to solve. Team members may work on these problems in any order and in any manner they choose. There will be 3 hours to work on these solutions.

HackerRank

HackerRank will be used to host the competition.  The competition on HackerRank is hosted by the ACM and the questions are also created by the University of Iowa ACM Chapter.  HackRank will be the way to submit code and it will automatically judge the problems.  Feel free to check out the example competition: www.hackerrank.com/hcpc17-example-competition.  During the competition, each team can use their own IDE or program to practice, but the code must work and be submitted in HackerRank.  HackerRank supports almost any language. 
 

Testing

Each team may run their program using their own test data files as many times as they wish, there is an option to do this within HackerRank, or teams can try this on their own.  We urge you to use the sample provided with each problem statement, but do not assume that because your program works with the sample data that it will work with the actual competition test data. More test cases will be released as "hints" to the problem as the competition goes on if necessary.  This will help verify your code; however, test your programs very carefully before submitting them for judging. 
 

Questions​

Once the competition begins, all direct or indirect interaction between the teams and judges will be limited to written communication through HackerRank. This includes requests for clarification of problems as well as any other question about a specific problem. These questions, and their answers, will be available under each question in teh Discussions section so that everyone will know the question and answer.
 

Submitting Code

Submitting code consists of the team entering the code and pressing Submit Code.  This will run the code on the sample data and other hidden test cases.  Teams may submit as many times as they wish; however, each incorrect judged run adds 10 minutes of time to the eventual problem completion time (see Standings section for more info).

Time of Execution

When the competition judges are executing a program using the official competition data, a solution will be judged to be incorrect if it does not execute in less than 1 minute. 
 

Judging

​After submitting code to HackerRank, it will return how many tests are correct or incorrect.  HackerRank will tell the teams the errors in their code.

Standings

Teams will be ranked per the number of problems they complete correctly.  For example, a team that completes 5 problems correctly will finish ahead of a team that completes 4 problems correctly. There is no penalty for problems that are not solved. In the event of a tie, the teams that tied will be ranked per the total accumulated time taken by each team.  All standings will be available on HackerRank's Leaderboard for the competition.  Furthermore, 10 minutes per incorrect submission of a problem are added to the total time for that problem.

HackerRank Failure

In the case of failure of HackerRank, the 2016 HCPC Rules will be in effect. Check those out here: https://acm.org.uiowa.edu/article/hcpc-rules

Prizes

First, second, and third places will be awarded to the teams of each division. A complete list of rankings will be posted on the ACM Hawkeye Challenge website.