High School Programming Contest
Contest date: March 17, 2023
The High School Programming Contest is a challenging and fun opportunity for high school students to improve their Java or Python programming skills. The event encourages the development of creative problem-solving and communication skills as students work with their teammates to generate solutions to programming problems.
Who can participate?
High school students in grades 10, 11 and 12 are invited to enter. Students will work in four-person teams. Each school may enter two teams. Spaces are limited and will be confirmed on a first-come first-served basis.
What is the contest?
Teams will be given problems to solve using Java or Python (their choice) and will have three hours to implement solutions. Solutions will be judged for correctness and speed of solving. View the contest specifications and rules.
Where is the contest?
The contest will be held in the computer labs in the College of Engineering East Hall at VCU.
Arriving from the North/West by Interstate 95S/64E
Take Exit 76B Belvidere Street. Stay in the middle lane on the exit. Turn left, then get in the right lane for an immediate right turn onto Belvidere Street. When you pass Monroe Park on the right, get in the left lane turning left onto West Cary Street (the next block after Main Street.). Go one block and turn left at Madison Street. The JL parking lot is on the right behind the 7-11.
Arriving from the South/East by Interstate 95N/64W
Take Exit 190 for Fifth Street and Downtown/Coliseum. Turn right at the eighth traffic light onto Main Street. Follow Main Street to Belvidere Street. (Landmarks: 7-11, then the Snead Building on the left). Turn left at Belvidere Street and stay in the left hand lane turning left on West Cary Street (the next light). Go one block and turn left at Madison Street. The JL parking lot is on the right behind the 7-11.
Registration information coming soon
The entry fee is $50 per team. All participants will receive lunch and a commemorative T-shirt. A school may register up to two teams. Spaces are limited and will be confirmed on a first-come first-served basis. Students (their legal guardians) and teachers are required to sign a photo release form. Once you receive an email from the organization stating that your registration has been confirmed and approved then please send a check to cover the entry fee.
Checks should be made payable to “VCU Computer Science Department” and sent to:
Department of Computer Science
Virginia Commonwealth University, Room E4255
401 W. Main St.
Richmond, Virginia, 23284-3019
- Each team may use two computers but submit solutions from only one — other computers in the labs must stay powered down. No computer equipment may be brought into the contest area.
- Teams are allowed to bring a reasonable number of computer books and/or notebooks into the contest area for use during the contest. Teams are NOT allowed to bring a disk, software or machine-readable software into the contest area.
- Teams will not have their own printer. A network printer will be accessible.
- No food or drink are allowed in the labs. There will be lunch after the contest and refreshments supplied before.
- Teams are not allowed to use calculators. Teams are not allowed to use non-contest software on their computers. Teams are not allowed to use web browsers, telnet, ssh, ftp, sftp or other network software to obtain help on their contest problems.
- Teams are not allowed to discuss the problems with members of other teams.
- All teams must stay in the computer lab during the contest. If a team member needs to leave the lab (i.e., go to the bathroom, get a drink of water, etc.), the team member will be escorted by a contestant staff member.
- The team’s teacher will not be allowed in the computer lab.
- You may work on your problems in any order, and submit them in any order.
- Your programs must not do any file input or output. All contest input will come from the keyboard, and all output must go to the console.
- The programming language to be used is Java (Sun’s JDK). No additional classes will be made available outside the normal Java libraries.
- You need to consider the efficiency of your algorithms to make sure they will take less than two minutes running time. For some of the problems, solutions exist that might work, but they are so inefficient that they will not finish in the time allowed.
- The judges’ decision is final.
Past problem sets
Download the following sample problems and solution suggestions to get a better understanding of the contest. Please be aware that the solution suggestions are “quick and dirty” solutions and are being offered as is. In particular, we claim neither that they represent the best (or cleverest) solutions nor that they have been sufficiently tested. As you evaluate them, you might well come up with better solutions!
|Contest Year||Problem Set||Solutions|
|2016||2016 Problems||2016 Java Solutions|
|2015||2015 Problems||2015 Java Solutions|
|2014||2014 Problems||2014 Java Solutions|
|2013||2013 Problems||2013 Java Solutions|
1st “Montgomery Blair High School Team 1 from Silver Spring, MD” solved 10/10
2nd “Poolesville High School Team 1 from Poolesville, MD” solved 7/10
3rd “Montgomery Blair High School Team 2 from Silver Spring, MD” solved 7/10
1st “Thomas Jefferson High School for Science and Technology Team 1 from Alexandria, VA” solved 9/10
2nd “Montgomery Blair High School Team 1 from Silver Spring, MD” solved 8/10
3rd “Thomas Jefferson High School for Science and Technology Team 2 from Alexandria, VA” solved 8/10
1st "Thomas Jefferson High School for Science and Technology Team 1 from Alexandria, VA" solved 10/10
2nd "Thomas Jefferson High School for Science and Technology Team 2 from Alexandria, VA" solved 10/10
3rd "Montgomery Blair High School Team 1 from Silver Spring, MD" solved 10/10
4th "Montgomery Blair High School Team 2 from Silver Spring, MD" solved 10/10
1st "Montgomery Blair High School Team from Silver Spring, MD" solved 9/10
2nd "Thomas Jefferson High School for Science and Technology Team 3 from Alexandria, VA" solved 9/10
3rd "Poolesville High School Team 2 from Poolsville, MD, " solved 9/10
4th "Governor's School for Science and Technology Team 1 from Hampton, VA" solved 9/10
- Advanced Technology Center (Virginia Beach, Va.)
- Albemarle High School (Charlottesville, Va.)
- Appomattox Regional Governor's School for the Arts and Technology (Petersburg, Va.)
- Atlee High School (Mechanicsville, Va.)
- Chancellor High School (Fredericksburg, Va.)
- Clover Hill High School (Midlothian, Va.)
- Courtland High School (Spotsylvania, Va.)
- Deep Run High School (Glen Allen, Va.)
- Douglas S. Freeman High School (Richmond, Va.)
- George C. Marshall High School (Falls Church, Va.)
- Governor’s School for Science and Technology (Hampton, Va.)
- Hanover High School (Mechanicsville, Va.)
- Lee-Davis High School (Mechanicsville, Va.)
- L.C. Bird High School (Chesterfield, Va.)
- Manchester High School (Midlothian, Va.)
- Matoaca High School (Chesterfield, Va.)
- Midlothian High School (Midlothian, Va.)
- Montgomery Blair High School (Silver Spring, Md.)
- Mountain View High School (Stafford, Va.)
- Patrick Henry High School (Ashland, Va.)
- Poolesville High School (Poolesville, Montgomery County, Md.)
- Powhatan High School (Powhatan County, Va.)
- Prince George High School (Prince George, Va.)
- Riverbend High School (Fredericksburg, Va.)
- Shenandoah Valley Governor’s School (Fishersville, Va.)
- Thomas Jefferson High School for Science and Technology (Alexandria, Va.)
- Wakefield High School (Arlington, Va.)
ACM Programming Competition
Every year, the Association for Computing Machinery, the world’s largest educational and scientific computing society, sponsors an international programming competition. This competition challenges students to write correct solutions to as many problems as possible in a fixed amount of time. The problems are difficult and the students must work in teams to solve them using the programming language Java.
The computer science department works with students in order to enter a team into the ACM Programming Competition.