Our design of the nested squares requires the vertices of the inner square to be computed from the coordinates of the outer square. Also, we want to draw the squares from the largest to the smallest. Thus, our strategy is to draw the current square and then draw the next square after computing its coordinates from the previous square. This strategy of reducing a problem from a larger one to a smaller one and applying the solution of the larger to the smaller is a recursive strategry. In turn, we construct the recursive function drawSquare to handle the entire solution.