Fall 2014 Technological
Institute M345 Department
of Electrical Engineering and Computer Science 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 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. |