The 2018 Hawkeye Challenge Programming Competition will be held Saturday, April 28th, 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.

Teams

Each team must consist of 2 to 4 students. Students must be in high school to participate and have a teacher/sponsor sign up with them. Teams must also choose in which division they will participate.

If you would like to participate but are having trouble forming a team, please contact Ryan Wedoff (email: ryan-wedoff@uiowa.edu).

Division I

Division I is recommended for students that are taking or have taken AP Computer Science A, PLTW CS A, college course in computer science or any similar rigor of courses. If you are FAMILIAR with HackerRank or other interviewing platforms, Division I is more your speed.

Division II

Division II is recommended for students who are newer to programming and are taking AP Computer Science Principles, PLTW CD, or a similar rigor of courses. In the case that teams finish all Division II problems, teams will continue with Division I problems and this will count towards their final scores for the Division II standings.

Please be mindful of your team's ability and choose your division appropriately.

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 usage. 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, and questions created, by the University of Iowa ACM Student Chapter. HackerRank 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 the 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).

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 and failed test cases. Various test cases will be hidden from the teams on HackerRank.

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. Teams who solve the same number of problems are ranked by least total time. The total time is the sum of the time consumed for each problem solved. The time consumed for a solved problem is the time elapsed from the beginning of the contest to the submittal of the accepted run plus 10 penalty minutes for every rejected run for that problem regardless of submittal time. There is no time consumed for a problem that is not solved. All standings will be available on HackerRank's Leaderboard for the competition.

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.