The following are the theory courses being offered in academic year 2015-2016.

## Spring 2017

- EECS 212: Mathematical Foundations of Computer Science
- EECS 336: Design & Analysis of Algorithms
- EECS 395/495: Computational Learning Theory
- EECS 495: Approximation Algorithms
- EECS 495: Topics in Beyond Worst-Case Analysis

## Winter 2017

- EECS 395/495: Bioinformatics
- EECS 495 : Graduate Algorithms

## Fall 2017

- EECS 335: Introduction to the Theory of Computation
- EECS 336: Design & Analysis of Algorithms
- EECS 495: Analytical Methods in Theoretical Computer Science
- EECS 495: Mechanism Design

## Spring 2016

## Winter 2016

- EECS 212 : Mathematical Foundations of Computer Science.
- EECS 335: Introduction to the Theory of Computation
- EECS 495 : Graduate Algorithms

## Fall 2015

- EECS 212 : Mathematical Foundations of Computer Science.
- EECS 336: Design & Analysis of Algorithms
- EECS 395/495: Bioinformatics

## Here are a list of theory courses that have been offered in previous years and that are likely to be offered regularly.

- Computational Complexity
- Derandomization
- Probabilistic Method
- Introduction to Cryptography
- Kolmogorov Complexity
- Introduction to Algorithms
- Algorithmic Mechanism Design
- Randomized Algorithms
- Algorithmic and Economic Aspects of Social Networks
- Combinatorial Optimization
- Algorithmic Research for E-Commerce