Think Java by Allen Downey and Chris Mayfield: Introduction to computer science and programming intended for people with little or no experience.