USC Programming Contest

Welcome!

Recent News (04/25/2026)

The next USC Programming Contest will be held on Sunday, September 27, 2026, from 1:00-6:00. As in the past, it will be held in rooms RTH 105/109/115. The practice contest (highly recommended, in particular for first-time participants) will be from 1:00-2:00, while the "real" contest runs from 2:00-6:00.

To register for the contest, please first check the eligibility requirements, and make sure you are eligible. This year, eligibility is restricted to students born in 2003 or later, or who started their first undergraduate (at USC or elsewhere) in 2022 or later. If you are eligible, you can register using the Fall 2026 contest registration form. The registration form contains a pre-contest question. If attendance exceeds the lab capacity (which has not happened in a few years), students who have answered the question correctly will get precedence over students who have not done so.

Sign up for the contest mailing list below to be kept up to date on future contests; the contest list always finds out as soon as we know. If you have questions not answered on this page, please e-mail the address given below.

Overview

Have fun!
Extend your resume!
Show how smart you are!
Impress your friends!
Win gift cards and other prizes!
Represent USC at the International Collegiate Programming Contest!

Do you like to solve problems like the following ones?

  • To pay your friends a dollar, you can give them, for example, four quarters, or five dimes and ten nickels. Write a program that calculates how many different combinations of coins there are that make up a given amount of money (say, 20 dollars) from pennies, nickels, dimes and quarters.
  • You are given the description of a lake as a polygon, as well as your own position in a boat somewhere on the lake. When you throw a rock in the water, the waves travel away from the impact point at a speed of 1 meter per second. Write a program to calculate the earliest time at which a wave will hit the shore.
  • You are given the names of n people who are to be divided into k alphabetical segments, for instance, to stand in line for registration at USC. An "alphabetical segment" consists of all people whose last name starts with a letter between two given endpoints (for example, D-H). Write a program that finds a division into k alphabetical segments such that each person is in exactly one segment, and the number of people in the largest segment is minimized.

Participate in the USC Programming Contest!

The contest is open to all undergraduate and graduate USC students, regardless of major, as long as they were born in (current year - 23) or later, or started college for the first time (in any subject) in (current year - 4) or later.

We use the USC Programming Contests to pick students that we train for the ICPC Regional Programming Contest. If you like all details of the USC Programming Contests and would like to keep updated about the contests, you can subscribe to the USC contest mailing list.


The USC Programming Contests are organized by David Kempe and the USC ACM student chapter. Please e-mail USCContest@gmail.com for more information.




Overview Details Rules


Sponsors in Spring 2019
Electronic Arts
Google
Northrop Grumman
Marconi Foundation

(contest.usc.edu)