====== 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 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]]. ====== Course/Lab Meetings and Events (Required) ====== * Weekly attendance in lab (see schedule below) * ACM ICPC regional competition in Cincinnati, Ohio (Saturday, November 9; leave campus at 1:00 PM on 11/8/13, return by 9:00 PM 11/9/13) ====== Tools ====== * Progress [[http://pc.cs.purdue.edu/progress|Site]] * Jerry's [[https://github.com/jma127/pcu/blob/master/defaulttemplates/stdio.cpp|C++ template]] * Jerry's [[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 ====== Lab Schedule for Fall 2013 ====== //Class meeting are Thursdays, 3:00-5:50, August 22-October 31, in LWSN B146.// - [08/22]: Course introduction and "getting started" problems. [[https://docs.google.com/presentation/d/1NfvaYM-vYsHFB02osiyJTVdEqsoKW_GzofCMcPRw-mM|slides]] [[http://www.cs.purdue.edu/homes/jtk/vc1301.html|contest]] - [08/29]: Ad hoc problems. [[https://docs.google.com/presentation/d/18uAxegbrlWGNuWT30MXpoLPmIOm-aS0szgjTJMnxJLc/edit?usp=sharing|slides]] [[http://uhunt.felix-halim.net/vcontest/4fd03938449c95ce5769d780c545119c|contest]] - [09/05]: Data Structures, Part 1 [[https://docs.google.com/presentation/d/1nc9F7ZriGzcI5qjPr5SQ0Re5Wxl3HUymqSZyQqZ9CqM|slides]] [[http://umt.boocode.com/viewcontest.php?id=1331|contest]] (password 1234) - [09/12]: Data Structures, Part 2 [[https://docs.google.com/presentation/d/1fpCdZQ0EFWI-8INa3qocxc3FYxsqrqrKd89CkA_79NA|slides]] [[http://umt.boocode.com/viewcontest.php?id=1332|contest]] (password 5678) - [09/19]: Problem-Solving Paradigms [[https://docs.google.com/presentation/d/10QSVJ423Ou6DOvoN22-y3D6jeuLGKNs82H1Ul8zlsJ4|slides]] [[http://umt.boocode.com/viewcontest.php?id=1343|contest]] (password 9012); do 725 and 750 first - [09/26]: Divide & Conquer and Greedy Algorithms [[https://docs.google.com/presentation/d/1kCiFGujUVuWDsuDpUudIOQYwDPNelY07DAF6_Ysu1C8|slides]] [[http://umt.boocode.com/viewcontest.php?id=1352|contest]] (password 3456); do 10611 and 10656 first - [10/03]: Dynamic Programming Part 1 [[https://docs.google.com/presentation/d/1bqA5xyHZ6Ub2R2hD4YnRRcZO2OQ8sDeQ1rvrrBXN708|slides]] [[http://umt.boocode.com/viewcontest.php?id=1366|contest]] (password 0123) - [10/10]: Dynamic Programming Part 2 [[https://docs.google.com/presentation/d/1urxifkKvnoEk2gbX1slKmelDdEAL5GcsnvZYEeWMO0s|slides]] [[http://umt.boocode.com/viewcontest.php?id=1362|contest]] (password 0123) - [10/17]: Graph Algorithms [[https://docs.google.com/presentation/d/1JAYCd9_9F3cDEeMp3i33ct9DhUX-jMDtqgwspBapb_0|slides]] [[http://umt.boocode.com/viewcontest.php?id=1370|contest]] (password 1234) - [10/24]: More BFS [[https://docs.google.com/presentation/d/1uGqixVGNjo8qca5Dl2SmC_vuMT_7GImztjUQggg4itE|slides]] [[http://umt.boocode.com/viewcontest.php?id=1376|contest]] (9876) - [10/31]: [[https://docs.google.com/presentation/d/1MgVVtCQRCHSEkDL61L0-WidNXH-ROcOY-DUw_Kt4xXA|Competition Notes I]] - [11/07]: [[https://docs.google.com/presentation/d/1WjMFA9H1QtmHarkJmyIrbzbM1-y7c5Kwt-YUL2YA5Yw|Competition Notes II]]