Dynamic Mode Decomposition (DMD) is a technique to approximate generally non-linear dynamical systems using linear techniques, which are better understood and easier to analyze. Koopman theory extends DMD by transforming the original system into a new domain which facilitates linearization. This is a technical report on DMD and Koopman theory, with primary focus on explaining the underlying mathematics in clear and concise form. We include dimensions of vectors and marices, and step-by-step derivations of equations in order to assist the user in easily comprehending these concepts. This report will also enable users to implement DMD and Koopman theory in code.