Having decided I need 7 lab slots & 4 Single-Honours lab groups, (c.f. lab1) and having got an outline of where they will be (c.f. sem1b, sem2b) I now need to make sure that I can fit the lab groups in, given the detailed constraints on their availability. I know this looks like overkill, but last year it was impossible to timetable the 1st year 1st semester lab, so I want to make sure that I can check all possible combinations. Notes: * Group X includes all doing PS modules. * Group X only has 3 possible lab slots, and needs 4, but we can spot that actually, few will be busy Th3-5, and those who are will be free Th1-3, and very few of those who will do PS will do CS121, so we can put two of the three CS121 labs at Th1-3 and Th3-5 and say that any X students who can't make Th3-5 do Th1-3 instead. * CS151 lab may use Unix or Windows (not clear yet) so I will leave gaps for it Th1-3. ============================================================================== Sem 1 groups |Unix | Wind |Eng |Other(1hr) busy |104 |103/103 131 |121 |Tut 102 ----------------+-------+---------------+-------+----------------------------- Mo10-12 bM | | | | Mo1-3 m | | | | Mo3-5 XM | | | | Tu10-12 X | | | | Th1-3 Xb | (151) | --- (151) --- |x | Th3-5 Xb | | |X | Fr3-5 | | | | ----------------+-------+---------------+-------+----------------------------- The way to move forward from here is to spot that, as B and M are both split into 2 lab groups, and all do CS104 at different times, then their lab times are ALL the CS104 lab times. The CS104 lab slots for B must also be their CS131 lab slots. After finding the CS103, CS131 and CS121 lab times for B, there are only 2 extra CS131 lab slots and 1 extra CS103 labs slot to find, which must be the remaining 3 slots available in the Windows lab. Also, the number of possible combinations of lab times for B and M is only 14. Because SHons group X is also limited, we can put that in as well. (X1, X2, X3 = alternative subchoices) WLOG CS104 labs = W, Y, Z in order. Eng labs organised WB XY XZ or similar permuting WXYZ Remember that there are only 2 CS103 slots # = because we need 2 groups (from WXYZB) for CS103,CS103 and 2 different groups for CS121 some of these possibilities can't work. ============================================================================== Sem 1 groups |Unix | Wind |Eng | busy |104 |103,103 131 |121 |eng+CS103 (1)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | | X | | Mo1-3 m | |XB,_B | | Mo3-5 XM |WB | _B | | Tu10-12 X |YM |? ? |_B |# WZ Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM |? ? |X_ |# WY Fr3-5 |XB | _B | | (2)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | | X | | Mo1-3 m | |XB,_B | | Mo3-5 XM |WB | _B | | Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM |? ? |X_ |# WY Fr3-5 |XM |? ? |_B |WYZ (3)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X,_ | | Mo1-3 m |W/X1?B | X2?B | | Mo3-5 XM | |_B,_B | | Tu10-12 X |YM |? ? |_B |# WZ Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM |? ? |X_ |# WY Fr3-5 |W/X2?B | X1?B | | (4)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X23?,_ X1? | | Mo1-3 m |W/X13?B| X2?B | | Mo3-5 XM | |_B,_B | | Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | |X_ | Fr3-5 |W/X2?M |X1?,_ X3? |_B |W13YZ (5)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X1?,_ X2? | | Mo1-3 m | |X2?,_ X1? |_B |WYZ Mo3-5 XM |WB | _B | | Tu10-12 X |YM |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | ? |X_ | Fr3-5 |XB | _B | | (6)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X,_ | | Mo1-3 m |W/X1?B | X2?B | | Mo3-5 XM | | ? |_B |WYZ Tu10-12 X |YM |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | ? |X_ | Fr3-5 |W/X2?B | X1?B | | (7)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X1?,_ X2? | | Mo1-3 m |XB | _B | | Mo3-5 XM |WB | _B | | Tu10-12 X |YM |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | ? |X_ | Fr3-5 | |X2?,_ X1? |_B |WYZ (8)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X23?,_ X1? | | Mo1-3 m |W/X13?B| X2?B | | Mo3-5 XM |YB | _B | | Tu10-12 X |ZM |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb | | ? |X_ | Fr3-5 |W/X2?M |X1?,_ X3? |_B |W13YZ (9)-------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X23?,_ X1? | | Mo1-3 m |W/X13?B| X2?B | | Mo3-5 XM |YB | _B | | Tu10-12 X | |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | ? |X_ | Fr3-5 |W/X2?M |X1?,_ X3? |_B |W13YZ (10)------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X1?,_ X2? | | Mo1-3 m | |X2?,_ X1? |_B |WYZ Mo3-5 XM |WB | _B | | Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | ? |X_ | Fr3-5 |XM |_B,_B | | (11)------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X2?,_ X1? | | Mo1-3 m |W/X1?B | X2?B | | Mo3-5 XM | |? ? |_B |WYZ Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM |? ? |X_ |# WY Fr3-5 |W/X2?M |X1?B,_B | | (12)------------+-------+---------------+-------+----------------------------- Mo10-12 bM | | X | | Mo1-3 m |XB | _B | | Mo3-5 XM |WB | _B | | Tu10-12 X |YM |? ? |_B |# WZ Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM |? ? |X_ |# WY Fr3-5 | |XB,_B | | (13)------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X1?,_ X2? | | Mo1-3 m |W/X2?B | X1?B | | Mo3-5 XM |YB | _B | | Tu10-12 X |ZM |? ? |_B |# WY Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb | |? ? |X_ |WYZ Fr3-5 |W/X1?M |X2?B,_B | | (14)------------+-------+---------------+-------+----------------------------- Mo10-12 bM | |X1?,_ X2? | | Mo1-3 m |W/X2?B | X1?B | | Mo3-5 XM |YB | _B | | Tu10-12 X | |? ? |_B |WYZ Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM |? ? |X_ |# WY Fr3-5 |W/X1?M |X2?B,_B | | ----------------+-------+---------------+-------+----------------------------- There are obviously plenty of possible timetables, so I can afford to make some value judgements to pick "good" ones. There is a hidden problem, in that the AI students in group X currently have the most crowded timetable, and in fact I have to move the Monday morning slot to 9-11 to put an examples class or tutorial in for them at 12. There is only one other hour left in their week, at Tuesday 3pm or Friday 2pm, when they will have to do the other one. Although this also removes the bM constraint in that first lab slot, I want to minimise the activities at 9am, so I will pick the timetables with only group X in then. Also removing impossible combinations for CS121/CS103 & filling in some of the blanks gives the following 7 possibilities, all with group X doing CS131 lab Monday 9-11: ============================================================================== Sem 1 groups |Unix | Wind |Eng | busy |104 |103,103 131 |121 | ----------------+-------+---------------+-------+----------------------------- Mo9-11 | | X | | (2)-------------+-------+---------------+-------+----------------------------- Mo1-3 m | |XB,_B | | Mo3-5 XM |WB | _B | | Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | _ |X_ | Fr3-5 |XM |_,_ |_B | (5.2)-----------+-------+---------------+-------+----------------------------- Mo1-3 m | |X,_ |_B | Mo3-5 XM |WB | _B | | Tu10-12 X |YM |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | _ |X_ | Fr3-5 |XB | _B | | (7.2)-----------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | _B | | Mo3-5 XM |WB | _B | | Tu10-12 X |YM |_B,_B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | _ |X_ | Fr3-5 | |X,_ |_B | (10.2)----------+-------+---------------+-------+----------------------------- Mo1-3 m | |X,_ |_B | Mo3-5 XM |WB | _B | | Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | _ |X_ | Fr3-5 |XM |_B,_B | | (11.1)----------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | _B | | Mo3-5 XM | |_,_ |_B | Tu10-12 X |YB | _B | | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | _ |X_ | Fr3-5 |WM |XB,_B | | (13.2)----------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | _B | | Mo3-5 XM |YB | _B | | Tu10-12 X |ZM | _ |_B | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb | |_,_ |X_ | Fr3-5 |WM |XB,_B | | (14.2)----------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | _B | | Mo3-5 XM |YB | _B | | Tu10-12 X | |_,_ |_B | Th1-3 Xb | (151) | --- (151) --- |x__ | Th3-5 Xb |ZM | _ |X_ | Fr3-5 |WM |XB,_B | | ----------------+-------+---------------+-------+----------------------------- I would also like to minimise students hanging around waiting for the 3-5pm lab to start, so I would prefer to have 104 & 131 labs 1-3pm (if it is 103, that means that at least every other week students are hanging around), and I can fit in (weekly) examples classes or tutorials to soak up spare time. Also, I would prefer to make fortnightly events happen after weekly events, so that students don't have to remember whether to come in or not (i.e. not CS103 labs on Tuesday 10-12 - in fact, 3-5 is the best time for them.) ============================================================================== Sem 1 groups |Unix | Wind |Eng |Other(1hr) busy |104 |103,103 131 |121 |tut 102 ----------------+-------+---------------+-------+----------------------------- Mo9-11 | | X | |(Mo12: X) (11.1a)---------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | Z/WB | |Y Z/W Mo3-5 XM | |W,Z |YB | Tu10-12 X |YB | W/ZB | | Th1-3 Xb | (151) | --- (151) --- |xZW |Y Th3-5 Xb |ZM | Y |XW | Fr3-5 |WM |XB,YB | | (11.1b)---------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | Z/W/YB | |WY/YZ/WZ Mo3-5 XM | |W,Y |ZB | Tu10-12 X |YB | W/Z/ZB | | Th1-3 Xb | (151) | --- (151) --- |xYW |Z Th3-5 Xb |ZM | Y/Y/W |XW/W/Y | Fr3-5 |WM |XB,ZB | | (13.2a)---------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | Z/YB | |W Y/Z Mo3-5 XM |WB | Y/ZB | | Tu10-12 X |YM | W |ZB | Th1-3 Xb | (151) | --- (151) --- |xYW |Z,Y Th3-5 Xb | |Z,Y |XW | Fr3-5 |ZM |XB,WB | | (13.2b)---------+-------+---------------+-------+----------------------------- Mo1-3 m |XB | WB | |Y Mo3-5 XM |WB | YB | | Tu10-12 X |YM | Z |WB | Th1-3 Xb | (151) | --- (151) --- |xYZ |Z,W Th3-5 Xb | |Z,W |XY | Fr3-5 |ZM |XB,YB | | ----------------+-------+---------------+-------+-----------------------------