Global Site Navigation (use tab and down arrow)

Back to High School

NB High School Programming Competition

A computer programming challenge for high school students

The New Brunswick High School Programming Competition brings talented students from high schools throughout NB to the UNB Saint John campus every year. See our poster.

Contestants will test their computer programming skills and problem solving abilities. The contest is designed to encourage teamwork and it consists of a number of programming problems of increasing degrees of difficulty for the team to complete. The team that solves the most problems wins.

Our sponsors provide amazing prizes including laptops (1st place), iPad Minis (2nd place) and iTunes gift cards (3rd place). Plus all competitors receive financial support towards future studies in select degree programmes at UNB Saint John.

The 2019 contest will be held on Friday, May 3.

Register now

How to enter

We accept teams as space permits. Please note that we are never set up to accept registrations on the day of the contest.

The authorization and consent form must also be filled out on/before the competition day. It's best if you scan and email it, in advance to the coordinator. Alternatively, you may bring the completed form with you to the contest.

For more information contact nbhspgmcomp@unb.ca.

Professional development for teachers

During some of the afternoon on May 3, 2019,  we plan for NBCC to provide a PD session to teachers.   The topic is  "Integrating Applied Research into Education", and more details will be provided later.

Transportation

UNB Saint John does not provide transportation. Frequently, one or more teachers accompany their school's teams to the contest.

Sample problems

Looking to hone your skills? See the sample problems for 2018.

Confirmed sponsors

  • J.D. Irving, Limited -Information Technology Division
  • IGT
  • EhEye (part of Patriot One)
  • NBCC Saint John
  • UNB Recruitment
  • UNB VP Saint John: Members of the top 3 teams get $1000, $500 and $250, respectively, toward BScCS first year at UNB Saint John (year of entrance may be restricted). All contestants receive $100 towards first year (year of entrance may be restricted) at UNB Saint John in any 4-year program offered by the Faculty of Science, Applied Science and Engineering.

Contest rules

These rules and procedures may be modified and/or extended right up to the time of the competition.

Our competition rules are based on the rules used for the regional and international programming competitions sponsored by the ACM (Association for Computing Machinery), though there are differences because the student level and experience are not the same.

Every high school (public or private) in New Brunswick is eligible. Each school is allowed up to register two teams, each consisting of two students maximum. Additional teams can register but will be waitlisted and allowed to compete if space permits. 

There are generally two students per team, though a team of one is also allowed. The two students must come from the same school.   A school should send a team of two  rather than two teams of one,  if personalities permit it.

Students must register for the competition, and submit/bring their authorization and consent form. If more than two teams wish to register from a school, the school will prioritize the teams.

There is only one computer workstation per team (whether it's one student or two).

The High School Programming Contest takes all day, although the coding phase is 3.5 hours in the afternoon. 

Students may use hard-copy (paper or book) reference material but not soft-copy (electronic) reference material. So no thumb drives or CDs are permitted, for example. Old printouts and notes on paper are fine, however.

Solutions can be coded in Java (Oracle 8u77 in 2018), C and C++ (GNU compiler 4.8.1 in 2018), Visual Basic (12.0.21.005 VB 11 in 2018) or Python (3.4.0 in 2018).

No integrated development environment are used. Programs are written with a text editor (gVim (7.4 in 2018), Notepad, Notepad++ (6.9.1 in 2018)) in a Windows 7 environment and then compiled and debugged using command-line tools.

Programs read from the standard input ("the keyboard") and write to the standard output ("the screen"). No file input or output is done. In our warmup practice contest, we use two simple problems and their sample solutions in each of the supported languages.

PC^2 contest management software is used for teams to submit their solutions and receive the results.

No calculators, audio devices or video devices are permitted. The Windows calculator accessory may be used if a calculator is required for any reason.

No communication is permitted between teams or between teams and teachers/coaches, once the competition has started. Also, students are not permitted access to outside resources via a web browser or e-mail during the competition.

Solutions are submitted electronically, and to be accepted a submitted program must produce the right output values in the correct format, for each of the sample input data files. Program code itself is not read and not evaluated in any way. Input test data files used by the judges may (and usually will) include data that the teams have not seen.

A solution that is not accepted as correct will be rejected. Students may resubmit the code as many times as they want until they get the correct answer.

The winner is determined by most problems solved, with ties broken by total time taken.

2018 results

  1. Congratulations to Zachary Leger and David Shin of Moncton High, who took first place.
  2. Abdulbari Alhallak and Stephen White of St. Malachy's High won second place.
  3. Daren Liang and Ishwar Desai of Fredericton High won third place.

Each of NB's largest cities was on the winners' list this year.

About the competition

Every year teams from high schools across New Brunswick are invited to UNB Saint John's High School Programming Competition. Regardless of who takes which titles, every student will be a winner! Each student will have won by gaining the experience of working as part of a team, participating in a fun event, and making new friends.