A classical problem in knot theory is determining whether or not a given 2-dimensional diagram represents the unknot. The UNKNOTTING PROBLEM was proven to be in NP by Hass, Lagarias, and Pippenger. A generalization of this decision problem is the GENUS PROBLEM. We will discuss the basics of computational complexity, knot genus, and normal surface theory in order to present an algorithm (from HLP) to explicitly compute the genus of a knot. We will then show that this algorithm is in PSPACE and discuss more recent results and implications in the field.