coursework for the Stanford CS186 course