Algorithmic Approaches In Curriculum Design