def METHOD_NAME(self, inputs):
    """
    Assemble the stiffness matrix in sparse CSC format.
    Returns
    -------
    ndarray
        Stiffness matrix as dense ndarray.
    """
    num_elements = self.options['num_elements']
    num_nodes = num_elements + 1
    num_entry = num_elements * 12 + 4
    ndim = num_entry + 4
    data = np.zeros((ndim, ), dtype=inputs._get_data().dtype)
    cols = np.empty((ndim, ))
    rows = np.empty((ndim, ))
    # First element.
    data[:16] = inputs['K_local'][0, :, :].flat
    cols[:16] = np.tile(np.arange(4), 4)
    rows[:16] = np.repeat(np.arange(4), 4)
    j = 16
    for ind in range(1, num_elements):
        ind1 = 2 * ind
        K = inputs['K_local'][ind, :, :]
        # NW quadrant gets summed with previous connected element.
        data[j-6:j-4] += K[0, :2]
        data[j-2:j] += K[1, :2]
        # NE quadrant
        data[j:j+4] = K[:2, 2:].flat
        rows[j:j+4] = np.array([ind1, ind1, ind1 + 1, ind1 + 1])
        cols[j:j+4] = np.array([ind1 + 2, ind1 + 3, ind1 + 2, ind1 + 3])
        # SE and SW quadrants together
        data[j+4:j+12] = K[2:, :].flat
        rows[j+4:j+12] = np.repeat(np.arange(ind1 + 2, ind1 + 4), 4)
        cols[j+4:j+12] = np.tile(np.arange(ind1, ind1 + 4), 2)
        j += 12
    data[-4:] = 1.0
    rows[-4] = 2 * num_nodes
    rows[-3] = 2 * num_nodes + 1
    rows[-2] = 0.0
    rows[-1] = 1.0
    cols[-4] = 0.0
    cols[-3] = 1.0
    cols[-2] = 2 * num_nodes
    cols[-1] = 2 * num_nodes + 1
    n_K = 2 * num_nodes + 2
    return coo_matrix((data, (rows, cols)), shape=(n_K, n_K)).tocsc()