Two possible new constraints for Block planning mode

Started by Liviu Lalescu, June 09, 2021, 08:32:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Liviu Lalescu

These constraints were suggested by Darren McDonald and Samantha Goddard for the Block planning mode:

1) Activities occupy max hours (blocks). For instance, if there are 3 sets of simultaneous activities, the user would like that they occupy at most 2 hours: FET day 1 FET hours 2 and 3 and FET day 3 hour 3 (suggested by Darren McDonald and Samantha Goddard).

2) Activities not same hour (block) if in different days (suggested by Samantha Goddard).

What do you say? Should I think of trying to add these constraints to the official FET? (Block planning mode.) How about providing me with some examples to test these constraints?

Darren McDonald

Hmmm... I can't quite recall my motivation for suggesting constraint 1), but now I don't think I'd have much use for either of these constraints. (I can understand the rationale for wanting 2), since one might want a course to be available in several time slots, to facilitate student course changes once the block arrangement has been locked, but I don't think I'd want to impose this at the expense of maximizing the number of students who get their subject choices.)

However, there is another constraint type that I would find useful, something like "A set of activity tags are not overlapping in selected time slots". This would help with setting up the "Overflow" block for students whose course selections are impossible.

Here's an example where that constraint would be helpful. At the moment, I may have a teacher who can teach both math and physics, but would need to ensure that a time slot doesn't contain a mix of both math and physics students. For this, I use tags "Mathematics" and "Physics", and use the current constraint "A set of activity tags are not overlapping". This works well for the actual courses, but if a student's mathematics course can't be placed, they'll end up in the Overflow block. If a second student's Physics course can't be placed, they'll also need to appear in the "Overflow" block, but  this will be prevented by the constraint on tags. My current workaround is to add another block "Overflow 2". This suffices in my case, but in a school with teachers teaching several different subjects, they would potentially require several overflow slots for students who can't get their course selections. If I could prevent the tags from overlapping only in regular teaching blocks, and allow them to overlap in the Overflow block, I would only ever need one Overflow block for block planning.

Liviu Lalescu

Thank you, Darren! (1) is to ensure that some activities are in the same block, and I think you suggested this to me in a private email, I am not sure.

I think/hope your "A set of activity tags are not overlapping in selected time slots" is not really needed. Because you could allow all the overflow blocks (all FET days = real teachers) for these activities, and one student with Mathematics could be on day 2 overflow and another student with Physics could be on day 5 overflow. I also "hope", because this "in selected time slots" surely looks difficult/complicated to implement.

Darren McDonald

#3
Quote from: Liviu Lalescu on June 09, 2021, 10:11:11 PM
I think/hope your "A set of activity tags are not overlapping in selected time slots" is not really needed. Because you could allow all the overflow blocks (all FET days = real teachers) for these activities, and one student with Mathematics could be on day 2 overflow and another student with Physics could be on day 5 overflow. I also "hope", because this "in selected time slots" surely looks difficult/complicated to implement.

The only complication with this approach is that the activities are also restricted to certain FET days (real teachers). For example, all activities tagged "Math" are restricted to occur only in the times of those teachers who can teach mathematics, so students who don't get their math choice will be restricted to overflow slots for those teachers (and then the issue with overlapping tags may occur). However, multiple overflow slots does address this issue, so I can continue to use those.  :)

I do have another suggestion that would help with block planning (that may also be useful more generally). When selecting a set of activities (for time constraints, etc.) it would be very helpful if there were a way to select all activities that do not have a specific activity tag, teacher, etc. Would it be possible to add something like a "not" checkbox, or equivalent, to use when filtering activities? Very often with block planning I have restrictions that should apply to all courses except one, so this would be very useful.

Edit: Liviu, I've also just noticed that your post count is noteworthy today, at 7777 posts!

samantha.goddard

Hi Liviu and Darren,

Thanks for your thoughts on this.

I would particularly find 1) useful because it anticipates changes to students' schedules. For example, we often have students who decide to change Math class in September; they begin in IB Math A&A 11/12and then change to Pre-Calculus 11 or 12. It's useful therefore to have these in the same block because then we can move them between classes without affecting the rest of their schedule. I think when there is 1 class of each, we can do that at the moment. However, when there are 2 IB Math A&A classes but just one Pre-Calculus class, it's difficult to make that happen (although, of course, if they are in the 'other' Math class, their schedule has to change anyway!)

Having said that, as Darren says, I probably wouldn't want to use that constraint at the risk of not being able to schedule students' actual course selections right now.

With 2) maybe this is sorted out anyway because if lots of students have chosen both subjects then they are unlikely to fall on the same block. However, I know that there are some subjects I really need to be in different blocks because there is only one section of each and lots of students need both/all courses to graduate well. I.e. we have a good group of students in Grade 12 who need Pre-Calculus 12 and Social Justice 12 and Creative Writing 12 and Anatomy and Physiology so I would want them to be in different blocks.

I see those two functions as enabling the block planning platform to work more like the regular platform of FET, where it's easier to specify that two particular classes happen at the same time or at different times. And, it mirrors more of the process I would go through if I were block scheduling manually (i.e. I would be imagining which courses needed to be in the same block or in different blocks).

It would be good to know what others think! Thanks to you both for this fab program, have a good evening, Samantha

Liviu Lalescu

Quote from: Darren McDonald on June 09, 2021, 10:41:06 PM
Quote from: Liviu Lalescu on June 09, 2021, 10:11:11 PM
I think/hope your "A set of activity tags are not overlapping in selected time slots" is not really needed. Because you could allow all the overflow blocks (all FET days = real teachers) for these activities, and one student with Mathematics could be on day 2 overflow and another student with Physics could be on day 5 overflow. I also "hope", because this "in selected time slots" surely looks difficult/complicated to implement.

The only complication with this approach is that the activities are also restricted to certain FET days (real teachers). For example, all activities tagged "Math" are restricted to occur only in the times of those teachers who can teach mathematics, so students who don't get their math choice will be restricted to overflow slots for those teachers (and then the issue with overlapping tags may occur). However, multiple overflow slots does address this issue, so I can continue to use those.  :)

It is a recommendation, I think I modified also Samantha's file, you need to allow students' activities in any of the overflows (of any teacher). And I also recommend more overflows, just in case  :)

Quote
I do have another suggestion that would help with block planning (that may also be useful more generally). When selecting a set of activities (for time constraints, etc.) it would be very helpful if there were a way to select all activities that do not have a specific activity tag, teacher, etc. Would it be possible to add something like a "not" checkbox, or equivalent, to use when filtering activities? Very often with block planning I have restrictions that should apply to all courses except one, so this would be very useful.

Hmm, it is so easy in theory, but so difficult in practice, because there are very many dialogs to modify, and also it would complicate more the already very complicated dialogs. I will write this down in the TODO.

Quote
Edit: Liviu, I've also just noticed that your post count is noteworthy today, at 7777 posts!

:)

Liviu Lalescu

Quote from: samantha.goddard on June 10, 2021, 02:28:27 AM
Hi Liviu and Darren,

Thanks for your thoughts on this.

I would particularly find 1) useful because it anticipates changes to students' schedules. For example, we often have students who decide to change Math class in September; they begin in IB Math A&A 11/12and then change to Pre-Calculus 11 or 12. It's useful therefore to have these in the same block because then we can move them between classes without affecting the rest of their schedule. I think when there is 1 class of each, we can do that at the moment. However, when there are 2 IB Math A&A classes but just one Pre-Calculus class, it's difficult to make that happen (although, of course, if they are in the 'other' Math class, their schedule has to change anyway!)

Having said that, as Darren says, I probably wouldn't want to use that constraint at the risk of not being able to schedule students' actual course selections right now.

With 2) maybe this is sorted out anyway because if lots of students have chosen both subjects then they are unlikely to fall on the same block. However, I know that there are some subjects I really need to be in different blocks because there is only one section of each and lots of students need both/all courses to graduate well. I.e. we have a good group of students in Grade 12 who need Pre-Calculus 12 and Social Justice 12 and Creative Writing 12 and Anatomy and Physiology so I would want them to be in different blocks.

I see those two functions as enabling the block planning platform to work more like the regular platform of FET, where it's easier to specify that two particular classes happen at the same time or at different times. And, it mirrors more of the process I would go through if I were block scheduling manually (i.e. I would be imagining which courses needed to be in the same block or in different blocks).

It would be good to know what others think! Thanks to you both for this fab program, have a good evening, Samantha

Thank you, Samantha! I will consider these two constraints, because they are FET-style.

Could you tell me, and also Darren, for constraint (2) it would be much more complicated and less efficient to consider also only the selected slots (so, to exclude the overflows). How should I proceed? Are there enough overflows or should I consider the constraint to be "Activities not same hour (block) if in different days in selected slots"? (it is a very complicated name, and less efficient, and more error prone).

Darren McDonald

Quote from: Liviu Lalescu on June 10, 2021, 01:25:20 PM
Could you tell me, and also Darren, for constraint (2) it would be much more complicated and less efficient to consider also only the selected slots (so, to exclude the overflows). How should I proceed? Are there enough overflows or should I consider the constraint to be "Activities not same hour (block) if in different days in selected slots"? (it is a very complicated name, and less efficient, and more error prone).

I'm not sure I'd use this constraint, so Samantha might be best able to answer your questions here. I vote for the easiest option!  :D