EECS 376: Foundations of Computer Science

The University of Michigan
Fall 2026

An introduction to Computer Science theory, with applications. Design and analysis of algorithms, including paradigms such as divide-and-conquer and dynamic programming. Fundamentals of computability and complexity -- learn to identify what problems a computer cannot solve at all, what problems are unlikely to be efficiently solvable, and how to apply approximations to such problems. Introduction to randomness in computation, including how algorithms can benefit from randomness and how to analyze randomized algorithms. Applications of computational hardness to cryptography, including specific algorithms that are essential to the internet.

See the syllabus for all the details.

Welcome to EECS 376, Fall 2026!

We're glad you're here. This semester all instruction will be in person.

Make sure to have a laptop and a reliable internet connection.

More details in the syllabus.

Calendar   Regular Calendar OH Calendar OH Schedule

Schedule – TBD

People

Photo of Emily Graetz
Emily Graetz
they/them

12pm-1:30am MW

1670 Beyster

Photo of Nicole Wein
Nicole Wein
she/her

3-4:30pm MW

1365 Leinweber

Photo of Mahdi Cheraghchi
Mahdi Cheraghchi
he/him

9-10:30am MW

1670 Beyster