Applied Scientific Computing with Python Peter R Turner 2018