1st coursework assignment for COMP6035 'From Aspect-Oriented Programming to Program Generation'