CSCI E-120
Introduction to Algorithms and Their Limitations
This is an introductory course in theoretical computer science, aimed at giving students the power of using mathematical abstraction and rigorous proof to understand computation.
Thus equipped, students are able to design and use algorithms that apply to a wide variety of computational problems, with confidence about their correctness and efficiency, as well as recognize when a problem may have no algorithmic solution.
At the same time, they gain an appreciation for the beautiful mathematical theory of computation that is independent of (indeed, predates) the technology on which it is implemented.