Algorithmic Problem Solving In Python