Thinking and learning to think by Nathan Christ Schaeffer