Courtesy of Professor Karen Daniels. Many of the notes are adapted from Prof. Daniles's previous lectures.