Problem Solving And Programming Concepts by Jim Hubbard & Maureen Sprankle