2019 Programming Contest Rules
The 2019 Hawkeye Challenge Programming Competition will be held Saturday, March 30, 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.
During the competition, team members may use any and all written materials (e.g., textbooks) of their choosing. Pencils and scratch paper will be provided. Calculators are permitted. Teams may not bring any storage devices. No Internet use beyond the HackerRank website will be allowed.
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.
The programming languages students are permitted to use on the Windows machines are: Anaconda (Python 3.x), Agda, Coq, Haskell, Java, Kotlinc, Rust, and Objective Caml.
IDEs available are Eclipse IDE, IntelliJ IDEA, Visual Studio 2017, jEdit for Java, Notepad++, and WingIDE 101 for Python.
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.
Division 1 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 students are familiar with HackerRank or other interviewing platforms, Division I is more appropriate.
Division 2 is recommended for students who are newer to programming and are taking AP Computer Science Principles, PLTW CS Principles, or a similar rigor of courses. In the case that teams finish all Division II problems, teams will continue with Division 1 problems and this will count towards their final scores for the Division II standings.
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 access to HackerRank.
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. They will have 3 hours to work on these solutions.
The competition is hosted on the HackerRank website, but the questions are created by the University of Iowa ACM Student Chapter members. HackerRank will be the way to submit code and it will automatically judge the problems. An example competition can be found at: 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 all of the languages specified above.
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 “outside” of the HackerRank environment). We urge team members to use the sample provided with each problem statement, but it should not be assumed that just because the program works with the sample data, it will work with the actual competition test data. If necessary, more test cases will be released as "hints" to the problem as the competition goes on. This will help verify a team’s code; however, programs should be tested very carefully before submitting them for judging.
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 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 submission adds 10 minutes of time to the eventual problem completion time (see Standings section for more info).
Once a team submits their code to HackerRank, it will respond with (a) whether or not the code compiles, and if so, (b) how many test cases were handled correctly. Note that the test cases themselves may not be visible to team members.
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 submission 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.
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
Trophies and prizes will be award to the winners of the first-, second-, and third-place teams of each division.