How to arrange courses to timetable?
Why did this get moved to https://academia.stackexchange.com/ ?  This is an algorithm question!  

Anyway, it so happens some friends of mine have one of the top timetabling algorithms, based on competition wins.  Here is a link to the paper (which will include references to other state-of-the-art timetabling algorithms)


  An automatically configured modular algorithm for post enrollment
  course timetabling Chris Fawcett, Holger H. Hoos, and Marco
  Chiarandini - Technical Report TR-2009-15, University of British
  Columbia, Department of Computer Science, 2009. [pdf]