By the end of this module you should:
- understand graph terminology such as:
- simple
- connected
- directed and undirected
- dense and sparse
- understand how to represent a graph using an
- adjacency list
- adjacency matrix
- understand breadth-first and depth-first search
- be able to perform both of these on a graph
- know how to tell if a directed graph has a cycle
- understand what a topological sort is
- be able to apply topological sort to a directed acyclic graph