COMP3421 Assignment2 by Shuwen Zhou