Alternating between natural language thinking and code execution to solve complex problems step-by-step.