# Teaching

The current course catalog for the Northwestern CS Department is available here.

## Spring 2021

- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 496: Mechanism Design

## Winter 2021

- COMP_SCI 396/496: Approximation Algorithms
- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 496: Theoretical Foundations of Data Science

## Fall 2020

- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 335: Introduction to the Theory of Computation
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 496: Graduate Algorithms

## Spring 2020

- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 496: Graduate Algorithm
- COMP_SCI 496: Algorithmic Aspects of Network Inference
- COMP_SCI 396, 496: Advanced Topics in Approximation Algorithms

## Winter 2020

- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 497: Advanced Topics in Theory+X

## Fall 2019

- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 496: Graduate Complexity

## Spring 2019

- COMP_SCI 212: Mathematical Foundations of Computer Science
- COMP_SCI 336: Design & Analysis of Algorithms
- COMP_SCI 396/496: Approximation Algorithms
- COMP_SCI 496: Lattices in Computer Science
- COMP_SCI 496: Mathematical Toolkit
- COMP_SCI 497: Advanced Topics in Computational Learning Theory

## Winter 2019

- EECS 336: Design & Analysis of Algorithms
- EECS 396/496: Computational Geometry
- EECS 496: Graduate Algorithms
- EECS 496: Computational Learning Theory

## Fall 2018

- EECS 212: Mathematical Foundations of Computer Science
- EECS 335: Introduction to the Theory of Computation
- EECS 496: Mechanism Design

## Spring 2018

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

## Winter 2018

## 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 2017

- EECS 495: Approximation Algorithms

## Winter 2017

- EECS 395/495: Bioinformatics

## 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

## Recent Comments