This course is an introduction to the design, analysis and proofs of correctness of algorithms. Examples are drawn from algorithms for many areas. Analysis techniques include asymptotic worst case and average case, as well as amortized analysis. Average case analysis includes the development of a probability model. Techniques for proving lower bounds on complexity are discussed, along with NP-completeness. Note: students with a strong background in design and analysis of computer systems, at the level equal to a B.S. in computer science, should not take CS 5084 and should consider taking CS 504 or CS 584.
Prerequisites
an undergraduate knowledge of discrete mathematics and data structures.