EE 312 - Software Design and Implementation