cmpe226-hw