Course expectations & grading information are on the course syllabus. All the materials for the e-campus version of this course are available to you here. Note that the materials posted below are a subset of the e-campus materials; the e-campus materials are recommended for additional resources.

**Office Hours:**

- Tuesday & Thursday immediately after class until 11:50AM wth Prof. Borradaile.
- TA office hours Monday & Wednesday 11.55AM-12.55PM. Location KEC Atrium.

**Announcements & FAQ:**

- Solutions to assignments are emailed to the class list after their due date.
- Group assignment due dates are listed in TEACH 24 hours late because assignments submitted within 24 hours of the due date (as posted on this page and on the assignment pdf) are accepted without penalty. Help on assignments during this 24 hour period will not be given -- the 24 hour lee-way on group assignments is intended for emergencies only. This rule only applies for group assignments.
- Your grades are available here; you need to log in with your OSU login information. If a grade has been misrecorded, please contact Farzad.

## Assignments and class materials

Please check this webpage at least weekly. Timely information will be emailed to the class email list.

**Asymptotic Analysis** (Week 0-1)

- Material covered in class: material under the heading
*Run Time Analysis*(the practice problems are largely the same as for your practice assignment below) - Review by Tuesday, September 29: What is an algorithm? (sections 0.1 to 0.4) and review recursion by playing Robozzle, solve puzzles 330, 536, 656.
- Practice Assignment 1 due Thursday, October 1 at 10AM
- Group Assignment 1 due Tuesday, October 6 at 10AM

**Dynamic Programming** (Weeks 1-3)

- Material covered in class: Dynamic Programming (sections 5.1 to 5.5), The Knapsack Problem (read intro, definition and DP solution to 0/1 problem
- Practice Assignment 2 due Thursday, October 15 at 10AM
- Group Assignment 2 due Tuesday, October 20 at 10AM

**Greedy Algorithms & Proofs of Correctness** (Weeks 3-5)

- Review before class: Minimum Spanning Trees (sections 20.1 to 20.2)
- Material covered in class: Minimum Spanning Trees, Scheduling (section 7.2) and Huffman Encodings (section 7.4)
- Bonus material: Shortest Path Trees (sections 20.1-20.4), and a Proof of Correctness for Dijkstra's algorithm by induction
- Handouts: Pseudocode for MST Algorithms
- Practice Assignment 3 due Tuesday October 27

**Bonus office hours** Wednesday October 28, 9.15-10.45AM, KEC 3071 (with Prof. Borradaile)

** Midterm** (Week 5: Thursday October 29 at 10AM, on above topics)

*Note: To get a C or better in this class you must earn at least 50% on***both**the midterm**and**final.

**Divide & Conquer Algorithms and Recurrence Relations** (Weeks 6-7)

- Material covered in class: the material under the heading "Divide and conquer & recurrence relations"
- A description of where log(log(n)) comes from
- Practice Assignment 4 due Thursday, November 12 at 10AM
- Group Assignment 3 due Tuesday, November 17 at 10AM

**Linear Programming** (Week 8)

- Material covered in class: the material under the heading "Linear Programming"
- Practice Assignment 5 due Thursday, November 19 at 10AM
- Group Assignment 4 due Tuesday, December 1 at 10AM

**P & NP** (Weeks 9-10)

- Material covered in class: (most of) the material under the heading "Computational Complexity" and the material under the heading "NP-completeness and reductions"
- Practice Assignment 6 due Thursday, December 3 at 10AM

** Final Exam** (Week 11, Friday, December 11, 9.30-11.20 in the same room as class)

resources

courses

- CS523, Winter 2017
- CS523, Spring 2016
- CS325H, Winter 2016
- CS325, Fall 2015
- CS507, ECE507, Fall 2015
- CS523, Spring 2015
- CS325, Winter 2015
- CS325, Fall 2014
- CS523, Spring 2014
- CS325, Fall 2013
- CS515, Fall 2013
- CS523, Spring 2013
- CS325, Fall 2012
- CS523, Spring 2012
- CS515, Fall 2011
- CS523, Spring 2011
- CS325, Winter 2011
- CS515, Fall 2010
- CS521, Spring 2010
- CS325, Winter 2010