Advanced Programming Techniques - Assignment 2