|
G22.3520-001
Fall 2008
CS Dept New York University
Honors Analysis of Algorithms
|
Instructor: Subhash Khot – Off 416, Ph: 212-998-4859
Office hours: M 2:30-3:30
Teaching assistant: Daniel Wichs. Office Hours: Thu 12:00-2:00 pm, Off 408.
Course Description
This course is intended to
cover the topics needed for the
departmental comprehensive exam in Algorithms, which also includes elements
of the theory of computation. The goal of the course, in addition to covering
the topics listed below, is to improve your algorithmic problem solving skills.
Topics:
Texts:
This book may be useful: Introduction to Algorithms (Second
Edition), by Cormen, Leiserson,
Rivest, and Stein.
Grading: 50% problem sets, 50%
final exam.
Practice Problems (Updated Oct 6; Problems added
to the top of the list).
Problems
from past PhD Algorithms Exam
Problems from 2006 Exam Problems
from 2007 Exam
Problems
from past MS Algorithms Core Exam (easy but may be good as practice problems)
Date
|
Topics covered
|
Source
|
Sept
3 |
Introduction; Basic data
structures: arrays. |
KT:
Chapter 1,2 |
Sept
8 |
Basic
data structures: linked lists,
heaps; Heapsort; Divide
and conquer: mergesort, quicksort,
recurrence relations. |
KT:
Chapter 2,5 |
Sept
10 |
Divide and conquer: finding median, counting inversions. |
KT:Chapter 5 |
Sept
15 |
Divide
and conquer: fast Fourier transform; Greedy
algorithms: interval scheduling. |
KT:Chapter 5,4 |
Sept 17
|
Greedy
algorithms: interval partitioning, minimum spanning tree. |
KT:Chapter 4 |
Sept
22 |
Greedy algorithms: Huffman codes |
KT:Chapter 4 |
Sept
24 |
Dynamic
programming: Fibonacci numbers,
subset sum, matrix chain multiplication,
longest common subsequence |
KT:Chapter 6 |
Sept
29 |
Dynamic
programming: weighted interval scheduling,
shortest paths (Bellman- Ford), max independent sets in trees |
KT:Chapter 6 |
Oct 1 |
Amortized
analysis: stack, binary counter; Binomial heaps |
CLRS:Chapter 17,19 |
Oct 6 |
Amortized
analysis: Fibonacci heaps |
CLRS:Chapter 20 |
Oct 9 |
Binary
search trees, 2-3 trees;
Breadth-first and depth-first search |
KT:Chapter 3 |
Oct 16 |
Dijkstra’s shortest path algorithm; Network flows |
CLRS:Chapter 24 |
Oct 20 |
Max-flow,
Ford-Fulkerson algorithm, max-flow
= min-cut |
KT:Chapter 7 |
Oct 23 |
Matchings in bipartite graphs, Hall’s Theorem; Discrete probability, basics |
KT:Chapter 7 |
Oct 27 |
Randomized
algorithms: Ramsey graphs,
contention resolution |
KT:Chapter 13 |
Oct 29 |
Randomized
algorithms: max-cut,
Markov’s inequality, randomized quick-sort |
KT:Chapter 13 |
Nov
3 |
Randomized
algorithms: pairwise
independent hashing |
KT:Chapter 13 |
Nov
5 |
Languages,
deterministic finite automata, regular languages |
Sipser:Chapter 1 |
Nov
10 |
Non-deterministic
finite automata, regular expressions |
Sipser:Chapter 1 |
Nov
12 |
Context
free grammars, push-down automata |
Sipser:Chapter 2 |
Nov
17 |
Turing
machine, decidable languages, Turing-recognizable languages |
Sipser:Chapter 3,4 |
Nov
19 |
Undecidability, diagonalization method |
Sipser:Chapter 4 |
Nov
24 |
P,
NP |
Sipser:Chapter 7 |
Nov
26 |
NP-completeness:
3SAT, vertex cover, independent set, clique, subset-sum |
Sipser:Chapter 7 |
Dec 1 |
NP-completeness:
Circuit-SAT, Cook-Levin theorem (i.e. 3SAT is NP-complete) |
Sipser:Chapter 7 |
Dec 3, 5, 10 |
Review
|