Algorithms And Cutting Planes For Mixed Integer Programs