<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_subdivision_matrices(degree):
 """Make the matrix used to subdivide a curve. .. note:: This is a helper for :func:`_subdivide_nodes`. It does not have a Fortran speedup because it is **only** used by a function which has a Fortran speedup. Args: degree (int):
 The degree of the curve. Returns: Tuple[numpy.ndarray, numpy.ndarray]: The matrices used to convert the nodes into left and right nodes, respectively. """

    left = np.zeros((degree + 1, degree + 1), order="F")
    right = np.zeros((degree + 1, degree + 1), order="F")
    left[0, 0] = 1.0
    right[-1, -1] = 1.0
    for col in six.moves.xrange(1, degree + 1):
        half_prev = 0.5 * left[:col, col - 1]
        left[:col, col] = half_prev
        left[1 : col + 1, col] += half_prev  # noqa: E203
        # Populate the complement col (in right) as well.
        complement = degree - col
        # NOTE: We "should" reverse the results when using
        #       the complement, but they are symmetric so
        #       that would be a waste.
        right[-(col + 1) :, complement] = left[: col + 1, col]  # noqa: E203
    return left, right