The Calgary Collegiate Programming Contest (CCPC) provides post-secondary students in Calgary with the opportunity to excel in an ACM ICPC-style programming competition. Students test their aptitude and knowledge 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 four hours. The CCPC is sponsored by Synopsys and provides a platform for the next generation of computing professionals to pursue excellence.

Division 1
First Place $1500
Second Place $750
Third Place $450
Division 2
First Place $300
Second Place $150
General Information Registration:

  • Register on Eventbrite (closes on Thursday, March 10, 2016 at 11:59pm)

In order to be eligible for prizes, contestants must be:
  • Enrolled in a post-secondary institution in Calgary, Alberta (undergraduate or graduate)
  • In teams of 1 to 3 members
  • Participating in the same division as everyone else on their team
  • (Extra requirement for Division 2) Students who have not taken a data structures course, e.g. CPSC 319/331
  • Saturday, March 12, 2016 from 10:00am - 5:30pm (coffee and lunch will be provided)
  • University of Calgary, ICT 121 and Math Sciences (map)
  • Suggested parking: Math Sciences parking lot, 612 Campus Pl NW
What to bring:
  • Student ID
  • Résumé for Synopsys (intern and full-time positions)
  • Any paper notes, code or textbooks
  • Scrap paper and pencils/pens
Contact us if you have any questions or need to modify your registration
Contest Format Teams of 1-3 students will compete to solve a set of 5-10 programming puzzles over a four hour period. The set will have a good mix of problems varying both in difficulty and subject domain. Most of the problems can be solved through cleverness rather than specialized knowledge, although the latter is an asset. Common subjects for problems include combinatorics, graph theory, number theory, and geometry.

For each problem, your program will be given input describing a test case. It must then provide appropriate output giving the answer to whatever problem was posed. Once you have written a program you believe solves the problem, you will submit the source code through a web interface. Your code will be subject to a large battery of tests. If your code returns correct output on every test case and runs within time and memory limits, the solution is accepted. Otherwise, it will be rejected. You will be told how your program failed, but will not be given details of the failed test case.

Official Rules:
  • Accepted programming languages include C, C++, Java, Python and Haskell
  • Input from standard in, output to standard out
  • Each team has access to exactly one computer, to be used for writing, testing, and submitting code solutions
  • Code solutions can be printed to debug them on paper and free up the computer
  • Internet access is restricted to standard library and language documentation, as well as the contest website
  • Any standard system software may be used during the contest
  • Teams have unlimited access to any written material they provide, such as textbooks, notes, and printed example code
  • 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
Contest Day Schedule 10:30 - 11:00 in ICT 121:
  • Competitor check-in: please bring your student ID
  • Coffee served
  • Receive your team logins
11:00 - 11:40 in ICT 121:
  • Presentation by Synopsys
  • Overview of rules and instructions
11:45 - 12:45 in the Computer Science Labs (MS First Floor):
  • Teams are assigned a computer and login information
  • Practice contest to familiarize competitors with contest system
  • Lunch is served
01:00 - 05:00 in the Computer Science Labs (MS First Floor):
  • Official contest begins
  • Scoreboard will be frozen for final hour so winners are not known until later presentation
05:00 - 06:00 in ICT 121:
  • Presentation of problem statistics (number of attempts, successes, etc.)
  • Presentation by Synopsys
  • Announcement of winners and presentation of prizes
  • Mingling with Synopsys employees and pizza served
Preparation & Strategies Preparation:
  • The Problem Solving Club meets every Wednesday from 6:00 - 8:00pm in MS 160 for coaching and practice
  • Codeforces and UVa Online Judge contain many programming puzzles for self-directed practice
  • Follow the PSC on Twitter to ask questions or participate in discussion under the #ccpc hashtag
  • Read the problems, identify the easiest 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)
  • Working together on a problem is usually a bad idea and just leads to confusion; assign problems, work in parallel
  • 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
  • Have fun!
Contest Pages & Resources Contest pages (links will be available the day of the contest): Language reference links (that can be used during the contest):
About Synopsys

Synopsys, the development testing leader, is the trusted standard for companies that need to protect their brands and bottom lines from software failures. More than 1,100 Synopsys customers use Synopsys's development testing suite of products to automatically test source code for software defects that could lead to product crashes, unexpected behavior, security breaches, or catastrophic failure. Our software has been used by some very cool projects, such as NASA's Mars Rover mission-critical software and CERN's Large Hadron Collider software. Synopsys is a privately held company headquartered in San Francisco, with offices in Boston, Calgary, London and Tokyo, and more than 275 employees worldwide.