The information contained in these lecture notes was compiled by the course TAs in 2017 and 2018, including Takehiro Oyakawa, Gianluca Pane, Gabe Bankman-Fried, and Enrique Areyan-Viqueira. They based these notes in large part on the lecture notes and accompanying videos of Tim Roughgarden's CS 364A and CS 364B courses at Stanford, and Jason Hartline's Mechanism Design and Approximation textbook.