CSCI 256: Algorithm Design and Analysis(Q)
Description: This course investigates methods for designing efficient and reliable algorithms. By carefully analyzing the structure of
a problem within a mathematical framework, it is often possible to dramatically decrease the computational resources needed
to find a solution. In addition, analysis provides a method for verifying the correctness of an algorithm and accurately
estimating its running time and space requirements. We will study several algorithm desgin strategies that build on data structures
and programming techniques introduced in Computer Science 136, including induction, divide-and-conquer, dynamic programming,
and greedy algorithms. Particular topics of study include graph theory, computational geometry, string processing, approximation
algorithms, and advanced data structure. In addition, we will provide an introduction to complexity theory and the complexity
classes P and NP.
| Spring 09 | 256-01 | (LEC) | MWF | 11:00-11:50 | Heeringa | |
| Spring 10 | 256-01 | (LEC) | MWF | 11:00-11:50 | Raghavan | |