Title: Practice and Philosophy of Object-Oriented Programming in Java