As this iteration proceeds, the human user and computer work together and converse through code and its output.  Because the language of this conversation is a programming language like Python, the user is able to think about complex technical problems, algorithms, and data. This idea of a computer being used as a thinking companion is not new: