Lecture Outline

August 19th, 2007

This is a lecture outline for the class. When appropriate, I will reference chapters and sections from the textbook (KT 3 refers to Chapter 3). This outline is subject to minor changes, but I expect that the top level topics will be covered in the corresponding order.

  1. Introduction. The history of algorithms, computability, and efficiency. The difference between a problem and an algorithm. Administrivia.
  2. Analysing recurrence relations (see Quicklinks)
  3. [KT 5] Divide & Conquer/Recursion: Mergesort, closest pair, integer multiplication
  4. [KT 5] Divide & Conquer/Recursion: FFTs
  5. [KT 6] Dynamic Programming: Interval scheduling, curve fitting, subset-sum.
  6. [KT 6] Dynamic Programming: Sequence alignment
  7. [KT 4] Greedy Algorithms: Optimality principles, examples
  8. [KT 4] Greedy Algorithms: MSTs
  9. [KT 8] NP-hardness: P vs NP. “Trust, but verify”. The Cook-Levin theorem & CIRCUIT-SAT
  10. [KT 8] NP-hardness: Recap, 3SAT is NP-Complete. Reduction from Independent Set to Vertex Cover
  11. [KT 8] CLIQUE, Independent Set, Set Cover, classification of types of NP-hard problems.

  12. [KT 11] Approximation Algorithms: Definitions, Vertex Cover.
  13. Approximation Algorithms: Vertex Cover 2-approx, Interval scheduling, Set Cover
  14. [KT 11] Approximation Algorithms: Dynamic programming and PTASs (Knapsack, and a cameo by TSP)
  15. [KT 11] Approximation Algorithms: LPs and Rounding.

  16. [KT 7] Network Flows: Max flows and Ford-Fulkerson
  17. [KT 7] Network Flows: Max flows and min cut
  18. Network Flows: Min-cost max flows
  19. [KT 7] Network flows: Applications

  20. Randomized Algorithms: Hashing
  21. [KT 13] Randomized Algorithms: Min cut
  22. [KT 13] Randomized Algorithms: Chernoff Bounds
  23. Randomized Algorithms: More examples

  24. War Story: Sorting out the genome
  25. [KT 12] Heuristic methods
  26. Parallel Algorithms
  27. Quantum Computing
  28. A whirlwind tour of what we didn’t cover.
  29. Wrap up.

Critical dates for homeworks/exams: these are tentative, but as requested, I’m giving them out here. Hopefully, changes to these dates will be minor.

  1. HW 1. OUT 9/10, IN 9/24
  2. HW 2. OUT 9/24, IN 10/5 (fall break starts the following day)
  3. HW 3. OUT 10/22, IN 10/29
  4. HW 4. OUT 10/29, IN 11/12
  5. HW 5. OUT 11/12, IN 11/26
  6. HW 6. OUT 11/26, IN 12/05

Midterm: Oct 17 (most likely a take-home handed out in class, to be turned in on Oct 19)

Final: TBA (there are some date constraints with students in the class). According to university guidelines, the final exam should be scheduled on Monday Dec 10 in class and I’ll likely do that. It’ll still be a take-home.

10 Responses to “Lecture Outline”

  1. Graduate Algorithms » Blog Archive » Detailed Lecture Outline Says:

    [...] detailed lecture outline (for the first 14 lectures) is now available under the Outline tab. Note that you can subscribe to [...]

  2. Carlos Fernando Scheidecker Antunes Says:

    There is a LaTex tool for Linux. It is an IDE called Kile. Here’s the URL for its documentation. http://kile.sourceforge.net/Documentation/html/index.html

  3. Devyani Ghosh Says:

    While going through the lecture outline, I wondered if you might be able to squeeze in a little time to touch base with Parallel algorithms… Although I understand that it’s domain is vast enough, but just thought that parallel algorithms (in some sense) may serve as a good extension to the kind of Divide & Conquer algorithms we talked in class today - and perhaps more valuable given the way our modern multiprocessors work.

  4. admin Says:

    It’s an interesting suggestion. Frankly, I’ve never spent time on parallel algorithms, because sometime in the early 90s people started losing interest (at least from the algorithms side). you are right though that with modern multicore systems, parallel algorithms are back in vogue. I have some unaccounted for lectures, so maybe I’ll throw in one on the basics.

    thanks for the suggestion !

  5. Anonymous Says:

    Could we have some sort of a class time-table with schedules (even if tentative) for all our homework’s out & due dates and exam dates? It would be a great help to manage our other works alongside, by accessing the days which are expected to be busy/important for this class. Thanks.

  6. admin Says:

    Definitely. I have the dates, I just didn’t put them in yet. I’ll update this post with the desired information.

  7. admin Says:

    Another interesting note on parallel algorithms. The original CLR Intro to Algorithms has a nice chapter on parallel algorithms, with basic definitions of PRAM, CRCW, EREW etc, and Brent’s principle. The newer version, CLRS, has excised this chapter completely ! Sign of the times ?

  8. Sarvani Says:

    I was windering if you could invest a class on amortization …

  9. admin Says:

    Ah. another fascinating topic. Sometimes I wonder whether I should do advanced algorithms II, which would eliminate the first 11 lectures of this class, and replace it with other new stuff :)

    right now any topic I introduce will be at the cost of something else. I’ll have to think about it. But it’s a great suggestion. Amortization is a valuable tool in data structure design (and in computational geometry)

  10. admin Says:

    test comment

Leave a Reply