A: Greedy algorithms: general principles and an example algorithm.

1 Greedy Algorithms (A-Topic)

A: Dynamic programming: general principles and an example algorithm.

to understand the principles of dynamic programming;

to understand the example dynamic programming algorithms for activity selection and edit distance;

to be able to apply the dynamic programming algorithm design technique.

2 Dynamic Programming (A-Topic)

A: Network flow: definitions, Ford-Fulkerson method, and Edmonds-Karp algorithm.

A: External-memory algorithms: general principles and the multiway merge-sort algorithm.

_- to understand why main-memory algorithms are not efficient in external memory;

  • to understand the external-memory model and the principles of analysis of algorithms and data structures in this model;
  • to understand the main differences between the main-memory balanced trees and the external-memory balanced trees;
  • to understand how the different versions of merge-sort derived algorithms work in external memory and to be able to compare their efficiency;
  • to understand why the amount of available main memory is an important parameter for the efficiency of external-memory algorithms;

A: Parallel algorithms: general principles and the parallel merge-sort algorithm.

A: Amortized analysis: general principles, different methods, and the analysis of the dynamic table.

C: Formal languages; deterministic, multi-tape, and nondeterministic Turing machines; Church-Turing thesis; halting problem and why it is not computable; closure properties.

C: Computable and computably-enumerable languages; (mapping) reductions and how to use them to prove computability properties about languages; example reduction between halting problem and acceptance problem; Rice’s theorem.

C: Classes P and NP; closure properties; “P vs. NP” problem; polynomial-time reductions and how to use them to prove complexity properties about languages; NP-hardness and NP-completeness.   (Note that this list does not include the proof that SAT is NP-complete.)