There is an registration fee of $20 per student until February 11, 2017.

After February 11, registration costs $30.


To contact the organizers, please send an email to

  • Dr. Alan Sprague ( Contest Registration and Administrative Lead)

The State of Alabama High School Programming Contest (HSPC) hosted by UAB brings talented students from high schools throughout Alabama to the UAB campus to participate in an organized competition. Students individually compete to demonstrate their programming skills and problem solving abilities by attempting to solve six programming problems within a three hour period. Schools that have three or more contestants are also eligible for team awards.


University of Alabama at Birmingham
1300 University Boulevard
Campbell Hall
Birmingham, AL


Contest Rules

Familiarize yourself with the contest rules before arriving on campus. If there are questions, contact Dr. Alan Sprague at



February 18, 2017
9:30 AM to 4:00 PM



Parking will be available several blocks away from Campbell Hall.

Schedule of Events

In addition to the actual contest, food will be provided. There also will be
opportunities to meet and interact with UAB computer science faculty.

Start End Activity Location
9:30 am 10:30 am Check in CIS Lobby
10:15 am 10:45am CIS Tour CIS Lobby
11:00 am 11:30 am Lunch Campbell Hall
11:30 am 11:45 am Welcome and Orientation for HSPC TBA
12:00 pm 3:00 pm HSPC Contest TBA
3:15 pm 4:00 pm Award Presentation TBA

Contest Rules

The following categories represent the rules that will be used during the administration of the contest. Please contact the organizers if clarification is desired on any rule. All of the rules will be covered in the lunch session prior to the actual competition period.

The competition is open to all Alabama high school students (public, private, or home schools).
A high school student is any student currently enrolled in grades 9-12. Seniors who graduate in 2017 are welcome to participate.
There is an individual contest (first 5 places awarded). A team is also provided for those schools having three or more participating students (first 2 places awarded).
The contest will consist of 6 or more problems to be solved over a 3 hour period. The set of problems will span various levels of difficulty.
Solutions to the problems must be coded in Java or C++ or Python. No other languages are allowed.
You are allowed to bring a total of two books to the contest. These must be “traditional” books – you may not compose your own book or set of notes unless they are in a binder.
You are NOT allowed to bring any software or disks into the lab.
If you need a piece of paper, you may ask the lab proctor for blank paper.
Any question should be submitted to the judges in writing.
Each clarification question will be considered and acknowledged, but the judges reserve the right to not answer any question that may reveal the answer. The question and its answer may be provided to all contestants if it seems relevant.
Performance is a criterion for judging if a solution is correct. Your program must finish and deliver a correct answer within one minute in order to be considered correct. For some of the problems there may exist a solution that might work, but is so inefficient that it will take longer than a minute to finish.
You may work on the problems in any order, and submit them in any order.
There will not be any third party libraries provided for you. Only standard libraries will be provided, but you may type in any support libraries on your own and submit them as part of your solution.
The judges’ decisions are final.

After a problem is judged, one of the following responses will be returned to the contestant:

  • Correct
  • Incorrect Output
  • Incorrect Output Format
  • Incomplete Output
  • Failed Test Case
  • Compiler Error
  • Run-time Error
  • Run Time Limit Exceeded
A contestant may submit a program for judging as many times as they wish. If a program is judged to be incorrect, the contestant may resubmit later.

Ranking will be based on overall score, where the score is determined primarily by the number of problems solved correctly.
Time will be used as a secondary scoring method in order to break potential ties. In the case where multiple contestants have solved the same number of problems, the tie breaker will be the total time taken to solve the correct problems (i.e., the contestant solving the problems in the least amount of time will have the higher ranking). A third-level tie breaker will default to the flip of a coin :)
For each incorrect submission, a penalty of 20 minutes will be assessed to the contestant.
In computing team rankings, the top three scores of students from each school will be considered.

Food and drink are not allowed in the labs. There will not be an official break, but you may briefly leave the contest area to go to the restroom or to get a drink.
Each student will be assigned a computer in one of the UAB CIS labs. You may use only the assigned machine to solve the problems – you may not use your own laptop.
The Internet will be turned off in the labs. You may not search the web or use the Internet in any other way in order to obtain hints or tips.
While in the lab, all electronic devices must be turned off. Electronic devices are not allowed to be used during the competition. In general, any disturbance that causes other contestants to lose their concentration will be handled by the lab proctors.
You may not use a wireless device to contact or talk to anyone during the contest period.
The UAB CIS labs are equipped with the following computers and software:

  • Eclipse for Java and C++
  • Netbeans for Java and C++