Fall 2014
EECS 336: Design and Analysis of Algorithms
3:30--4:50 Tuesday and Thursday

Technological Institute M345

 

Department of Electrical Engineering and Computer Science
Northwestern University

class homepage: http://www.cs.northwestern.edu/~kao/eecs336-algorithms

 

(last updated 9/23/2014)

 

Important announcements. Check regularly.

 

Our first class is this Tuesday, 9/23.

See you then. (9/21/2014)

 

Synopsis:

The main purpose of this course is to learn how to formulate and solve computational problems rather than to learn about specific problems and their solutions. Towards this objective, the course will discuss broadly applicable concepts and techniques for formulating algorithmic problems, designing efficient algorithms, and analyzing their performance. Topics include greedy strategies; divide-and-conquer strategies; dynamic programming; efficient reductions and computational hardness; approximation algorithms; and randomized algorithms.

 

Instructor:

Ming-Yang Kao
Office: Tech M324
Phone: 847-230-9867
Email: kao@northwestern.edu
URL: www.cs.northwestern.edu/~kao
Office Hours: 1:00--2:00 Wednesday, 10:00-11:00 Friday, or by appointment.

 

Teaching Associates:

o   Kevin Chen (Peer Mentor)

o   Rishabh Gemawat (Grader)

o   Zeyu Wang (Peer Mentor)

o   Shimi Zhang (Grader)

 

Pre-requisites:

o   EECS 212 Mathematical Foundations of Computer Science

o   EECS 214 Data Structures and Data Management

 

Course Work and Grading Policy:

Your grade will be based on weekly reading assignments (0%), 9 weekly problem sets (3% for each of the first 8 problem sets, 6% for the ninth, 30% in total), two required in-class tests (35% each), and one optional in-class test (0%). There will be no final examination.

 

Your overall letter grade for this course will be curved, i.e., determined in part by your rank in this class.

 

o   Weekly Reading Assignments: Reading assignments will be posted on the class homepage. You are responsible for the materials that are assigned but are not covered in detail or at all in class. Some of such materials are covered in the prerequisites or even earlier courses.

 

o   Weekly Problems Sets: Starting the second week, a problem set will be posted on the class homepage on Tuesday and will be due at the start of class on the following Tuesday. You will have one week to work on each problem set. A total of 9 problem sets will be assigned.

 

o   Required In-class Tests: The first test will be on Tuesday, 10/21/2014. The second test will be on Tuesday, 11/18/2014.

 

o   Optional In-class Test: This optional in-class test will be held on Thursday, 12/4/2014. You are not required to take it, but if you take it and your score for it is higher than the lower of your scores for the two required tests, then your score for this test will replace that lower score.

 

o   Without a Dean's excuse or a doctor's letter, no late problem set will be accepted, nor will early or make-up tests be given.

 

Required Textbook:

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

 

Tentative Schedule:

This schedule is subject to modification. More details will be added as they become available.

 

o   Topic 1 (1 meeting): Syllabus and Introduction.

o   Topic 2 (3 meetings): Divide-and-Conquer Strategies.

o   Topic 3 (2 meetings): Dynamic Programming.

o   Topic 4 (2 meetings): Greedy Strategies.

o   Required In-class Test #1 (1 meeting): Tuesday, 10/21/2014. This test will cover Topics 1, 2, 3, and 4.

o   Topic 5 (2 meetings): Amortized Analysis.

o   Topic 6 (5 meetings): Efficient Reductions & Computational Hardness.

o   Required In-class Test #2 (1 meeting): Tuesday, 11/18/2014. This test will cover Topics 5 and 6.

o   Topic 7 (3 meetings): Approximation Algorithms & Linear Programming.

o   Optional In-class Test (1 meeting): Thursday, 12/4/2014. This test will cover Topics 1 through 7 with emphasis on Topic 7.

 

Weekly Reading Assignments and Problem Sets:

This schedule is subject to modification. More details will be added as they become available.

 

Week 1. (9/23 and 9/25)

o   Reading Assignment: Chapters 1, 2, 3, and 4.

o   The first problem set will be posted next Tuesday.

 

Week 2. (9/30 and 10/2)

o   Reading Assignment: Chapter 4, Appendix C, Chapter 9, and Chapter 30.

o   Problem Set #1: posted 10:30AM, 9/30/2014.

 

Week 3. (10/7 and 10/9)

o   Reading Assignment: Chapters 15 and 25.

o   Problem Set #2: posted 8:30AM, 10/7/2014.

 

Week 4. (10/14 and 10/16)

o   Reading Assignment: Chapters 16, 23, and 24. (Note: Chapter 23 uses materials from Chapter 21, namely, data structures for disjoint sets.)

o   Problem Set #3: posted 8:25AM, 10/14/2014.

 

Week 5. (10/21 and 10/23)

o   Required In-class Test #1 on Tuesday, 10/21/2014.

o   Reading Assignment: Chapter 17 for the discussion on Thursday.

o   Problem Set #4: posted 7:45PM, 10/20/2014.

 

Week 6. (10/28 and 10/30)

o   Reading Assignment: Chapter 17 for the discussion on Tuesday. Chapter 34 for the discussion on Thursday.

o   Problem Set #5: posted 8:30AM, 10/28/2014.

 

Week 7. (11/4 and 11/6)

o   Reading Assignment: Chapter 34.

o   Problem Set #6: posted 9:30PM, 11/03/2014.

 

Week 8. (11/11 and 11/13)

o   Reading Assignment: Chapter 34.

o   Problem Set #7: posted 5:30PM, 11/10/2014.

 

Week 9. (11/18 and 11/20)

o   Required In-class Test #2 on Tuesday, 11/18/2014

o   Reading Assignment: Chapter 29 (especially, Section 29.2).

o   Problem Set #8: posted 9:30AM, 11/16/2014.

 

Week 10. (11/25)

o   Reading Assignment: Chapter 35 (especially, Introduction and Section 35.4).

o   Problem Set #9: posted 8:30PM, 11/22/2014. This problem set is worth 6% of your grade rather than only 3%.

o   Thanksgiving Day on 11/27/2014.

 

Week 11. (12/2 and 12/4)

o   Reading Assignment: Chapter 35 (especially, Introduction and Section 35.4).

o   Optional In-class Test (1 meeting) on Thursday, 12/4/2014.