Second coursework for SD1. Hosted here just for versioning