Posted by Bill Gates

The University of Alberta Programming Contest is an opportunity for university, college, and high school students in Alberta show off their knowledge and skill in a programming competition.

Students will test their knowledge of algorithms and data structures with a set of programming puzzles requiring problem-solving, programming, math, and teamwork skills.

Two levels of competitions will be held, one for less experienced contestants and one for programming contest veterans.

Time and Location
Posted by Bill Gates

Saturday, March 16th, 2019.

Computing Science Centre (CSC), Room 1-59, University of Alberta.

  • 10:00-10:45 Contest Warm-up
  • 11:00-3:00 Contest Starts
  • 1:00 Pizza Served
  • 3:00 Solution Discussion

I will request logins for our Linux machines for those who do not have a CSID (this is different than a CCID). However, to be safe, if you do not have a CSID, I suggest you bring a laptop with the tools to compile and/or run programs written in the supported language of your choice.

Contest Links
Posted by Bill Gates

Update: Links for the contest this year.

Warmup Contest

Division 1

Division 2

Other Information
Posted by Bill Gates

Contest Format: Teams of 1 to 3 compete to solve a variety of programming challenges. These are similar to ones found on Open Kattis.

For good practice with the mechanics of this contest, try solving and submitting this easy problem on Open Kattis. Try solving a few more interesting ones for more practice.

Input from standard in, output to standard out (like on Open Kattis).

One computer per team at all times. No switching machines without permission from the on-site contest director. You may use your laptop instead of a lab machine.

The only online resource permitted, apart from the contest pages, are the standard language documentation sites. Links will be provided from the contest page during the contest. You may bring in as much printed material as you would like.

Posted by Bill Gates
  • Can I/we compete remotely?
    Yes, but U of A students are strongly encouraged to show up in person. Others are welcome too.
  • Is C++11 supported?
    Yes, we compile all C++ submissions with -std=c++11
  • Is Python 2 supported?
    No, use Python 3
  • What should I name my Java main class?
    Execution of a Java program must begin in the main method in the public basename class in the default package.

Generally we compile and run programs in a way that is similar to this description, but without Python2 support.

Posted by Bill Gates

Register using the following Google Form

Cutoff is 7pm on Thursday, March 14.

I will send login information to the email address entered in the registration form.

Email zacharyf@ualberta.ca if you have further questions.

Posted by Bill Gates

Free Pizza

Posted by Bill Gates

We encourage you to work in teams of three, but you may compete individually or in a team of two. The contest is free of charge; lunch will be provided to competitors at the U of A location.

The contest itself is a collection of approximately 10 problems to be solved using C, C++, Java or Python 3. Team rankings are decided first by number of problems solved, and second by time taken to solve and number of incorrect submissions.

There will be two divisions: Div I is intended for people with some problem-solving experience and Div II is intended for people with less problem-solving experience.

We have enough help creating problems, so Divs I and II will have different problem sets (with some overlap).

You must register in Division 1 if any team member has completed either CMPUT 204 or CMPUT 275. You may register in Division 1 even if you have not taken these courses.

In each division, the winning team is the one that solves most problems. Ties are broken by penalties.

Penalties are calculated as follows. For each problem that is accepted, you receive M + 20*W penalty points where M is the number of minutes from the start of the contest before the first accepted verdict for this problem and W is the number of incorrect submissions for this problem before the first accepted verdict.