User Tools

Site Tools


CS 39000-CP0: Competitive Programming

Development of strategies, techniques, and skills used in competitive programming contests. Topics include problem solving and programming techniques and algorithms. Course format consists of a twice-weekly meetings that includes brief discussion, problem solving and programming practice, a practice programming contest, and a wrap-up discussion.

Grading is based on class attendance and participation, problem solving skills, and programming contest progress and results.

Credit: 1 hour. Prerequisite: CS 25100 (Data Structures and Algorithms).

Text: Competitive Programming 2, by Halim and Halim, Lulu. You may get either the original (2011) A5 edition or the new (2012), larger A4 edition.

Class is over for the semester!
Congratulations to all ACM ICPC ECNA RPC participants. Results are at the Ashland site. Good luck next year!

Course/Lab Meetings (Required)

  • 3:00-5:50 Thursdays (Aug 23-Nov 1, 2012)
  • LWSN B146

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email

Other Events (Mark Your Calendar!)

  • Sep. 29, 3:00-8:00 pm: Practice Contest (pizza included!). All Purdue students welcome (not just CS 39000-CP0 students). Sign up here for “East Central NA Qualifier”. Send me with your ICPC login (preferably your Purdue email address).
  • November 2-3, 2012: ACM Regional Contest. Leave Friday (11/2) at 1:00 pm for Cincinnati, compete Saturday (11/3) 10:00-3:00, return Saturday evening. Only the 12 students who are chosen to compete in the contest are required to attend.

Class/Lab Schedule for Fall 2012

Other Notes

110104 (706)
110204 (843)
110208 (10149)
110307 (10150)
110402 (120)
110403 (10037)
110404 (10191) [ not listed at website ]
110407 (10152)
110508 (10202)
110705 (10168)
110802 (10181)
110808 (10270)
110906 (10051)
111002 (10054)
111007 (10249)
111008 (10092)
111101 (10131)
111106 (10261)
111305 (10167)
111307 (10209)
  • Another useful source of competitive programming tips comes from Andrew Harrington.

Statement Concerning Campus Emergencies

Campus Emergency Information

In the event of a major campus emergency, course requirements, deadlines, and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Here are ways to get information about changes in this course: this web page, my email address (, and my office phone (494-6184).

Schedule for Fall 2011 (FYI Only)

Topics by week (based on Skiena textbook and course topics; subject to change):

  1. [09/06]: Strings, Sorting, Arithmetic and Algebra | Contest
  2. [09/13]: More Strings, Sorting, Arithmetic and Algebra, with Combinatorics | Contest
  3. [09/27]: Number Theory | Contest
  4. [10/11]: fall break (no class) | Team Practice Contest
  5. [10/18]: Graph Traversal, Graph Algorithms, Dynamic Programming | icpc_logistics | Competition Notes | Team Practice Contest
  6. [10/25]: competition make-up 1 (no class)
  7. [11/01]: ICPC Competition I | Lecture Notes | Local Instructions | Queue ICPC Site
  8. [11/08]: ICPC Competition II
  9. [11/15]: ICPC Competition III
  10. [11/22]: Thanksgiving
  11. [11/29]: competition make-up 2 (no class)
  12. [12/06]: ICPC Tournament (bonus points awarded)

Old textbook: Programming Challenges, Steven S. Skiena and Miguel Revilla, Springer, 2003 (ISBN 978-0387001630).

competitive_programming_2012.txt · Last modified: 2012/11/06 08:22 by jtkorb