2026-2027 Catalog

COMP 317 Algorithms Analysis

This course introduces the principles of algorithm design and the theory of computation. Students learn how computational problems are expressed as precise, step-by-step procedures - algorithms - and how such procedures shape the practice of computer science. The course examines major design paradigms, including greedy methods, divide-and-conquer, dynamic programming, and algorithms for flows and cuts, along with the analytical tools used to evaluate their efficiency. Additionally, this course goes beyond algorithm design to consider the limits of computation: when certain problems cannot be solved efficiently, or at all. This exploration leads to the study of NP-completeness and the foundations of computability theory. Together, these perspectives reveal both the power and the boundaries of algorithmic thinking.


Sub-field: THEORY

Credits

4 units

Prerequisite

COMP 229, and COMP 149 or MATH 210