I would like to ask if there is some algorithm how to arrange courses to timetable. I study at the university and we can choose a few different lesson times for each subject.

The problem is how to coordinate all subjects with student's requirements, for example to have school only 2 days a week and/or to select some hours based on capacity.

One subject - you have to select one from the first table and one from the second table (it's lecture and seminar). There can be only one table to select from (only seminar/only lecture):


Course timetable

  • Would something like Prolog (en.wikipedia.org/wiki/Prolog) help solve your problem? – Johannes Kloos Jan 25 '13 at 9:32
  • 1
    @Johannes why Prolog more than other languages? – F'x Jan 25 '13 at 10:25
  • Thanks. My problem is that I don't have time to learn Prolog:) I was looking for some idea how to arrange it. But I understand that's not so simple. – Xdg Jan 25 '13 at 10:34
  • Check out this stackoverflow question for a related discussion. Not sure if it'll help you at all, but you'll learn something. – eykanal Jan 25 '13 at 14:38
  • 2
    Are you asking as a student (because you need to fill your own schedule), or as an administrator (because you want to add a feature to your registration site)? – JeffE Jan 25 '13 at 16:48

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]

| improve this answer | |

There are algorithms for timetabling, but I doubt that you would want to get into the level of detail required for understanding them and applying them to your - as I take it - one off situation. Timetabling is a difficult problem for a computer to solve when there are many activities and people to timetable. It is an NP-hard problem, and a hot topic of current computer science research.

Perhaps something like this would help you? I haven't tried it so I can't comment on whether it is a useful/competent solution.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.