CPSC 320(Intermediate Algorithym Design and Analysis) is a course I completed at UBC. The course explored a variety of techniques used to create and analyize and categorize algorithyms in terms of time-space complexity, np-completeness, and more. We explicitly explored time analysis, reductions, greedy algorithyms, dynamic programming, divide and conquer, ammortized analysis, np-completeness proofs. UBC provides the following description of the class content:
Systematic study of basic concepts and techniques in the design and analysis of algorithms, illustrated from various problem areas. Topics include: models of computation; choice of data structures; graph-theoretic, algebraic, and text processing algorithms.