A single algorithmic improvement can have a greater impact on our ability to solve a problem than ten years of incremental improvements in CPU speed. In CS157, we study techniques for designing and analyzing algorithms. Still have questions? Keep reading!
- What is CS157 all about?
- We study algorithms and data structures for a wide variety of problems in Computer Science.
- Why study algorithms?
- The goal is to build a deep(er) understanding of fundamental algorithmic paradigms such as Divide and Conquer, Dynamic Programming, Greedy Approaches, and Approximation.
- Nifty. How are we going to do that?
- We emphasize rigor in our proofs of correctness and runtime.
- Sounds great-- are there any prerequisites?
- The prerequisites are either CS16 or CS18 and CS22 (or equivalent).
For more information (including office hours, location, and texts), please click here.


