About

The Alberta Collegiate Programming Contest (ACPC) is an opportunity for university and college students in Alberta to excel in a programming competition.

Students will test their aptitude and their knowledge of computer science against a set of programming puzzles requiring problem-solving, programming, math, and teamwork skills. Teams are ranked according to the number of problems solved within five hours. The event will begin on October 26th with a warm-up practice, followed by a five-hour competition to decide the winners.

The ACPC is sponsored by Arcurve who provides a platform for the next generation of computing professionals to pursue excellence.

Registration

Register on Eventbrite.

The deadline to register for the contest is October 23rd, 2024 at 11:00PM MST

Prizes
Division 1
First Place $1200
Second Place $600
Third Place $300
Division 2
First Place $300
Second Place $150
Contest Links

A practice contest is provided to allow contestants to become familiar with the Kattis judging system:

Practice contest.

Below are the links to the contest for each division.

Division 1 Contest.

Division 2 Contest.

Open Division Contest.

Make sure you are doing the contest for the division you registered under on Eventbrite.

Eligibility

Anyone is welcome to compete.

In order to be eligible for prizes, you must be:

  • Enrolled in a post-secondary institution/high school in Alberta as an undergraduate/full-time graduate student (Open for students who are enrolled in post-secondary institutions outside of Calgary including University of Alberta and University of Lethbridge).
  • If you are a post secondary student, you must register with your school email and university ID
  • If you are a high school student, you must register with your student ID
  • In a team of up to three members
  • Participating in the same division as everyone else on your team
  • Participating in person in an official contest site.
  • Please note: high school students are STRONGLY encouraged to register in Division 2.
  • (Extra requirement for Division 2) Students who have not won any cash prizes in previous ACPC or CCPC contests
  • Open division does not require registration.

Time and Location

The contest is set for Saturday, October 26th, 2023.

In Calgary, the contest will be held in the CPSC lab on the main floor of the Math Science building at the University of Calgary.

The currently planned schedule is as follows:

10:00AM - 10:15AM

  • Coffee and Mingling

10:15AM - 10:30AM

  • Contest Rules in ICT 122

10:30AM - 11:15AM

  • Practice Contest in the CPSC lab

10:45AM - 11:30AM

  • Lunch will be served

11:30AM - 4:30PM

  • Official Contest

4:30PM - 4:45PM

  • Solutions to Problem Set

4:45PM - 5:30PM

  • Arcurve Presentation & Awards Ceremony + Door Prizes

Contest Details & Rules

Teams of up to three students enrolled in an Albertan educational institution, meeting the criteria linked to in the "Eligibility" section above may compete for prizes. Teams not meeting these requirements may participate as guests. The contest is free of charge for entry; lunch will be provided to official competitors at the Calgary location.

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

During the contest, the following rules are in effect:

  • Accepted programming languages are all languages accepted on Kattis
  • Input from standard in, output to standard out
  • No collaboration is allowed with anyone outside of your team members when working on/discussing the contest problems.
  • Each team has access to exactly one computer, to be used for writing, testing, and submitting code solutions
  • Resource access is restricted to standard library and language documentation, the contest website, and the I/O cheat-sheet (linked below)
  • Teams have unlimited access to written material such as textbooks, notes, and printed example code
  • Any standard system software may be used during the contest
  • External libraries are not allowed. For example, the C++ header #include is allowed since it is a part of the language's standard library. However, headers in an external C++ library such as Boost are not allowed.
  • Use of electronic devices other than the computer is strictly prohibited
  • Teams are ranked according to which has solved the most problems, with ties broken by time taken to solve

The main contest will start at 11:30PM MDT on Saturday, October 26th. The practice contest starts one hour before the main contest and will last 45 minutes. Participation in the practice is optional but recommended for new competitors.

Any disrespectful behavior towards the Competitive Programming Club, our sponsors or participants can result in disqualification from the event.

Permissible Internet resources:

If your code is found to be plagiarized or taken from an internet resource other than the permissible ones listed above, you will be immediately disqualified and banned from future competitions.
Preparation & Strategy

If you want a leg up on the competition, there are some preparation opportunities available:

  • In Calgary, the Competitive Programming Club meets every Tuesday from 4:00PM - 6:00PM at Science Collaborative Space (ST 142) on the main floor of the science theaters building.
  • The UVa Online Judge contains many programming puzzles for self-directed practice

Some time-tested strategies for during the competition:

  • Read all the problems, identify the easy ones, and solve them first
  • If you're having trouble identifying easy problems, look at the scoreboard to see what others are solving
  • Computer time is very valuable, so sketch out your program on paper before coding it (unless it's trivially simple)
  • Debugging a program on paper is more effective than sticking print statements everywhere, 99% of the time
  • Come up with your own test cases for your program, especially edge cases
Links

Arcurve Website | Twitter | Facebook

CPC Website | Facebook | Twitter | Mailing list

UofA Website

UofL Website