Programming exercises from DAT026 at Chalmers, http://www.cse.chalmers.se/edu/year/2010/course/DAT026/index.html