CPSC 240: Object-Oriented Design and Analysis