Current course

Design and Analysis of Algorithms
Spring 2012, CSCI 5454 (and via CAETE)

Algorithms are the heart of computer science, and their essential nature is to automate some aspect of the collecting, organizing and processing of information. Today, information of all kinds is increasingly available in enormous quantities. However, our ability to make sense of all this information, to manage, organize and search it, and to use it for practical purposes, e.g., self-driving cars, adaptive computation, search algorithms for the Internet or for social networks, artificial intelligence, and many scientific applications, relies on the design of efficient algorithms, that is, algorithms that arefast, use little memoryand provide guarantees on their performance.

This graduate-level course will cover a selection of topics related to algorithm design and analysis. Topics will include divide and conquer algorithms, greedy algorithms, graph algorithms, algorithms for social networks, computational biology, optimization algorithms, randomized data structures and their analysis. We will not cover any of these topics exhaustively. Rather, the focus will be on algorithmic thinking, efficient solutions to practical problems and understanding algorithm performance. Advanced topics will cover a selection of modern algorithms, many of which come from real-world applications.

Future courses

Spring 2013, CSCI 5454: Design and Analysis of Algorithms
Fall 2013, CSCI 7000: Inference, Models and Simulation for Complex Systems

Past courses

Fall 2011, CSCI 7000: Inference, Models and Simulation for Complex Systems
Spring 2011, CSCI 5454: Design and Analysis of Algorithms
Fall 2010, CSCI 7000: Inference, Models and Simulation for Complex Systems