From Daan
Jump to: navigation, search
(Opdracht)
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
[[Image:underconstuction.jpg|thumb|right|Een versailles-patroon.]]
+
[[Image:roostering2.jpg|thumb|right|Hup, naar binnen.]]
 
 
==Woord Vooraf==
 
 
 
'Lectures en Lesoorsters' verkeert momenteel in het stadium 'protocase'. Ondanks dat het idee al een tijdje bestond is ze op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.
 
 
 
 
 
Protocases van dit vak hebben de eigenschap zich vaak grillig te gedragen; de uitkomsten zijn vaak onverwacht in moeilijkheidsgraad, oplossingsvorm of technologische mogelijkheden. Deze protocase kan daarom run-time aangepast worden om de studenten die deze case uitwerken een volwaardige leercurve te geven, en met een goed eindprodukt bij de externe lezers aan te komen.
 
  
  
 
==Inleiding==
 
==Inleiding==
  
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is in dat opzicht geen uitzondering. In deze case, waarin de data fictief is, moet een weekrooster gemaakt worden voor een vakkenlijst op Science park. Ieder vak moet ingeroosterd worden, en iedere student moet bij de vakken van zijn/haar inschrijving, in een zo net mogelijk rooster.
+
Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park.
  
 +
* Vakken bestaan uit vakactiviteiten: hoorcolleges en/of werkcolleges en/of practica.
 +
* Alle zalen zijn voor alledrie collegetypes geschikt.
 +
* Voor ieder vak is in de waarde E(studenten) aangegeven hoeveel inschrijvingen er verwacht worden.
 +
* Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.
 +
* Hoorcolleges moeten éérder in de week ingeroosterd worden dan andere activiteiten.
 +
* Bij werkgroepen en practica moeten de studenten, afhankelijk van de capaciteit, worden opgedeeld in zo weinig mogelijk groepen (zie kolommen "max. stud." in de vakkentabel).
 +
* Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd
 +
* Een geldig weekrooster is een weekrooster waarvoor aan alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.
 +
* Sommige vakken moeten tegelijkertijd volgbaar zijn; de verschillende opleidingsdirecteuren hebben dat aangegeven met een 'x' in een [http://www.heuristieken.nl/resources/tegelijkvolgbaar.csv matrix].
  
==Goede en slechte roosters==
 
  
*Vakken bestaan uit hoorcolleges en/of werkcolleges en/of practica.
+
==Opdracht==
*Bij hoorcolleges kunnen alle ingeschreven studenten ineens bedeeld worden, met werkgroepen en practica moeten ze, afhankelijk van de capaciteit worden opgedeeld in groepen.
 
*Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo' periode wordt een tijdsslot genoemd
 
*Een geldig weekrooster is een weekrooster waarvoor aan alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.
 
  
 +
a) Rooster alle vakken uit de onderstaande tabel in. Hou rekening met de vereiste volgorde van de colleges, en met de matrix. Je mag de verwachte studentenaantallen nog even vergeten.
  
  
'''Evaluatie'''
+
b) Hou nu wel rekening met de studentenaantallen. Voor iedere student die niet meer in de zaal past krijg je een maluspunt. Hoe minder maluspunten, hoe beter. De grootste zaal heeft ook een avondslot van 17:00-19:00, maar gebruik van het avondslot kost 20 maluspunten.
  
* Een geldig weekrooster levert 1000 punten op. Daarnaast zijn er bonus- en maluspunten te behalen.
 
  
 +
Studenten leren het meest als de activiteiten zoveel mogelijk verdeeld zijn over de week. Een vak van twee tot vier activiteiten die maximaal verdeeld zijn over de week levert 20 bonuspunten op. Voor twee activiteiten is dat ma-do of di-vr, voor drie activiteiten is dat ma-wo-vr en voor vier activiteiten is dat ma,di,do,vr.
  
'''Bonuspunten'''
 
  
* Studenten leren het meest als de activiteiten zoveel mogelijk verdeeld zijn over de week. Een vak van twee tot vier activiteiten die maximaal verdeeld zijn over de week levert 20 bonuspunten op. Voor twee activiteiten is dat ma-do of di-vr, voor drie activiteiten is dat ma-wo-vr en voor vier activiteiten is dat ma,di,do,vr.
+
c) Voor ieder vak van x activiteitsoorten geldt dat ze 10 maluspunten opleveren als er activiteiten op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3. Zorg voor een zo goed mogelijk rooster met dit nieuwe criterium.
  
  
'''Maluspunten'''
+
d) Roostering wil bekijken of roosters rekening kunnen houden met [http://www.heuristieken.nl/resources/studentenenvakken.csv individuele vakinschrijvingen]. Iedere student die geen vakconflicten heeft levert een bonuspunt op, ieder vakconflict van een student een maluspunt.
 
 
* Voor ieder vak van x activiteiten geldt dat ze 10 maluspunten opleveren als ze op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3.
 
* Voor ieder zaalslot geldt dat er een punt aftrekt valt voor iedere ingeschreven student die er volgens de opgegeven zaalgroote niet meer in past (-1)
 
* Voor iedere student die meer dan één activiteit in een tijdsslot heeft (een roosterconflict) geldt 1 maluspunt.
 
 
 
 
 
'''Escape'''
 
 
 
* De grootste zaal heeft ook een avondslot van 17:00-19:00, maar gebruik van het avondslot kost 50 maluspunten.
 
  
 +
==Zalen, Vakken en Inschrijvingen==
  
==Zalen, Vakken en Inschrijvingen==
 
  
 
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"
 
{| border="1" style="border-collapse:collapse; text-align:center; margin:4px"
Line 82: Line 71:
 
! #Practica
 
! #Practica
 
! Max. stud.
 
! Max. stud.
 +
! E(studenten)
 
|-
 
|-
 
| align="left" | Advanced Heuristics
 
| align="left" | Advanced Heuristics
Line 89: Line 79:
 
| 1
 
| 1
 
| 10
 
| 10
 +
| 22
 
|-
 
|-
 
| align="left" | Algoritmen en complexiteit
 
| align="left" | Algoritmen en complexiteit
Line 96: Line 87:
 
| 1
 
| 1
 
| 25
 
| 25
 +
| 47
 
|-
 
|-
 
| align="left" | Analysemethoden en -technieken
 
| align="left" | Analysemethoden en -technieken
Line 103: Line 95:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 60
 
|-
 
|-
 
| align="left" | Architectuur en computerorganisatie
 
| align="left" | Architectuur en computerorganisatie
Line 110: Line 103:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 19
 
|-
 
|-
 
| align="left" | Autonomous Agents 2
 
| align="left" | Autonomous Agents 2
Line 117: Line 111:
 
| 1
 
| 1
 
| 10
 
| 10
 +
| 19
 
|-
 
|-
 
| align="left" | Bioinformatica  
 
| align="left" | Bioinformatica  
Line 124: Line 119:
 
| 1
 
| 1
 
| 20
 
| 20
 +
| 40
 
|-
 
|-
 
| align="left" | Calculus 2
 
| align="left" | Calculus 2
Line 131: Line 127:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 90
 
|-
 
|-
 
| align="left" | Collectieve Intelligentie
 
| align="left" | Collectieve Intelligentie
Line 138: Line 135:
 
| 1
 
| 1
 
| 20
 
| 20
 +
| 65
 
|-
 
|-
 
| align="left" | Compilerbouw
 
| align="left" | Compilerbouw
Line 145: Line 143:
 
| 1
 
| 1
 
| 40
 
| 40
 +
| 70
 
|-
 
|-
 
| align="left" | Compilerbouw (practicum)
 
| align="left" | Compilerbouw (practicum)
Line 152: Line 151:
 
| 1
 
| 1
 
| 15
 
| 15
 +
| 35
 
|-
 
|-
 
| align="left" | Data Mining
 
| align="left" | Data Mining
Line 159: Line 159:
 
| 1
 
| 1
 
| 10
 
| 10
 +
| 30
 
|-
 
|-
 
| align="left" | Databases 2
 
| align="left" | Databases 2
Line 165: Line 166:
 
| 40
 
| 40
 
| 0
 
| 0
| nvt
+
| nvt
 +
| 69
 
|-
 
|-
 
| align="left" | Heuristieken 1
 
| align="left" | Heuristieken 1
Line 173: Line 175:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 44
 
|-
 
|-
 
| align="left" | Heuristieken 2
 
| align="left" | Heuristieken 2
Line 180: Line 183:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 30
 
|-
 
|-
 
| align="left" | Informatie- en organisatieontwerp
 
| align="left" | Informatie- en organisatieontwerp
Line 187: Line 191:
 
| 1
 
| 1
 
| 15
 
| 15
 +
| 40
 
|-
 
|-
 
| align="left" | Interactie-ontwerp
 
| align="left" | Interactie-ontwerp
Line 194: Line 199:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 31
 
|-
 
|-
 
| align="left" | Kansrekenen 2
 
| align="left" | Kansrekenen 2
Line 201: Line 207:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 70
 
|-
 
|-
 
| align="left" | Lineaire Algebra  
 
| align="left" | Lineaire Algebra  
Line 207: Line 214:
 
| nvt
 
| nvt
 
| 0
 
| 0
| nvt
+
| nvt
 +
| 50
 
|-
 
|-
 
| align="left" | Machine Learning
 
| align="left" | Machine Learning
Line 215: Line 223:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 25
 
|-
 
|-
 
| align="left" | Moderne Databases
 
| align="left" | Moderne Databases
Line 222: Line 231:
 
| 1
 
| 1
 
| 20
 
| 20
 +
| 60
 
|-
 
|-
 
| align="left" | Netwerken en systeembeveiliging
 
| align="left" | Netwerken en systeembeveiliging
Line 229: Line 239:
 
| 1
 
| 1
 
| 20
 
| 20
 +
| 50
 
|-
 
|-
 
| align="left" | Programmeren in Java 2
 
| align="left" | Programmeren in Java 2
Line 236: Line 247:
 
| 1
 
| 1
 
| 20
 
| 20
 +
| 95
 
|-
 
|-
 
| align="left" | Project Genetic Algorithms
 
| align="left" | Project Genetic Algorithms
Line 243: Line 255:
 
| 1
 
| 1
 
| 15
 
| 15
 +
| 40
 
|-
 
|-
 
| align="left" | Project Numerical Recipes
 
| align="left" | Project Numerical Recipes
Line 250: Line 263:
 
| 1
 
| 1
 
| 15
 
| 15
 +
| 40
 
|-
 
|-
 
| align="left" | Reflectie op de digitale cultuur
 
| align="left" | Reflectie op de digitale cultuur
Line 256: Line 270:
 
| 20
 
| 20
 
| 0
 
| 0
| nvt
+
| nvt
 +
| 53
 
|-
 
|-
 
| align="left" | Software engineering
 
| align="left" | Software engineering
Line 264: Line 279:
 
| 1
 
| 1
 
| 40
 
| 40
 +
| 75
 
|-
 
|-
 
| align="left" | Technology for games
 
| align="left" | Technology for games
Line 271: Line 287:
 
| 0
 
| 0
 
| nvt
 
| nvt
 +
| 50
 
|-
 
|-
 
| align="left" | Webprogrammeren en databases
 
| align="left" | Webprogrammeren en databases
Line 278: Line 295:
 
| 1
 
| 1
 
| 20
 
| 20
 +
| 46
 
|-
 
|-
 
| align="left" | Zoeken, sturen en bewegen
 
| align="left" | Zoeken, sturen en bewegen
Line 285: Line 303:
 
| 1
 
| 1
 
| 15
 
| 15
 +
| 45
 
|}
 
|}
  
 +
==Misc==
  
En tenslotte een lijst van [/resources/tutorial_SWN.pdf studenten en hun vakinschrijvingen] in csv-formaat.
+
Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.
 
 
 
 
==Advanced==
 
 
 
 
 
* Misschien is een aardige 'advanced'-opdracht om de boekingsbezetting (bezette tijdsslots tegen vrije tijdsslots) per zaal te registreren.
 
* Misschien is het ook aardig om de zetelbezetting (studenten tegen max. capaciteit) per zaal te registreren.
 
 
 
==Links==
 
 
 
Geen idee of dit interessant is:
 
 
 
http://www.math.cmu.edu/~af1p/Teaching/OR2/Projects/P23/ORProject_Final_Copy.pdf
 
  
  

Latest revision as of 12:58, 29 October 2018

Hup, naar binnen.


Inleiding

Lesroosters, of roosters in het algemeen, zijn buitengewoon lastig goed in te richten. Dienstregelingen voor treinen, vliegtuigen, multicore-processors en assembly lines hebben in dat opzicht een boel met elkaar gemeen. Zalenroostering op een universiteit is geen uitzondering. In deze case moet een weekrooster gemaakt worden voor een vakkenlijst op Science Park.

  • Vakken bestaan uit vakactiviteiten: hoorcolleges en/of werkcolleges en/of practica.
  • Alle zalen zijn voor alledrie collegetypes geschikt.
  • Voor ieder vak is in de waarde E(studenten) aangegeven hoeveel inschrijvingen er verwacht worden.
  • Bij hoorcolleges moeten alle ingeschreven studenten ineens bedeeld worden.
  • Hoorcolleges moeten éérder in de week ingeroosterd worden dan andere activiteiten.
  • Bij werkgroepen en practica moeten de studenten, afhankelijk van de capaciteit, worden opgedeeld in zo weinig mogelijk groepen (zie kolommen "max. stud." in de vakkentabel).
  • Een college duurt van 9:00-11:00, 11:00-13:00, 13:00-15:00 of 15:00-17:00 op een werkdag. Eén zo'n periode van twee uur wordt een tijdsslot genoemd
  • Een geldig weekrooster is een weekrooster waarvoor aan alle roosterbare activiteiten van ieder vak een tijdsslot met een zaal hebben. We noemen het paar tijdsslot-zaal een zaalslot.
  • Sommige vakken moeten tegelijkertijd volgbaar zijn; de verschillende opleidingsdirecteuren hebben dat aangegeven met een 'x' in een matrix.


Opdracht

a) Rooster alle vakken uit de onderstaande tabel in. Hou rekening met de vereiste volgorde van de colleges, en met de matrix. Je mag de verwachte studentenaantallen nog even vergeten.


b) Hou nu wel rekening met de studentenaantallen. Voor iedere student die niet meer in de zaal past krijg je een maluspunt. Hoe minder maluspunten, hoe beter. De grootste zaal heeft ook een avondslot van 17:00-19:00, maar gebruik van het avondslot kost 20 maluspunten.


Studenten leren het meest als de activiteiten zoveel mogelijk verdeeld zijn over de week. Een vak van twee tot vier activiteiten die maximaal verdeeld zijn over de week levert 20 bonuspunten op. Voor twee activiteiten is dat ma-do of di-vr, voor drie activiteiten is dat ma-wo-vr en voor vier activiteiten is dat ma,di,do,vr.


c) Voor ieder vak van x activiteitsoorten geldt dat ze 10 maluspunten opleveren als er activiteiten op x-1 dagen geroosterd zijn, 20 voor x-2 en 30 voor x-3. Zorg voor een zo goed mogelijk rooster met dit nieuwe criterium.


d) Roostering wil bekijken of roosters rekening kunnen houden met individuele vakinschrijvingen. Iedere student die geen vakconflicten heeft levert een bonuspunt op, ieder vakconflict van een student een maluspunt.

Zalen, Vakken en Inschrijvingen

Zaalnummber Max. capaciteit
A1.04 41
A1.06 22
A1.08 20
A1.10 56
B0.201 48
C0.110 117
C1.112 60


Vakken voor periode 4 #Hoorcolleges #Werkcolleges Max. stud. #Practica Max. stud. E(studenten)
Advanced Heuristics 1 0 nvt 1 10 22
Algoritmen en complexiteit 1 1 25 1 25 47
Analysemethoden en -technieken 1 0 nvt 0 nvt 60
Architectuur en computerorganisatie 2 0 nvt 0 nvt 19
Autonomous Agents 2 2 1 10 1 10 19
Bioinformatica 3 1 20 1 20 40
Calculus 2 1 1 40 0 nvt 90
Collectieve Intelligentie 3 1 20 1 20 65
Compilerbouw 2 1 40 1 40 70
Compilerbouw (practicum) 0 0 nvt 1 15 35
Data Mining 2 1 10 1 10 30
Databases 2 1 1 40 0 nvt 69
Heuristieken 1 1 1 25 0 nvt 44
Heuristieken 2 1 1 20 0 nvt 30
Informatie- en organisatieontwerp 2 1 15 1 15 40
Interactie-ontwerp 2 0 nvt 0 nvt 31
Kansrekenen 2 2 0 nvt 0 nvt 70
Lineaire Algebra 2 0 nvt 0 nvt 50
Machine Learning 2 0 nvt 0 nvt 25
Moderne Databases 1 1 20 1 20 60
Netwerken en systeembeveiliging 0 0 nvt 1 20 50
Programmeren in Java 2 0 0 nvt 1 20 95
Project Genetic Algorithms 0 0 nvt 1 15 40
Project Numerical Recipes 0 0 nvt 1 15 40
Reflectie op de digitale cultuur 2 1 20 0 nvt 53
Software engineering 1 1 40 1 40 75
Technology for games 2 1 20 0 nvt 50
Webprogrammeren en databases 2 1 20 1 20 46
Zoeken, sturen en bewegen 0 0 nvt 1 15 45

Misc

Deze case op verzoek van Justin Oud, Wouter Bohlken en Remco Mokveld (Heuristieken 2015a) tot eerste versie uitgewerkt. Overige betrokkenen in het proces zijn Marcella van Wijngaarden en Reinout Verbeek.


Terug

Terug naar de Heuristieken hoofdpagina.