6

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):

Image


Course timetable

6
  • Would something like Prolog (en.wikipedia.org/wiki/Prolog) help solve your problem?
    – Johannes Kloos
    Commented Jan 25, 2013 at 9:32
  • 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
    Commented Jan 25, 2013 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
    Commented Jan 25, 2013 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
    Commented Jan 25, 2013 at 16:48
  • 1
    As Tom brought up in his answer, this is an algorithm question. It seems more appropriate for StackOverflow.
    – earthling
    Commented Dec 15, 2013 at 13:22

2 Answers 2

5

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]

3

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.

Not the answer you're looking for? Browse other questions tagged .