Think like a computer scientist with Python