Understanding programming an introduction using java - Cannon lhScott