Designing Object Oriented Software - course exercises