Algorithmic Thinking Theory