One of my responsibilities at school is the generation of the timetable. It is a job that is at once incredibly frustrating and yet incredibly rewarding when it works. I’m in that particular head-space now and while I have a timetable that generates, it is ugly. There are minimal considerations taken into account at this stage and so a process of potentially infinite refinement begins.
Of course, ending up with a “perfect” timetable is not the goal. Instead, we aim for one that is “good enough.” Getting a “perfect” timetable is simply not worth the effort. And of course you can’t please everyone. Someone has to teach last lesson on a Friday!
The first thing I need to make clear is that I use software to help me. I’ve never manually generated a timetable by hand and in that respect, I really wouldn’t know where to start. I’ve been using ASC Timetables for at least five years now and can recommend its easy-to-get-going interface with some incredibly powerful options, should you need them.
The most difficult thing, it seems, is getting an equitable spread. This is invariably what takes the longest and it seems to be the most difficult for the software to take into account. Having a certain lesson at the same time each day, or on the same days (we run a 10-day cycle) often means that the same lessons are missed when extraordinary schedules arise. So a certain amount of randomness is needed to ensure that there is a fair mix.
Another consideration is to have at least one day in the 10-day cycle where all of the classes for a particular subject are either consecutive or overlapping to provide an opportunity for standardised tests with minimal contact happening between the classes.
Also, in terms of distribution, I try, where-ever possible, to limit the number of times a subject has a lesson after lunch and never schedule any double-lessons for that time either.
- 15 classes
- 66 lessons over 10 days
- 33 teachers
- 808 lessons to schedule