Java: A Framework for Programming and Problem Solving