Applied Computational Thinking with Python. Design algorithmic solutions for complex and challenging