Homework solution

Doesn’t contain datafile due to upload size.