Algorithms, computational complexity, asymptotic notations, pseudocode, greedy algorithms, easy vs. hard problems.

- Use Big O notation to characterize complexity of algorithms.
- Represent an algorithm using pseudocode.
- Use the greedy algorithm to solve problems such as the coin change problem.