Object-Oriented Programming in Java: A Graphical Approach, Preliminary Edition