Study materials, algorithm implementations, proofs, and notes for advanced algorithms and analysis topics (divide and conquer, dynamic programming, graph algorithms, greedy algorithms, amortized analysis, NP-completeness, etc.) Created to complement the ECE 406 course at the University of Waterloo.