====== 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 weekly meetings that include brief discussion, problem solving and programming practice, a practice programming contest, and a wrap-up discussion. Grading is pass/fail and 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 3//, by Halim and Halim, Lulu, 2013. [[http://www.lulu.com/shop/steven-halim/competitive-programming-3/paperback/product-21059906.html|3rd edition]]. Meeting Time: Fridays, 1:30-4:20 through November 7, 2014. Place: LWSN B148. ====== Tools and Resources ====== * Progress [[http://pc.cs.purdue.edu/progress|Site]] * Coding templates from [[https://www.linkedin.com/in/maj127|Jerry Ma]]: * [[https://github.com/jma127/pcu/blob/master/defaulttemplates/stdio.cpp|C++ template]] * [[https://github.com/jma127/pcu/blob/master/defaulttemplates/stdio.java|Java template]] * Contest [[http://umt.boocode.com/index.php|Site]] * UVa [[http://uvatoolkit.com/problemssolve.php|Problem Database and Solver]] site to generate correct output for a problem * UVA [[https://chrome.google.com/webstore/detail/uva-quick-access-tool/ohmmnbcombfdichbnnlhkijfdmkgllhe|Quick Access Tool]] for Chrome--makes submissions easier ====== Course/Lab Meetings and Events (Required) ====== * Weekly attendance in lab (Fridays, 1:30-4:20; students enrolled in Software Testing are allowed to leave early) * Participation in ACM ICPC qualification contest, Saturday, September 27, 2014. This five-hour competition is online 3:00 PM to 7:00 PM ET; location TBD * For those who qualify: Participation in the ACM ICPC regional competition in Cincinnati, Ohio, November 7-8. Leave campus at 1:00 PM on the 7th, return by 9:00 PM the 8th) ====== Weekly Notes ====== In reverse chronological order... * [10/31]: APSP and Max Flow. [[https://docs.google.com/presentation/d/1ZSL6TYBawdgIm0Rgo5qb4_W6sRU_KuJn5jQAVXqGXwo|Slides]] (Contest on PC^2.) * [10/24]: MST and SSSP. [[https://docs.google.com/presentation/d/1rUrTHSa7FI6CR7zFB9c2heKoIjCjqo77iAj1wRcOJrU|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1482|Contest]] (code 1111) * [10/17]: Graph Traversal. [[https://docs.google.com/presentation/d/1d5XciFjpmrOVrqTzlkoEfedHJjbodfQO9ffB07BHfoo|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1472|Contest]] (code 1212) * [10/10]: Dynamic Programming Part 2. [[https://docs.google.com/presentation/d/1MGtwDAyAsjKo_VtRS4z8NyDA3pDOzqqgXQuJMuYpUDE|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1471|Contest]] (code 2525) [**attendance optional (contest makeup day)** ] * [10/03]: Dynamic Programming Part 1. [[https://docs.google.com/presentation/d/1r6FWiBskuS8uo3ih0y4r68zc-fFGhAbAW0KdHajz-zo|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1470|Contest]] (code 7331) * [09/26]: Problem-Solving Paradigms. [[https://docs.google.com/presentation/d/1d_f6LhDPbw4PfezMFXH0ToMJTvel00lIWA5sckc0Ot4|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1343|Contest]] (code 1313) * [09/19]: Data Structures Part 2. [[https://docs.google.com/presentation/d/1kwHMZLLXnYWLm9h4C86nusY31EQpe9gyxypJRa5URMU|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1332|Contest]] (code 1337) * [09/12]: Data Structures Part 1. [[https://docs.google.com/presentation/d/16tSqG3EIUfIzvHpJcGUOR-QeJlter4uaiqbfhw1pB9Y|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1331|Contest]] (code 4321) * [09/05]: "Ad Hoc" problems. [[https://docs.google.com/presentation/d/17_Oi8Y09NE9IVzkXLc5Nv_VmKP895O0ajYoMte3lrco|Slides]] [[http://umt.boocode.com/viewcontest.php?id=1460|Contest]] (code 345) * [08/29]: Course introduction and "getting started" problems. [[https://docs.google.com/presentation/d/1SC91g1fOrlf8_5EmY_0LT_V9H_QBl0TLQHIQin-QWIg|Slides]] [[http://bit.ly/cpweek01|Contest]] (code 123)