Saturday, 25 May 2013

TimeTabling..

Last year when I started my new post as an MIS manager, I was faced with the problem of organising a number of events at the college I worked at. The college had an intro day event for prospective students where they could attend a selection of lessons for subjects they had applied for. In addition local feeder schools were invited in on different days to try out nominated sessions (essentially it was a marketing activity).

Each event typically involved 200-300 students attending a total of 50-80 sessions taking place over 2 days. Prior to my joining the college this had been managed manually (!!) but as you would expect this posed a number of problems.

  1. Whilst we wanted to provide enough sessions we didn't want to have sessions with only a couple of students in them. But allocating manually frequently resulted in hugely unbalanced sessions because students could have their subject choices met in a different order students allocated earlier were not efficiently allocated causing problems when allocating students further down the list
  2. Quite often we were left with a lot of students who could not be placed in sessions because of clashes (and combinations that would work were already full).
It's difficult to explain but anyone who has attempted this kind of timetabling will be all too familiar with the problems involved. It was labour intensive and inneficient. 

I decided to code a solution in Microsoft Excel using VBA code. The code uses artificial intelligence search methods to try every possible allocation and choose the most efficient. It automatically set balances and generates a programme for each student that can then be mailmerged into a custom individual programme. The spreadsheet also generates a set of registers for each session. 

Once set up you can run the allocation again and again to find the most efficient combination of sessions to meet your needs. 

you can download a free copy of the spreadsheet here