CS 325: Analysis of Algorithms (Fall 2017)

Instructor: Amir Nayyeri (Office hours: Wed 3-4pm at KEC 3061)

TA: Evgenia Chunikhina (Office hours: Fri 9-10am at KEC Atrium), Zhicheng Fu (Office hours: Mon 3-4pm at KEC Atrium)

Lectures: Tue, Thr 10:00am-11:20am in KEAR 112


Tentative topic list: Asymptotic running time analysis, Recursion, Divide and conquer, Dynamic programming, Greedy algorithms, Linear programming, Computational complexity (P and NP), Randomization*, Approximation algorithms*.

Prerequisites: CS 261; Data structures and introductory discrete mathematics, trees and graphs, data structures such as priority queues, basic proof technique including induction.

Evaluation:

Resources:


Announcements:


Homework:


Lectures:

  1. Thr 9/21: Course introduction, Asymptotic running time analysis.

  2. Tue 9/26: Asymptotic running time analysis, also see these videos by Tim Roughgaden.

  3. Thr 9/28: (1) Recursion (Sections 1.1 to 1.3); Hanoi Tower, simplify and delegate.

  4. Tue 10/3: (1) Induction (Section 6); Tiling by triominos, Pancake Sorting. (2) Divide and conquer. PA1 due.

  5. Thr 10/5: Divide and conquer; Binary search, Merge sort.

  6. Tue 10/10: Divide and conquer; Quick sort/select, Karastuba's multiplication. GA1 due.

  7. Thr 10/12: Dynamic programming; Introduction, number of binary strings with no '11' (Fibonacci numbers).

  8. Tue 10/17: (1) Maximum weight independent set on a path, (2) Dynamic programming; Longest increasing subsequence.

  9. Thr 10/19: Dynamic programming; Longest increasing subsequence, longest common subsequence.

  10. Tue 10/24: Dynamic programming; Longest common subsequence, Edit distance.

  11. Thr 10/26: Graphs.

  12. Tue 10/31: Midterm. Midterm of Fall 16. , Midterm solutions.
    Grades: 32 32 31 30 30 29 29 28.5 28.25 27 27 26.5 26 26 26 26 25.5 25 25 25 24.5 24.5 24.5 24.5 24 23.25 23.25 23 23 23 22.5 22.5 22.5 22.5 22.5 21.5 21.5 21.25 21 21 21 20.5 20.5 20.5 20.25 20 20 19.5 19.5 19.5 19 18.75 18.5 18 18 17.75 17.5 17.25 17 17 17 17 17 17 17 16.75 16.5 16 16 16 16 15.75 15.5 15.5 14.5 14 13.5 13.5 13 12.5 12.25 12 12 11.5 11.25 11.25 10.5 10.5 10 9.75 9.5 9

  13. Thr 11/2: Minimum spanning trees, Boruvka.

  14. Tue 11/7: Minimum spanning trees, Generic MST, Boruvka, Kruskal.

  15. Thr 11/9: Minimum spanning trees, Prim, fast implementations.

  16. Tue 11/14: (1) Minimum spanning trees, Kruskal. (2) Greedy Algorithms. GA3 due.

  17. Thr 11/16: Greedy Algorithms.