Codes for Algorithm: Design & Analysis from Stanford University.