This is the CMPE273 assignment2.