EECS336: Design and Analysis of Algorithms (Winter 2015)

Important announcements will be posted on Canvas. Check regularly.

Overview

Algorithm design and analysis is fundamental to all areas of computer science and gives a rigorous framework for the study of optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer, dynamic programming, linear programming, network flows, reductions, and randomized and approximation algorithms. Important themes that will be developed in the course include the algorithmic abstraction-design-analysis process and computational tractability (e.g., NP-completeness).

Instructor

Shi Li

Email: [first name][dot][last name][at][northwestern][dot][edu]

Homepage: ttic.uchicago.edu/~shili/

Office hours: Thursdays, 1:00pm-3:00pm, Tech M128

Teaching Assistants

Name Email Type Office Hours
Biao He biaohe2014 at unw Grader 2:00~3:00 Tuesdays
Min-Hsiu Hsieh minhsiuhsieh2016 at unw Grader 2:00~3:00 Wednesdays
Hao Wu haowu1.2013 at unw Peer Mentor 4:00~5:00 Wednesdays
Ruiqi Yang ruiqiyang2014 at unw Peer Mentor 12:30~1:30 Mondays
Mingzi Yi mingziyi2014 at unw Peer Mentor 1:00~2:00 Fridays

Required Textbook

T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein.    Introduction to Algorithms.   3rd Edition, 2009, MIT Press.

Prerequisites

Lectures

Thursdays and Fridays, 3:30pm - 4:50pm

Discussion Sections

Tuesdays from Week 3 to Week 10. There are two discussion sections on each Tuesday of these weeks: one from 4:00pm to 4:50pm and the other from 5:00pm to 5:50pm. You can go to one of these two sections. Attendance is required.

Grading

Your final grade will be computed as follows: 70% for the 7 weekly problem sets: 8% + 8% + 8% + 10% + 10% + 10% + 16%; 10% for in-class test 1 and 20% for in-class test 2. There will be no final exam.

Tentative Schedule

WeekDateTopicsNotesReadingProblem Set
Week 1Jan 8 Syllabus and Introduction0, 1 1, 2, 3, 4.3, 4.4, 4.5
Jan 9Asymptotical Notations, Solving Recurrences2
Week 2Jan 15 Divide-and-Conquer, Strassen's Algorithm, Selection3 4.1, 4.2, 7,
9, C.1~C.3
PS #1 (8 points)
Due on Jan 23
Jan 16Divide-and-Conquer, Quicksort, Randomized Quicksort4
Week 3Jan 22 Greedy Algorithms, Activity-Selection, Kruskal 5 16, 23 PS #2 (8 points)
Due on Feb 3
Jan 23Greedy Algorithms, Prim 6
Week 4Jan 29 Dynamic Programming, Shortest Paths in DAG,
Matrix-Chain Multiplication, LCS
7 15.1~15.4,
24.1~24.2, 25.2
PS #3 (8 points)
Due on Feb 13
Jan 30Dynamic Programming, Bellman-Ford, 8
Week 5Feb 5 Floyd-Warshall, Dijkstra9 24.3,
26.1~26.2
PS #4 (10 points)
Due on Feb 24
Feb 6Network Flow, Ford-Fulkerson Method10
Week 6Feb 12 In-Class Test #1 Practice PS 1
Test 1 (10 points)
Feb 13 Max-Flow-Min-Cut
Week 7Feb 19 Maximum Matching, NP-Completeness 13,13(2) 34.1~34.2, 26.3 PS #5 (10 points)
Due on Mar 3
Feb 20NP-Completeness14
Week 8Feb 26 NP-Completeness15 34.3~34.5 PS #6 (10 points)
Due on Mar 13
Feb 27NP-Completeness16
Week 9Mar 5 NP-Completeness 29.1 Test 2 (20 points)
Mar 6In-Class Test #2
Week 10Mar 12 Linear Programming 29.2, 29.4,
35.1~35.2
PS #7 (16 points)
Due on Mar 20
Mar 13Duality of Linear Programming