Captain's Log: CIS 775, Analysis of Algorithms, Fall 2010

1: Aug 23 (Mon)
Cormen Reading: Chapter 1 and Section 2.2.
2: Aug 25 (Wed)
We address how to prove the correctness of an algorithm, recursive or iterative, and illustrate the techniques on various implementations of insertion sort.
Cormen Reading: Section 2.1.
3: Aug 27 (Fri)
4: Aug 30 (Mon)
We introduce the "Big-O" symbol, useful for asymptotic analysis, and reason about its properties.
Cormen Reading: Chapter 3.
5: Sep 1 (Wed)
We continue the theory of asymptotic notation, and HW1 due tomorrow at 5pm
6: Sep 3 (Fri)
Sep 6 (Mon)
University Holiday (Labor Day)
7: Sep 8 (Wed)
We introduce amortized analysis, and apply it to expandable arrays.
Cormen Reading: Chapter 17.
HW2 due tomorrow at 5pm
8: Sep 10 (Fri)
We discuss how to give tight bounds for iterative algorithms, using the concept of smooth functions.
9: Sep 13 (Mon)
We embark on solving general recurrences, as show up when analyzing divide and conquer algorithms.
Graded HW1 back; discuss solutions.
Cormen Reading: Section 2.3 & Sections 4.3-4.4.
10: Sep 15 (Wed)
We motivate the Master Theorem (Thm 4.1 in Cormen), give examples of how to apply it, and outline a proof.
Cormen Reading: Section 4.5. (Optional: Section 4.6.1)
HW3 due tomorrow at 5pm
11: Sep 17 (Fri)
We discuss the Master Theorem, looking at applications and twists: Graded HW2 back; discuss solutions.
12: Sep 20 (Mon)
We introduce the heap data structure, useful to Cormen Reading: Chapter 6.
13: Sep 22 (Wed)
We introduce union/find structures, useful to represent equivalence classes of nodes; it is possible to obtain an amortized cost per operation which is almost in O(1).
Cormen Reading: Sections 21.1-3.
HW4 due tomorrow at 5pm
14: Sep 24 (Fri)
Cormen Reading: Sections 7.1-2.
15: Sep 27 (Mon)
We continue applications of the divide & conquer paradigm: Cormen Reading: Section 4.2
16: Sep 29 (Wed)
Cormen Reading: Section 9.3.
17: Oct 1 (Fri)
18: Oct 4 (Mon)
HW5 due today at 11am
19: Oct 6 (Wed)
Exam 1
20: Oct 8 (Fri)
Cormen Reading: Chapter 5 (Sect 5.4 cursory only).
21: Oct 11 (Mon)
We introduce randomized algorithms. Cormen Reading: Section 9.2.
22: Oct 13 (Wed)
Cormen Reading: Sections 7.3-4.
HW6 due tomorrow at 5pm
23: Oct 15 (Fri)
Cormen Reading: Section 8.1.
24: Oct 18 (Mon)
25: Oct 20 (Wed)
  • Cormen Reading: Sections 8.2 - 8.4.
    HW7 due tomorrow at 5pm
  • 26: Oct 22 (Fri)
    Cormen Reading: Sections 16.1 - 16.2.
    27: Oct 25 (Mon)
    We continue greedy algorithms: Cormen Reading: Chapter 23.
    28: Oct 27 (Wed)
    We continue the presentation of greedy algorithms, covering: Cormen Reading: Section 24.3.
    29: Oct 29 (Fri)
    30: Nov 1 (Mon)
    HW8 due at 11am
    31: Nov 3 (Wed)
    Exam 2
    32: Nov 5 (Fri)
    We see several applications of dynamic programming: Cormen Reading: Sections 15.1 & 15.3.
    33: Nov 8 (Mon)
    More applications of dynamic programming: Cormen Reading: Sections 15.2 and 25.2.
    34: Nov 10 (Wed)
    We embark on discussing what constitutes a really hard problem, and introduce Cormen Reading: Sections 34.1-3.
    HW9 due tomorrow at 5pm
    35: Nov 12 (Fri)
    Present a number of NP-hard problems, among which we Cormen Reading: Sections 34.4-5 (except Sects. 34.5.3&5).
    36: Nov 15 (Mon)
    Recall various NP-complete problems and how to prove that they are indeed NP-hard: Discuss solutions to HW9.
    37: Nov 17 (Wed)
    Cormen Reading: Sections 22.3-4.
    HW10 due tomorrow at 5pm
    38: Nov 19 (Fri)
    One more application of depth-first search: Introduction to Approximation Algorithms: Cormen Reading: Sections 35.0 and 35.2.
    Nov 22-26 (Mon-Fri)
    Thanksgiving holiday
    39: Nov 29 (Mon)
    40: Dec 1 (Wed)
    HW11 due tomorrow at 11am
    41: Dec 3 (Fri)
    Exam 3


    Torben Amtoft