Learning with PYTHON: How to Think Like a Computer Scientist