Course description

Develops techniques used in the design and analysis of algorithms, with an emphasis on problems arising in computing applications. Example applications are drawn from systems and networks, artificial intelligence, computer vision, data mining, and computational biology. This course covers four major algorithm design techniques (greedy algorithms, divide-and-conquer, dynamic programming, and network flow), undecidability and NP-completeness, and algorithmic techniques for intractable problems (including identification of structured special cases, approximation algorithms, local search heuristics, and online algorithms).

Prerequisites

CS 2800, CS 3110. Students who got an A-(or, when taken in Spring 2020, C- or S) or better in both CS 2800 and CS 2110 are welcome to take CS 4820 without CS 3110.

Summer 2024: Ithaca campus

Ali Erkan
Ali Erkan
Visiting Associate Professor