USC Programming Contest


The USC Programming Contest is an event organized once per semester for undergraduate and beginning graduate students. It is a programming contest for individual participants.This page tries to give you all necessary information about the contest.

Who is allowed to participate?

The contest is open to all students at the University of Southern California, regardless of year or major, so long as they satisfy at least one of the following two:

  • Student was born in (current year - 23) or later.
  • Student started college for the first time in (current year - 4) or later.

Students who meet neither requirement (i.e., are 24 years or older and in their 5th year of study or more) are not eligible.

Why would I want to participate?

There are lots of reasons why you would want to participate. First and foremost, we think that it's a fun event. If you are looking for a more material incentive, you can win pretty cool prizes, and every participant gets free pizza and soda, and usually a contest shirt and swag from our sponsors. If you make it on the USC team, you get to represent USC at the Regional contest, and might win an all expenses paid trip to the world finals. On the more career-oriented side, the contest lets you hone your problem solving skill and gives you practice in programming and solving algorithmic questions. Doing well in the contest looks great on your resume, and contest sponsors go to great lengths in trying to hire successful contestants.

What is the time commitment for me?

This is not a long-term project contest: The time commitment is one Saturday or Sunday afternoon. If you are interested, you can improve your chances by practicing beforehand, or you can try out for one of the USC teams for the International Contest afterwards. But none of this is mandatory.

How do the contests work?

The first hour is always a practice contest, which is highly recommended in order to familiarize yourself with the contest environment. (In the past, first-time participants who missed the practice contest have often had lots of trouble later.) The contest itself is held immediately afterwards for four hours, followed by a 20 minute pizza party and the award ceremony.

When and where is the next contest?

We usually have one contest per semester: one early in the Fall semester, and one late in the Spring semester. Contests are typically held in RTH 109/115. If you want to be notified of future contests as soon as they are scheduled, you can subscribe to our mailing list.

How difficult are the problems?

It's hard for us to predict how difficult the problems will look to any one person but we encourage you to look at some example problems. Check out the problems from past contests and the practice links below.

Does it cost anything?

The contest is absolutely free to all participants.

What can I win?

The first four prizes are typically Amazon gift cards. As of Spring 2016, the prize structure is as follows: The first four overall finishers receive $100, $75, $50, and $25, respectively. The top four undergraduates also receive $100, $75, $50, and $25, respectively. Contestants receive all the prizes they have earned, i.e., an undergraduate placing among the top four overall collects both prizes.

In addition, we often have many more prizes, such as games from Electronic Arts and various other gadgets from other sponsors. We also typically have a contest-specific T-shirt for every participant who attends the award ceremony. We do not hold prizes for participants who leave before the award ceremony.

How do I register?

We post a registration link on top of the main page as soon as registration for a particular contest opens. When you register, you need to provide your name, USC ID, major/degree program/year, and year of birth.

What happened at past contests?

You can see the problem sets, sample solutions, results and pictures of past contests by following the links below.

What's up with that International Contest?

The best participants at the contests, as well as anyone who shows specific interest, are invited to try out for the USC teams for the International Collegiate Programming Contest (ICPC). The ICPC is a huge contest, in which over 1800 schools participate worldwide. During the tryouts, we have simulated contests, and teach you language-specific tricks and algorithms that are commonly necessary in the ICPCs. The USC teams will first represent USC at the Southern California Regional ICPC and, if they place high enough (top 3-4 teams, typically), travel to the North American Championship. The top 15-20 teams from that contest get an all-expenses paid trip to the world finals, typically in fun locations. In Fall of 2011, USC for the first time had a team winning the Regional Contest, and went to the world finals. Since then, we have been placing highly every year, going to the world finals most years. We hope you will help us keep up this great streak.

I want to get serious. How can I practice?

You can greatly improve your chances to do well in the contest by practicing beforehand. There are three areas that help:

  • Know your language, whether it is Java or C/C++. Often, there are cool features that make writing programs a lot easier. And you shouldn't get stuck on syntax problems during the contest.
  • Know your algorithms. Most contest problems involve standard algorithms from the following areas: sorting, searching (including depth-first search, breadth-first search and backtracking), dynamic programming, graph algorithms and geometric algorithms. Identifying the problem and knowing the algorithm to solve it makes you a lot quicker in solving a problem.
  • Most importantly: Practice on old problems. The style of contest problems might take a while to get accustomed to. And problems often enough resemble each other quite a bit, as there are only so many programming problems one can come up with. Having solved 999 problems previously, you will find the 1000th problem a lot easier to solve. A great place to look up literally thousands of old problems is the ACM-ICPC Archive. Two other very good links are Kattis and Codeforces, which are online judges that allow you to test your solutions.

Which programming languages are supported?

We try to stick closely to the rules of the world finals, which means that we support Java and C/C++, in the installation available in the lab that we use.

What do the official rules look like (a.k.a. What tools can I use)?

The complete rules are a little lengthy, so they are on their own Rules Page. Perhaps the most important point is that you may bring any printed or written material to the contest, but no electronic devices (such as laptops, hand-held computers, smartphones, or even calculators).

Are there other fun contests at USC?

ACM, AthenaHacks, and HackSC organize longer-term project contests and hackathons. In those, you usually work as teams, and try to come up with a project that has the core of something useful (and may develop into such a useful product eventually).

We also frequently get asked about whether there are programming contests for students who exceed our age restrictions. We have no plans to organize such a contest, but if you are very enthusiastic about it, you could probably make it happen, and we will be happy to give you some pointers.

How do I get informed about upcoming contests?

To receive announcements about the contests, you can subscribe to the USC contest mailing list.

Whom do I contact for additional information?

For more information, you can send an e-mail with your question to

The USC Programming Contests are organized by David Kempe and USC's ACM student chapter. Please contact us at with any questions.

Overview Details Rules

Sponsors in Spring 2019
Electronic Arts
Northrop Grumman
Marconi Foundation