Table of Contents

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)

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 team@piazza.com.

Other Events (Mark Your Calendar!)

Class/Lab Schedule for Fall 2012

  1. [10/11]: Announcements and Notes. Contest: Graph Traversal (also, for help testing, try using the Dominator Data)
  2. [10/25]: Teaming Notes. Contest: PC^2 Team Set; ECNA 2008 at OnlineJudge (link is flaky; when it works, it links to livearchive.onlinejudge.org)

Other topics to be sprinkled in:

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)

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 (jtk@purdue.edu), 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).