L27 - OOP algorithm design.pdf