Planning and Optimizing Course Sequences