Klausurplan automatisiert erstellen
Verfasst: Montag 5. Dezember 2011, 11:47
Hallo,
ich habe eine Idee für ein Programm, dass ich gerne schreiben möchte, jedoch habe ich noch nicht die Idee, wie ich starten soll bzw. mit welchen Techniken ich das geschickt umsetze. Hier hoffe ich auf Leute, die mehr Erfahrung haben als ich oder ggf. sowas schonmal gemacht haben.
Ich versuche das Problem mal so gut es geht zu beschreiben:
Wir müssen an unserer Schule für jedes Halbjahr einen Klausurplan erstellen, was bisher immer von Hand geschieht. Dabei kommen natürlich auch nicht so optimale Lösungen heraus, mit denen Schüler und Kollegen unzufrieden sind. Diese Klausurplanerstellung würde ich gerne automatisieren und optimieren, da sie jedes Schuljahr ansteht.
Folgende Rahmenbedingungen sind gegeben:
Ein Halbjahr besteht aus 2 Quartalen, in jedem Quartal ist der Klausurzeitraum fest vorgegeben und es gibt immer mal wieder Tage in diesem Zeitraum, an denen keine Klausuren geschrieben werden dürfen.
In einem Kurs werden pro Halbjahr entweder 1 (1. oder 2. Quartal) oder 2 Klausuren (je Quartal 1) geschrieben. Die Klausuren sollen zu den Zeiten stattfinden, in denen der Kurs jeweils vormittags Unterricht hat. Ist dies nicht möglich (weil z.B. der Kurs nur nachmittags unterrichtet wird), wird die Klausur in einen anderen Block verlegt. Es dürfen maximal drei Klausuren pro Woche geschrieben werden. Die LK-Blöcke schreiben in der Regel relativ zu Beginn der Quartale.
Jetzt kommen die Optimierungen, die ich gerne hätte:
Mein Problem ist, dass ich nicht genau weiß, wie ich anfangen soll. Das fängst schon bei der Datenstruktur an und hört bei der Optimierung auf. Für die drei Optimierungen müsste man ja im Prinzip jeweils einen Wert vergeben, der die Summe der Zeitabstände beinhaltet und die Lösung suchen, bei der alle drei Summen minimal sind.
Hat jemand schonmal ein ähnliches Problem gelöst und kann mir ggf. ein paar Starthilfen/Stichwörter geben.
ich habe eine Idee für ein Programm, dass ich gerne schreiben möchte, jedoch habe ich noch nicht die Idee, wie ich starten soll bzw. mit welchen Techniken ich das geschickt umsetze. Hier hoffe ich auf Leute, die mehr Erfahrung haben als ich oder ggf. sowas schonmal gemacht haben.
Ich versuche das Problem mal so gut es geht zu beschreiben:
Wir müssen an unserer Schule für jedes Halbjahr einen Klausurplan erstellen, was bisher immer von Hand geschieht. Dabei kommen natürlich auch nicht so optimale Lösungen heraus, mit denen Schüler und Kollegen unzufrieden sind. Diese Klausurplanerstellung würde ich gerne automatisieren und optimieren, da sie jedes Schuljahr ansteht.
Folgende Rahmenbedingungen sind gegeben:
Ein Halbjahr besteht aus 2 Quartalen, in jedem Quartal ist der Klausurzeitraum fest vorgegeben und es gibt immer mal wieder Tage in diesem Zeitraum, an denen keine Klausuren geschrieben werden dürfen.
In einem Kurs werden pro Halbjahr entweder 1 (1. oder 2. Quartal) oder 2 Klausuren (je Quartal 1) geschrieben. Die Klausuren sollen zu den Zeiten stattfinden, in denen der Kurs jeweils vormittags Unterricht hat. Ist dies nicht möglich (weil z.B. der Kurs nur nachmittags unterrichtet wird), wird die Klausur in einen anderen Block verlegt. Es dürfen maximal drei Klausuren pro Woche geschrieben werden. Die LK-Blöcke schreiben in der Regel relativ zu Beginn der Quartale.
Jetzt kommen die Optimierungen, die ich gerne hätte:
- zwei Klausuren im selben Kurs sollen zwischen den Quartalen möglichst weit auseinander liegen.
- die Schüler sollen ihre Klausurtermine möglichst gut verteilt haben.
- unterrichtende Kollegen sollen ihre Klausurtermine auch möglichst gut über das Halbjahr verteilt haben, damit die Korrekturbelastung gleichmäßig verteilt wird.
Mein Problem ist, dass ich nicht genau weiß, wie ich anfangen soll. Das fängst schon bei der Datenstruktur an und hört bei der Optimierung auf. Für die drei Optimierungen müsste man ja im Prinzip jeweils einen Wert vergeben, der die Summe der Zeitabstände beinhaltet und die Lösung suchen, bei der alle drei Summen minimal sind.
Hat jemand schonmal ein ähnliches Problem gelöst und kann mir ggf. ein paar Starthilfen/Stichwörter geben.