PDF "Introduction to Computation and Programming Using Python - John V. Guttag"
The book is based on an MIT course that has been offered twice a year since 2006. The course is aimed at students with little or no prior to programming, but who have a need (or at least a desire) to understand computational approaches to problem solving. Each year, a few of the students in the class use the course as a stepping stone to more advance computer science courses. But for most of the students it will be their only computer science course.