Overslaan naar hoofdinhoud

Een noodgebouw roosteren met combinatieblokken - Artikelen / Roosteren / Tutorials - Zermelo Support

Een noodgebouw roosteren met combinatieblokken

Lijst van auteurs

Een school heeft wegens lokalentekort een noodgebouw met een paar lokalen. Dit noodgebouw ligt op ongeveer 15 minuten fietsafstand van het hoofdgebouw. De noodlokalen zijn alleen geschikt voor theorielessen. We willen voorkomen dat leerlingen tussen de lessen door heen-en-weer moeten fietsen. Daarom willen we een aantal klassen aanwijzen die bijvoorbeeld één dag in de week een hele noodgebouw-dag hebben. Dit noemen we een "N-dag". We lopen tegen 2 problemen aan als we dit willen roosteren:

Probleem 1: leerlingen mogen alleen theorielessen hebben op hun N-dag.

Probleem 2: docenten moeten zo min mogelijk pendelen tussen beide gebouwen, en als ze pendelen moet dat in pauze of tussenuur.

Tot de release van 22.03 was het aanwijzen van de N-dag per klas min of meer nattevingerwerk. Met combinatieblokken kunnen we de N-dagen optimaal bepalen. Om het pendel-probleem op te lossen, moeten we na het optimaliseren van de N-dagen per klas deze vastzetten.

Het voorbeeld

Het noodgebouw heeft 3 lokalen. We wijzen 15 klassen aan die elk één dag in de week les krijgen in het noodgebouw N. Daarmee is N de hele week gevuld. 


Er zijn 9 lesuren op een dag. Het idee is nu dat we aan elk van de 15 klassen een 9 lesuren breed combinatieblok koppelen (het "N-blok"). Dit N-blok bestaat uit "lessen" die alléén een Vak, Uur, Dag en Tdv hebben. Het zijn dummylessen die nooit botsen. We regelen vervolgens met een telgroep per klas, dat er nooit een les van de klas tegelijk met het N-blok staat die niet in het noodgebouw mag plaatsvinden.

Hieronder leest u hoe we dit in 14 stappen roosteren.

Klassikale lessen

Let op! In de onderstaande stappen gebruiken we klassikale lessen. Zijn er echter ook een (paar) clustergroepen die moeten plaatsvinden in het noodgebouw, dan werkt deze opzet niet.  


Stap 1: Maak 15x9 N-lessen aan

Als eerst willen de lessen van het N-blok aanmaken. Dat zijn 15 x 9 = 135 N-lessen.

Maak in het lesdomein één nieuwe les aan. Geef deze les de volgende eigenschappen:

  • gewenst aantal docenten 0
  • gewenst aantal lokalen 0
  • gewenst aantal posities 135
  • vak N
  • tijdvak tv1

Maak een telgroep Ndummies voor deze 135 N-lessen.

Stel in dat er maximaal 3 lessen tegelijkertijd in het rooster mogen staan. We hebben immers slechts 3 lokalen in het noodgebouw.

Stap 2: Maak roosterplan N-lessen

De telgroep zetten we in het roosterplan om de N-lessen in te roosteren.

Ga naar Roosterplan+ en voeg de telgroep Ndummies toe als een roosterplan. Rooster de lessen in binnen het roosterplan.

Stap 3: Maak combinatieblokken

Dit is de stap waarin we de N-blokken maken met de N-lessen.

Selecteer 9 opeenvolgende lessen op één dag en maak met sneltoets C een combinatieblok aan. Doe dit ook voor de overige 8 N-blokken.

Stap 4: Maak van elke combinatieblok een lesverzameling

We hebben lesverzamelingen nodig voor elk combinatieblok. Daar is een voorziening voor.

Selecteer de lessen van een N-blok. Ga naar Extra > Maak nieuwe lesverzameling van selectie of gebruik sneltoets J. We hebben op deze manier een lesverzameling gemaakt met een volgnummer, het eerstvolgende vrije nummer. Dit zien we als we naar Telgroepen en lesverzamelingen inrichten gaan.

Het is dus mogelijk om stap 3 en 4 voor elk N-blok achter elkaar uit te voeren. Selecteer de lessen van een N-blok en druk op en J.

Doe dit zorgvuldig. Controleer het resultaat, bijvoorbeeld met behulp van de participatiematrix.


Stap 5: Maak lesverzamelingen van alle noodgebouwlessen en van alle niet-noodgebouwlessen

We maken in deze stap twee lesverzamelingen om onderscheid te maken tussen de noodgebouw- en niet-noodgebouwlessen. Het doel van deze lesverzamelingen is dat we straks makkelijker de andere telgroepen en lesverzamelingen kunnen maken. Het is handig als we hiervoor een vakverzameling aanmaken via het Vaksetdomein van alle noodgebouwvakken.

Maak beide lesverzamelingen aan:

  1. Een lesverzameling met de Noodgebouwvakken als de de lessen die eventueel in het noodgebouw mogen plaatsvinden.
  2. Een lesverzameling van de overige lessen, die dus in het hoofdgebouw moeten plaatsvinden.

Uiteraard kunnen we dit subtieler inrichten als dat gewenst is. Bijvoorbeeld door de lessen eruit te halen van docenten die slecht ter been zijn, of de theorielessen erin stoppen van biologie (dus zonder de lessen die in het practicumlokaal moeten zoals opgegeven in Stap 8 bij invoer lokaalwensen). 

Stap 6: Maak voor elke klas een telgroep met niet-noodgebouwlessen + één combinatieblok

We maken nu telgroepen op basis van de klassikale groep plus een combinatieblok. Met deze telgroepen zorgen we ervoor dat de niet-noodgebouw lessen geroosterd worden op de dagen waar het combinatieblok van die klas niet staat. De dag met het combinatieblok is de dag waarop we straks lessen inroosteren die eventueel wel in het noodgebouw mogen.


Clusterlessen

Mochten er clusterlessen zitten in de verzameling NietNoodgebouw (uit stap 5), voeg die dan handmatig toe.

Stap 7: Zet de telgroepen van stap 6 op max 1 en rooster ze in

Bij Telgroepen uitgebreid stellen we in dat we maximaal 1 les tegelijkertijd willen per klas. Daarna roosteren we de lessen van de klassen samen met de N-blokken in.


Clustergroepen in de telgroep

In stap 7 maken we een telgroep met max 1 positie. Dat werkt niet bij clustergroepen, omdat deze tegelijkertijd geroosterd mogen worden. De leerlingen kiezen bijvoorbeeld Frans óf Duits, en deze mogen niet op de dislocatie. In dat geval moet de telgroep op een niet dislocatie dag toestaan dat er meer dan 1 les komt te staan. Dat kan niet met gewone telgroepen. Het kan eventueel wel met supertelgroepen.

Stap 8: Maak extra eigenschap bij de N-dummies om de klas te controleren

We maken in het lesdomein een extra eigenschap bij de N-dummies. In die extra eigenschap vermelden we de klas die hoort bij het combinatieblok van de N-dummies. Zo kunnen we makkelijk zien waar de N-dagen in het rooster staan voor elke klas.

Stap 9: Rooster de overige lessen in en optimaliseer

Natuurlijk is de keuze van de volgorde bij roosteren van belang. Normaliter is dat belangrijk en bij deze roostersituatie is dat niet anders.

We roosteren de overige lessen in. Wat we realiseren op dit moment is dat elk van de 15 klassen een dag heeft waarop er geen lessen staan die niet in het noodgebouw mogen plaatsvinden. Op elke dag hebben we drie klassen die in het noodgebouw les hebben.

We moeten nu goed optimaliseren, omdat we straks de N-dagen fixeren.

Stap 10: Fixeer de N-dagen

Dit is een belangrijke stap. Ook is het in zekere zin een zwakke plek in het geheel. We kunnen niet de pendelbewegingen van docenten minimaliseren én tegelijk de N-dagen flexibel laten.

Dus wanneer de N-dagen niet goed staan, moeten we dit verder optimaliseren. Als de N-dagen goed staan, fixeren we de lessen op de N-dag.

Stap 11: Maak lesverzamelingen per dag aan en zorg dat dit maskers zijn

We maken lesverzamelingen aan. Deze gebruiken we zometeen bij de wisselrandvoorwaarden voor docenten. De lesverzamelingen gaan dus over:

  • de lessen die eventueel in het noodgebouw mogen op een bepaalde dag;
  • en lessen die in het hoofdgebouw moeten op een bepaalde dag.

Maak een lesverzameling van de lessen die ALS ze op maandag zijn, plaatsvinden in het noodgebouw. Vergeet er niet een masker van te maken. Doe hetzelfde voor dinsdag tot en met vrijdag.


Dan alle andere lessen. Maak een lesverzameling van de lessen die ALS ze op maandag zijn, plaatsvinden in het hoofdgebouw. Vergeet er ook weer niet een masker van te maken. Doe hetzelfde voor dinsdag tot en met vrijdag.

Stap 12: Maak standaard wisselrandvoorwaarden aan voor alle docenten

We maken wisselrandvoorwaarden voor alle docenten via de Randvoorwaarden verzamelingen docenten. Daar vullen voor elke dag een randvoorwaarde in voor wissels tussen het noodgebouw en het hoofdgebouw.

De wisselscoretabel vullen we als volgt in: 

Met deze strafpunten geven we aan dat wissels gemeden worden en dat er een tussenuur moet zijn als er toch een wissel is. Uiteraard is het mogelijk om dit subtieler aan te sturen.

Het gevolg van deze wisselrandvoorwaarden is dat docenten nu strafpunten krijgen voor wissels. We hebben immers als eerste een rooster gemaakt zonder rekening te houden met wissels bij docenten.

Deze docent heeft op de dinsdag twee wissels. Een van die wissels is ook nog zonder tussenuur. De docent krijgt voor die dinsdag 1.002.000 strafpunten.

De docent hieronder heeft op vrijdag vier wissels, waarvan drie zonder tussenuur. Deze docent krijgt daarvoor 3.004.000 strafpunten.

Stap 13: Optimaliseer je rooster

We optimaliseren het rooster, zodat de docenten geen onmogelijke wissels meer hebben tussen hoofd- en noodgebouw. Natuurlijk hangt veel samen met de andere eisen voor het rooster.

In dit voorbeeld is het (na optimaliseren) zo dat áls er docenten nog pendelen, dit altijd is in een tussenuur en hoogstens één keer per week.


Voorwaarde voor wissel op donderdag

Let op: de geselecteerde voorwaarde is voor de donderdag. Ook al zien we de gele en paarse kleur bij alle lessen van de week. De wisselstrafpunten zijn alleen voor de wissel op donderdag!

Stap 14: Het lokalenrooster

We kunnen het lokalenrooster op een ingewikkelde manier bouwen, of op een eenvoudige. We geven uiteraard voorkeur aan de eenvoudige.

Filter in het lesdomein de lessen van Nd2di voor zover ze op dinsdag plaatsvinden. Zet elke klas in zijn eigen noodlokaal. Fixeer zowel de les als het lokaal.

En daarmee is het rooster af. Pas in deze constructie wel erg op voor wijzigingen in het lesrooster na het maken van het lokalenrooster.