ECSE427/COMP310 Assignment