# Advanced Algorithms

The study of algorithms is, at one level, the study of techniques driven by rigorous formal analysis: divide and conquer, greedy algorithms, recursion, O() notation and the like. At another level, algorithms are about abstraction: what is the core computational structure underlying a problem, and how might we unlock it ?

In this course, we will study algorithms at the level of techniques, and at the level of structure. Formalization, a key step in the practice of using algorithms, will play an important role in this class. Specific topics to be covered include:

- Basic tools of algorithm design and analysis: divide-and-conquer, recurrences, dynamic programming, and greedy algorithms
- Flows and matchings; linear programming
- Approximation algorithms.
- Randomization

With all good must come some bad: and sometimes, the best way to understand the complexity of a problem is to understand how hard it is. To that end, we will also study

- NP-completeness, reductions and lower bounds

But "Aha!" you say, "I want to study BIG DATA", not all this algorithms stuff. Fortunately for you, we will cover some aspects of the most important ideas in big data

- Sampling (doing things quickly) and
- Streaming (doing things with very little memory)

Some of these topics can command an entire course of their own; our coverage will emphasize the basics, covering a few of the most common ideas in play.

#### Textbooks

There will be no official textbook for the class. For the most part, I will use the lecture notes provided by Jeff Erickson

. Other material that you might like to consult include

- Algorithms (Dasgupta, Papadimitriou, Vazirani)
- Algorithm Design (Kleinberg, Tardos)
- Randomized Algorithms (Motwani, Raghavan)
- Approximation Algorithms (Shmoys, Williamson)

#### Course Mechanics

Your performance in the course will be evaluated via (six) homeworks (60%), a final exam (20%), and a final project (20%). The project will require you to read a current research paper in algorithms and deconstruct it.