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. Kattis has graciously sponsored the judging platform.
|
|
- Register on Eventbrite (closes on Thursday, March 11, 2021 at 11:00 PM)
- Enrolled in a post-secondary institution in Calgary, Alberta (undergraduate or graduate)
- Students from University of British Columbia and University of Alberta are eligible for prizes
- 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 (or not currently taking) a data structures course,
e.g. CPSC 319/331
- Saturday, March 13, 2021 from 10:15am - 6:20pm
- Remote
Don't have a group of people to participate in the event with but you're looking to meet some new people? No worries! We'll be working to team folks up after you sign up on this Google sheet form here
The contest itself is a collection of 6-10 problems to be solved using C, C++, Java, Python, or Haskell. Team rankings are decided first by number of problems solved, and second by time taken to solve. 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 solution to the problem, you must submit the solution on Kattis. 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 are C, C++, Java, Python 2, Python 3, and Haskell
- 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.
- All contestants can work on their personal computer. Any team member can submit a solution to Kattis.
- Resource access is restricted to standard library and language documentation, the contest website, and the I/O cheat-sheet (linked below)
- 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.
- Aside from the two main points above, all other references materials on the internet 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
- Opening Contest presentation by Synopsys and the CPC. The speech will be delivered by Tyler Sims; the CTO of Synopsys. the CPC will then go over general contest rules and procedures.
- Practice contest to help familiarize competitors with contest system
- Lunch break
- Official contest start (12:00pm)
- Scoreboard will be frozen for final hour (4:00pm) so winners are not known until later presentation
- Solutions to Problem Set
- Presentation by Synopsis
- Small Bag Prizes will be drawn
- Presentation of problem statistics (number of attempts, successes, etc.)
- Announcement of Div 1 & 2 winners and presentation of prizes
- Synopsis SWAG prize draw
- The Competitive Programming Club meets every Wednesday from 6:00 - 8:00pm through youtube live for coaching and practice. Join our discord for more info.
- Kattis, Codeforces and UVa Online Judge contain many programming puzzles for self-directed practice
- 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!
- Please check back soon!
Synopsys technology is at the heart of innovations that are changing the way we live and work. The Internet of Things. Autonomous cars. Wearables. Smart medical devices. Secure financial services. Machine learning and computer vision. These breakthroughs are ushering in the era of Smart, Secure Everything―where devices are getting smarter, everything’s connected, and everything must be secure. Software Integrity, Synopsys’ end-to-end offering, gives companies a turnkey, scalable approach for minimizing software-related business risks, maximizing release predictability and speed, and ensuring internal and external standards compliance. Our software has been used in projects such as NASA's Mars Rover mission-critical software and CERN's Large Hadron Collider software. The Synopsys Software Integrity Group has offices worldwide, like London, Tokyo, San Francisco, Calgary and many more locations, and continues to grow all over the globe.