CMPE273 Assignment 2.