9 units (3-0-6) |
Prerequisites: CS 2; Ma/CS 6 a or Ma 121 a; and CS 21.
This course introduces techniques for the design and analysis of efficient algorithms. Major design techniques (the greedy approach, divide and conquer, dynamic programming, linear programming) will be introduced through a variety of algebraic, graph, and optimization problems. Methods for identifying intractability (via NP-completeness) will be discussed.
The online version of the Caltech Catalog is provided as a convenience; however, the printed version is the only
authoritative source of information about course offerings, option requirements, graduation requirements,
and other important topics.