My solutions to a series of programming exercises (IOGP3)