Understand the mapping of problems to algorithmic solutions (e.g., as graph problems, linear
programs. Use advanced algorithmic techniques (e.g., randomization, approximation) to solve problems. Apply advanced analysis techniques (e.g., probabilistic, etc.) to algorithms.
Course Content (Syllabus)
Linear Programming (e.g., duality, simplex method, interior point algorithms). Number-theoretic algorithms (e.g., modular arithmetic, primality testing, integer factorization). Randomized algorithms. Approximation algorithms. Probabilistic analysis. Online algorithms and competitive analysis. Local Search.