CS 325 was the first CS course that I taught at Oregon State. Aside from a long and strong review of proof techniques, I chose to include 6 major topics: divide and conquer algorithms, randomized algorithms, dynamic programming, linear programming, complexity, and approximation algorithms.