Problem Solving with Python takes an explicit problem-solving approach to the introduction of computer programming and computational thinking, emphasizing the programmer's role in problem definition, expressing, evaluating, and implementing solutions, and evaluating results. Programming constructs are presented as tools for the solution o...