The Learn To Program book by Chris Pine