Door
jens houwe
op 08-09-2013 18:54
gewijzigd op 08-09-2013 18:57
7.001 views
Hallo,
Mijn naam is Jens en ik werk op een school in Antwerpen. Ieder jaar is het een grote klus om de lessenroosters op te maken vandaar dat ik dit door php wil laten doen. Ik kom er zelf wel niet uit hoe ik dat zou moeten doen.
mijn database
leerlingen
-id
-naam
-klas (id)
...
vakken
-id
-klas (id)
-naam
-aantal_uur
-meerdere_uren (meerdere uren na elkaar)
-combiklas (1 = ja als het echt niet anders kan)
-eisen (gesplitst door een komma vb:lo,ict,beamer)
lokalen
-id
-naam
-plaatsen
-bestemming (voor lo, ict, beamer van de vakken)
leerkrachten
-id
-naam
-vakken (gesplitst door een komma vb: ned,ict,wis)
klas
-id
-naam
-afdeling
-graat
Alleen zou ik nu niet goed weten hoe ik het best het rooster kan maken? zelf vindt ik het zeer complex. Het zou soms ook als "meerdere_uren" bij vakken een 1 is geen vak maar 1 uur mogen geven (zoals praktijk) en het zou een beetje logisch moeten zijn.
Hoe zouden jullie dit doen?
Maar het probleem is dan dat ik niet weet hoe ik de vereiste moet inbouwen en ook niet voor meerdere uren dezelde les zoals praktijk (15 uur per week bijvoorbeeld) en combiklassen.
Je kunt het oplossen met lineair programmeren. Alle bekenden (x = 3) en alle voorwaarden (2 < y < 5) werk je uit in een matrix. Je idee om een array te gebruiken was dus juist. Daarmee kun je namelijk rekenen.
Je kunt zelfs een optimale oplossing vinden als je formaliseert wat "goed" en wat "slecht" is in termen van kosten. Bijvoorbeeld "het optimale rooster is het rooster waarbij kinderen zo min mogelijk hoeven oversteken".
Ik denk alleen dat PHP verre van ideaal is voor lineair programmeren. Op de universiteit gebruikten wij vroeger LinPro voor complexe optimalisaties.
En uiteraard volgend jaar wéér half opnieuw beginnen omdat er andere/nieuwe klassen zijn met andere leerkrachten en werktijdfactoren van leerkrachten.
Wij gebruiken al een systeem dat door mij geschreven is voor het beheer van de leerlingen en klassen, het enige dat dit jaar toegevoegd wordt zijn de lokalen.
Ward van der Put op 09/09/2013 08:34:34
Je kunt het oplossen met lineair programmeren. Alle bekenden (x = 3) en alle voorwaarden (2 < y < 5) werk je uit in een matrix. Je idee om een array te gebruiken was dus juist. Daarmee kun je namelijk rekenen.
Je kunt zelfs een optimale oplossing vinden als je formaliseert wat "goed" en wat "slecht" is in termen van kosten. Bijvoorbeeld "het optimale rooster is het rooster waarbij kinderen zo min mogelijk hoeven oversteken".
Ik denk alleen dat PHP verre van ideaal is voor lineair programmeren. Op de universiteit gebruikten wij vroeger LinPro voor complexe optimalisaties.
ken je dat eens verklaren?
ik dacht aan deze array vormen
<?php
$leerkrachten = array(
'ned' => array('1', '7', '3'),
'fra' => array('2', '4', '7')
//vak als key en de leerkrachten die dat vak geven in een array
);
$lokalen = array(
'15' => array('ict' => '2', 'les' => '8'),
'50' => array('les' => '3', 'bio' => '4')
//aantal plaatsen als key en in de array het doel en het id van de klas
);
?>
Hoe zou jij dat doen?
Ik wil eerst zelf eens proberen (omdat dat meteen op onze database kan worden gezet) en als het niet's wordt tegen nieuwjaar dan probeer ik een programma. De reden dat ik het zelf wil doen is zodat het dan met 1 database gaat en dat ik dus niet moet exporteren en importeren (als het niet anders gaat gaat het niet)
@OP: probeer eerst eens een gastenboek te maken, een rooster is ontzettend ingewikkeld om te maken waar grote bedrijven jaren mee bezig zijn. Als je het toch wilt doorzetten kun je het beste linear programmeren gebruiken inderdaad. Zorg eerst dat je alle eisen hebt, en probeer dan iets te vinden wat past. Als je google'd naar Dijkstra Algoritme zou je ver moeten kunnen komen
Voor magister hoef je niets te importeren en exporteren. Sterker nog volgens mij zorgen zij ervoor dat het goed aansluit op het systeem van de school. Overigens gebruiken veel onderwijs instellingen dit systeem. Voor Hogescholen en Universitaire instellingen heb je dan weer Blackboard en dat soort omgevingen ook wel het Elektronish Leer Omgeving genoemd. En ik denk dat het meer van deze tijd is dan een leraar dit te laten programmeren.
Voor magister hoef je niets te importeren en exporteren. Sterker nog volgens mij zorgen zij ervoor dat het goed aansluit op het systeem van de school. Overigens gebruiken veel onderwijs instellingen dit systeem. Voor Hogescholen en Universitaire instellingen heb je dan weer Blackboard en dat soort omgevingen ook wel het Elektronish Leer Omgeving genoemd. En ik denk dat het meer van deze tijd is dan een leraar dit te laten programmeren.
Wederom, hier ben ik het ook mee eens. Plus je kan veel meer met magister beginnen dan alleen roosters.