The programming projects from Java: An Introduction to Problem Solving and Programming by Walter Savitch.