Asymptotic Notation ($O, \Omega, o, \omega$)
Work, Span, Speedup, Amdahl's Law
Functional languages and SPARC
Computational costs, Parallelism, Work Efficiency, Scheduling
Knowledge of our model of computation (parallelism, speedup, work, span, work efficiency)
Know the difference between functional and imperative expressions
Translate from SPARC and Python
Given a function of $n$, derive asymptotic bounds
Formulate expected work/span
Compute probabilities and expectations
Graph representation and data structures
Breadth First Search, Depth First Search
Dijkstra's Algorithm
Bellman-Ford Algorithm
All-pairs Shortest Paths with Johnson's Algorithm
Shortest Paths (cost followed by number of edges)
Improving Dijkstra's
MSTs