ADVANCED PROGRAMMING ASSIGNMENT