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 4PM wth Prof. Borradaile.
- 10-11 AM Monday & Wednesday in the Atrium with Spencer.
- 5-6 PM Tuesday & Thursday in the Atrium with Farzad.
*Bonus pre-exam office hours:*- Friday March 13 11-12.30 PM with Farzad in the Atrium
- Friday March 13 1-2 PM with Prof. Borradaile in KEC 3071
- Monday March 16 10-11 AM with Spencer in the Atrium

**Announcements & FAQ:**

- Solutions to assignments are emailed to the class list after their due date.
- Help on assignments after their due date (not the 'late' due date) will not be given -- the 24 hour lee-way on group assignments is intended for emergencies only.
- Your grades are available here. If you have a problem with a practice assignment grade, contact Shajith. If you have a problem with a group assignment grade, contact Spencer and/or 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 1)

- Material covered in class: notes, interactive practice questions and asymptotic notation cheat sheet
- Review by Thursday, January 8: 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 Tuesday, January 13 at 2PM)
- Group Assignment 1 (due Thursday, January 15 at 2PM)

**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 Tuesday, January 20 at 2PM)
- Group Assignment 2 (due Thursday, January 29)

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

- Review by Thursday, January 22: Minimum Spanning Trees (sections 20.1 to 20.2)
- Material covered in class: Minimum Spanning Trees, Shortest Path Trees (sections 20.1-20.4), Huffman Encodings (section 7.4)
- Handouts: Pseudocode for MST Algorithms, Proof of Correctness for Dijkstra's algorithm by induction
- Practice Assignment 3 (due Tuesday, February 3)

** Midterm** (Week 5, Thursday, February 5 in class, 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"
- Group Assignment 3 (due Tuesday February 24)
- Practice Assignment 4 (due Tuesday February 17)

**Linear Programming** (Week 8)

- Material covered in class: the material under the heading "Linear Programming"
- Practice Assignment 5 (due Thursday February 26)
- Group Assignment 4 (due Tuesday March 10)

**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, March 12)

** Final Exam** (Week 11, Monday 12-2 in Gilbert 124, focussed on post-midterm topics)

resources

courses

- CS523, Spring 2020
- CS515, Fall 2018
- CS325, Fall 2018
- 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