Data-Driven Methods For Course Selection And Sequencing