This course is designed to prepare you to compete in major programming competitions such as the International Collegiate Programming Contest (ICPC) and the Google Code Jam. We'll cover some details on these specific contests as well as general strategies for programming competitions and fast, efficient programming and a review of important algorithms and data structures important to a competitive environment. We'll be paying particular attention to the 2014 Midwest Regional ICPC on November 1st, and we encourage students to participate.

Much more detail on the specifics of the course can be found in the course outline:

Course Outline (PDF)

Students of the class may also want to visit the Piazza course site for discussions, etc.

We'll be using the following online judges during the course:

Google Code Jam

Timus Online Judge

Sphere Online Judge

Each class meeting will have lecture notes, homework, and potentially a video associated with it, which can be found below:

Pre-Class Questionnaire

Lecture Notes (PDF)

No lecture video available, sorry!

Homework (PDF)

Homework Solutions (PDF)

Sample Java Skeleton

Lecture Notes (PDF)

Lecture Video (Youtube)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

Lecture Video (Youtube)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

No lecture video available, sorry!

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

Lecture Video (Youtube)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

Lecture Video (Youtube)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

Lecture Video (Youtube)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

Lecture Video (Youtube)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

Homework (PDF)

Homework Solutions (PDF)

Lecture Notes (PDF)

No homework this week! But take a look at Brave Balloonists and solve it correctly for extra credit.

Lecture Notes (PDF)

Homework (PDF)

Lecture Notes (PDF) No homework for the last week of class!