Of course there is. And one of the best is "How to think like a Computer Scientist, Learning with Python". Python is better lenguage not only to learn to program but the best language available nowadays. \n\nVisit http://www.python.org to learn more about Python.\nVisit http://www.ibiblio.org/obp/thinkCSpy/ to read or download the book.
Is there a free online course for programming for people who know nothing about it but want to learn?