Algorithms from Tim Roughgarden's Coursera course