Python from scratch
Python from scratch is a gentle introduction to programming, designed with the beginner in mind. No previous background is assumed. Each programming concept is first taught without reference to a specific programming language. Hands-on practice, using the programming language Python, helps to reinforce the concepts.