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)
- 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 team@piazza.com.
Other Events (Mark Your Calendar!)
- 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
- [09/06]: Announcements, ACM qualifier, DS notes. Halim DS Slides. This weekend: Hackathon and Hacker Games. (Contest: Non-Linear Data Structures)
- [10/11]: Announcements and Notes. Contest: Graph Traversal (also, for help testing, try using the Dominator Data)
- [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)
- [11/01]: Contest Notes. Contest: PC^2 Team Set
Other topics to be sprinkled in:
- [00/00]: Contest: Minimum Spanning Tree
- [00/00]: Contest: All-Pairs Shortest Path
- [00/00]: Contest: Max Flow
Other Notes
- Things to do:
- Sign up at Piazza: https://piazza.com/purdue/fall2012/cs39000cp0
- Sign up at UVa: http://uva.onlinejudge.org (if you get a “redirect loop”, delete your onlinejudge cookies)
- Register your UVa user name (“handle”) at: http://pc.cs.purdue.edu/progress (use Profile button at top)
- Halim downloadable code from the book
- Tutorial on Segment Tree and Lowest Common Ancestor
- UVa problem output generator, producing correct output from your choice of input
- Blackboard Learn link
- Instructions for competing remotely with the PC^2 software.
- RPC Pictures from 2010. Enjoy!
- There are at least 19 problems that are not correctly judged by the Programming Challenges (PC) website (http://www.programming-challenges.com). Here are the problems with the corresponding UVA (http://uva.onlinejudge.org/) problem number in parenthesis (from here):
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
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):
- [08/23]: Getting Started | Contest
- [08/30]: Data Structures | Contest
- [09/06]: Strings, Sorting, Arithmetic and Algebra | Contest
- [09/13]: More Strings, Sorting, Arithmetic and Algebra, with Combinatorics | Contest
- [09/27]: Number Theory | Contest
- [10/11]: fall break (no class) | Team Practice Contest
- [10/18]: Graph Traversal, Graph Algorithms, Dynamic Programming | icpc_logistics | Competition Notes | Team Practice Contest
- [10/25]: competition make-up 1 (no class)
- [11/08]: ICPC Competition II
- [11/15]: ICPC Competition III
- [11/22]: Thanksgiving
- [11/29]: competition make-up 2 (no class)
- [12/06]: ICPC Tournament (bonus points awarded)
Old textbook: Programming Challenges, Steven S. Skiena and Miguel Revilla, Springer, 2003 (ISBN 978-0387001630).