EECS Main
>
People
>
Faculty
>
Jason D. Hartline
>
Courses
>
EECS 336
EECS 336 - Design and Analysis of Algorithms
Winter 2010
Required Text: Kleinberg and Tardos, Algorithm Design, Addison-Wesley, 2005.
[order from amazon.com]
Lectures: Tuesday and Thursday 2:00-3:20 in Tech L221.
Instructor: Jason D. Hartline.
Office Hours: After class, Wednesday 2:00-3:00, or by appointment; Ford 3-329.
Teaching Assistant: Michael Cheng, michaelc [at] u.northwestern.edu
Problem Session: Monday, 5:00-6:00; Tech L221.
Office Hours: by appointment.
Announcements:
- March 9: Notes from second half of course have been posted to this web page. A review session for the final will be 5-7pm, Wednesday, March 10, in Tech L251.
- Feb 4: Notes for first half of course have been posted on this web page.
- Jan 21: Watch Arthur Benjamin does "Mathemagic". For more information on public key cryptography see notes on RSA.
- Jan 19: For "Additional Problems" on homework 2, the algorithm in question is "greedy by value" and the objective is to maximize the total value of the selected set.
- Jan 14: Read sections 4.1 and 4.2 from the MIT coursenotes on Matroids.
- Jan 5: The MIDTERM and FINAL are in class on February 9th and March 11th, respectively. Mark the dates.
- Jan 5: Students are highly recommended to attend Erik Demaine's talk "Algorithms Meet Art, Puzzles, and Magic." Wednesday, Jan. 6th, at 4pm in Ford ITW. This talk is part of the EECS Distinguished Speaker Series.
Overview.
Algorithm design and analysis is fundamental to all areas of
computer science and gives a rigorous framework for the study
optimization other disciplines. 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, network flows, and randomized algorithms. Important themes
that will be developed in the course include algorithmic
abstraction-design-analysis process and computational tractability
(e.g., NP-completeness).
Prerequisites.
EECS
310 (Mathematical Foundations of Computer Science) and
EECS
311 (Data Structures and Data Management) which cover abstract data types such as stacks, queues, and
binary search trees; and discrete mathematics such as recurrence
relations, sets, and graphs.
Grading.
60% Problem sets, 20% Midterm, 20% Final, 3% classroom participation (bonus).
Homework Policy. Homeworks may be done in pairs.
Both students must contribute to the solution of all problems. One
copy of the assignment should be turned in with the names of both
students on it. Both students will receive the same grade. You may
consult your text book and course notes when answering homework
questions; you must not consult the Internet. Homeworks are assigned
in class and due on Thursday the week after (or as noted). Late
homework will be accepted until Friday at 5pm and will be marked down
by 25%. You may replace one low homework grade by completing a
programming project that implements an algorithm related to the
assignment, subject to pre-approval by the
instructor.
Tentative Schedule:
- Jan. 5: Course overview, algorithmic abstraction-design-analysis paradigm, and the stable matching problem. (Chapter 1)
- Jan. 7: Review of runtime analysis, graphs, and basic graph algorithms. (Chapters 2 and 3)
- Jan. 12: Greedy algorithms: interval scheduling. (Chapter 4)
- Jan. 14: Greedy algorithms: minimum spanning trees, matroids. (Chapter 4)
- Jan. 19: Greedy algorithms: shortest paths, MSTs. (Chapter 4)
- Jan. 21: Divide and conquer: merge sort, recurrence relations, public key cryptography, repeated squaring (Chapter 5)
- Jan. 26: Divide and conquer: integer multiply, convolution, fast Fourier transform (Chapter 5)
- Jan. 28: Dynamic programming: memoization, weighted interval scheduling, integer knapsack (Chapter 6)
- Feb. 2: Dynamic programming: all pairs shortest paths (Chapter 6)
- Feb. 4: Reductions, Network flow, Bipartite Matching (Chapter 7)
- Feb. 9: MIDTERM.
- Feb. 11: Network flow. (Chapter 7)
- Feb. 16: NP and intractability: NP, polynomial time reductions decision problems. (Chapter 8)
- Feb. 19: NP and intractability: NP, circuit sat, 3-sat. (Chapter 8)
- Feb. 23: NP and intractability: circuit sat, 3-sat, independent set. (Chapter 8)
- Feb. 25: Approximation algorithms: TSP, metric TSP, knapsack
(Chapter 11)
- Mar. 2: Approximation algorithms: pseudo polynomial time, PTAS, knapsack (Chapter 11)
- Mar. 4: Randomized algorithms: global min cut (Chapter 13)
- Mar. 9: Online algorithms: ski-renter.
- Mar. 11: FINAL (cummulative).
|
|