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