• Please pick up lecture notes in this
            directory.
  • No textbook is required. But you may use the book of Cormen, Leiserson, Rivest and Stein, Introduction to Algorithms if you want to refer to one. The exact edition is not important (I use edition 2 but latest is edition 3). Refer to this book as [CLRS]. Reserved copies are in the Courant Library. In the reading guide below, I will correlate my Lecture Notes with chapters from [CLRS].
  • My lecture notes are divided into "Lecture I, II, etc" (in roman numerals). But they are more like book chapters. Some Lectures may be skipped or taught out of order. I would appreciate any error or typo reports. Suggestions for improving the notes are welcome!
  • Strongly suggested: Read at least few pages of the chapter before the actual lecture, not worrying too much about full understanding!

How to report Typos: Be sure to specify not only the page number, but also the line number.
E.g., Page 12, line 4. Or, Page 111, line -5.
Negative line numbers means you count from the bottom of the page.
But you can also relativize line numbers to other book units, E.g., Page 22, paragraph 3, line 3. Or, Second Paragraph after Theorem 2, line 4.
Use "\P" to indicate the special "paragraph symbol" for numbered paragraphs, and "\S" to indicate sections. E.g. \P 22, or \S 7.

Note that in my typos corrections, I use the standard "TeX" notations.

  1. In TeX, we indicate superscript with "^"
    (e.g., n^2 means "n square").
  2. We indicate subscript with "_"
    (e.g., x_1 means "x sub 1").
  3. Macros in TeX are indicated by a backslash "\".
    For instance, the greek letter alpha is written "\alpha".

Reading Guide and Typos (We may teach this list out of order)

  1. Lecture I: Introduction to Algorithmics -- Typos
  2. Lecture II: Recurrences -- Typos
  3. Lecture III: Balanced Search Trees -- Typos
  4. Lecture IV: Pure Graph Algorithms -- Typos
  5. Lecture V: Greedy Approach -- Typos
  6. Lecture VI: Amortization -- Typos
  7. Lecture VII: Dynamic Programming -- Typos
  8. Lecture XXX: NP-Completeness? (the traditional last lecture)-- Typos

As Time Allows, will do a lecture on some selection:
  1. Lecture VIII: Randomized Algorithms? -- Typos?
  2. Lecture XI: Hashing? -- Typos?
  3. Lecture XIII: Union Find -- Typos?
  4. Lecture XIV: Min Cost Paths -- Typos

Recitation Notes: Teaching Assistant may put notes here for your pickup