Multi Klausurplanung CNF:Hauptseite: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(41 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Hinweise ===
=== Hinweise ===
Klausurplanung_CNF wurde in JAVA von Benjamin Bartsch programmiert. Die Software ist "open source" und unterliegt der MIT oder der CC0 Lizenz, d.h. der Quellcode steht allen frei zur Verfügung, aber es dürfen keinerlei Ansprüche geltend gemacht werden. Wenn Sie den Autor kontaktieren möchten, finden Sie die E-Mail-Adresse innerhalb des Programms.
Multi_Klausurplanung_CNF wurde in JAVA von Benjamin Bartsch programmiert. Die Software ist "open source" und unterliegt der MIT oder der CC0 Lizenz, d.h. der Quellcode steht allen frei zur Verfügung, aber es dürfen keinerlei Ansprüche geltend gemacht werden. Wenn Sie den Autor kontaktieren möchten, finden Sie die E-Mail-Adresse innerhalb des Programms.


Das Programm arbeitet auf Basis der Daten des Programms Kurs42. Wenn Sie eine Import/Exportfunktion zu anderen Programmen wünschen, können Sie den Autor kontaktieren.
Das Programm arbeitet auf Basis der Daten des Programms Kurs42. Wenn Sie eine Import/Exportfunktion zu anderen Programmen wünschen, können Sie den Autor kontaktieren.
Zeile 6: Zeile 6:
Das Programm unterstützt eine Vielzahl von Nebenbedingungen (Regeln genannt). Wenn Sie für Ihre Schule  zusätzliche Regeln benötigen, können Sie ebenfalls den Autor kontaktieren.
Das Programm unterstützt eine Vielzahl von Nebenbedingungen (Regeln genannt). Wenn Sie für Ihre Schule  zusätzliche Regeln benötigen, können Sie ebenfalls den Autor kontaktieren.


Das Programm Klausurplanung_CNF berechnet mehrere Klausurpläne parallel und in Beziehung zueinander, so dass z.B. in der gymnasialen Oberstufe alle drei Jahrgangsstufen in einer gemeinsamer Klausurplanung berechnet werden. Die Details dazu finden Sie in diesem Wiki.
Das Programm Multi_Klausurplanung_CNF berechnet mehrere Klausurpläne parallel und in Beziehung zueinander, so dass z.B. in der gymnasialen Oberstufe alle drei Jahrgangsstufen in einer gemeinsamer Klausurplanung berechnet werden. Die Details dazu finden Sie in diesem Wiki.


=== Vorbereitungen ===
=== Vorbereitungen ===


* Laden Sie sich den folgenden SAT-Solver (https://github.com/msoos/cryptominisat/releases) herunter und speichern Sie die Datei (für Windows: cryptominisat5-win-amd64-nogauss.exe) auf Ihrem PC und merken Sie sich den Pfad.
* Laden Sie sich den folgenden SAT-Solver (https://github.com/msoos/cryptominisat/releases) herunter und speichern Sie die Datei (für Windows: cryptominisat5-win-amd64-nogauss.exe) auf Ihrem PC und merken Sie sich den Pfad.
* Installieren Sie ggf. JAVA und laden sich sich dann die aktuellste Version von Klausurplanung_CNF herunter (https://schulverwaltungsinfos.nrw.de/svws/forum/viewtopic.php?f=71&t=1302).
* Installieren Sie ggf. JAVA und laden sich sich dann die aktuellste Version von Multi_Klausurplanung_CNF herunter (https://schulverwaltungsinfos.nrw.de/svws/forum/viewtopic.php?f=71&t=1928).
* Sie haben nun das Programm in Form einer JAR-Datei, welche man mit einem Doppelklick starten kann. Dort müssen Sie dort zunächst den Pfad zu cryptominisat...exe angeben und können dann arbeiten, aber zuvor müssen Sie jedoch noch aus Kurs42 Ihre Daten exportieren.
* Sie haben nun das Programm in Form einer JAR-Datei, welche man mit einem Doppelklick starten kann. Dort müssen Sie dort zunächst den Pfad zu "cryptominisat...exe" angeben und können dann arbeiten, aber zuvor müssen Sie jedoch noch aus Kurs42 Ihre Daten exportieren.


=== Daten in Kurs42 vorbereiten und exportieren ===
=== Daten in Kurs42 vorbereiten und exportieren ===
Zeile 19: Zeile 19:
* Unter ''Import/Export --> Export in Textdatei'' werden sämtliche Häkchen gesetzt und ein Zielordner gewählt.
* Unter ''Import/Export --> Export in Textdatei'' werden sämtliche Häkchen gesetzt und ein Zielordner gewählt.
* Der letzte Schritt ist für alle zu planenden Jahrgangsstufen zu wiederholen - für jede Jahrgangsstufe muss ein separater Unterordner verwendet werden (bspw. "Blockung EF", "Blockung Q1", "Blockung Q2").
* Der letzte Schritt ist für alle zu planenden Jahrgangsstufen zu wiederholen - für jede Jahrgangsstufe muss ein separater Unterordner verwendet werden (bspw. "Blockung EF", "Blockung Q1", "Blockung Q2").
* In Klausurplanung_CNF unter ''Importieren'' alle soeben erstellten Ordner gleichzeitig auswählen (Mehrfachauswahl: Strg-Taste gedrückt halten).
* In Multi_Klausurplanung_CNF unter ''Importieren'' alle soeben erstellten Ordner gleichzeitig auswählen (Mehrfachauswahl: Strg-Taste gedrückt halten).
* Das Programm ist nun bereit für die Arbeiten am Klausurplan.
* Das Programm ist nun bereit für die Arbeiten am Klausurplan.


=== Vorbereitungen und Rechnung ===
=== Vorbereitungen und Rechnung ===  
 
[[Datei:Multi Klausurplaner Main.png|300px|thumb|right|Hauptfenster mit Dateneingabe]]
* Auf der Registerkarte "Eingabe" legen Sie den Beginn und das Ende des Klausurzeitraums an (frühester Termin der 1. Klausur und spätester Termin der letzten Klausur).
* Auf der Registerkarte "Eingabe" legen Sie den Beginn und das Ende des Klausurzeitraums an (frühester Termin der 1. Klausur und spätester Termin der letzten Klausur).
* Die maximale Anzahl von Klausuren eines Schüler bzw. einer Schülerin ist standardmäßig auf drei pro Woche voreingestellt. Dies kann bei Bedarf geändert werden.
* Die maximale Anzahl von Klausuren eines Schüler bzw. einer Schülerin ist standardmäßig auf drei pro Woche voreingestellt. Dies kann bei Bedarf geändert werden.
* Im Fenster Regeln werden nun die nötigen Regeln für den Klausurplan per Dropdown ausgewählt und präzisiert (siehe nachfolgender Abschnitt).
* Im Fenster Regeln werden nun die nötigen Regeln für den Klausurplan per Dropdown ausgewählt und präzisiert (siehe nachfolgender Abschnitt).
* Ist dies geschehen, kann die Rechnung durch Klick auf "+" gestartet werden. Mehrere Rechnungen sind, je nach Leistung des Computers, möglich. Als Orientierungswert gilt: höchstens eine Rechnung pro CPU-Kern.
* Ist dies geschehen, kann die Rechnung durch Klick auf "+" gestartet werden. Mehrere Rechnungen sind, je nach Leistung des Computers, möglich. Es gibt eine "Warteschlange der Berechnungen", da eine Berechnung sehr viel Arbeitsspeicher verbraucht. So können Sie über Nacht auch mehrere Berechnungen zur Abarbeitung hinzufügen. Als Orientierungswert gilt: höchstens eine Rechnung pro CPU-Kern.


=== Regelwerk ===
=== Regelwerk ===
Zeile 54: Zeile 54:


'''Beispiel für Priorisierung'''
'''Beispiel für Priorisierung'''
 
: Die folgenden Beispiele zeigen eine Priorisierung aus Anwendersicht, also für die eigene Orientierung. Das Programm kennt keine Prioritäten, es versucht stets <b>alle</b> Bedingungen zu erfüllen.
;Priorität I (Klausurtage)
;Priorität I (Klausurtage)
: 900#Optimiere: Stufe <EF> hat maximal <15> Klausurtage.
: 900#Optimiere: Stufe <EF> hat maximal <15> Klausurtage.
: 900#Optimiere: Stufe <Q1> hat maximal <15> Klausurtage.
: 900#Optimiere: Stufe <Q1> hat maximal <15> Klausurtage.
: 900#Optimiere: Stufe <Q2> hat maximal <15> Klausurtage.
: 900#Optimiere: Stufe <Q2> hat maximal <15> Klausurtage.
;Priorität II (betroffener Unterricht):
;Priorität II (betroffener Unterricht)
: 907#Optimiere: Stufe <EF> hat pro Stundenplanzelle (Summe über alle Wochen) maximal <5> Klausurtermine.
: 907#Optimiere: Stufe <Q1> hat pro Stundenplanzelle (Summe über alle Wochen) maximal <5> Klausurtermine.
: 907#Optimiere: Stufe <Q2> hat pro Stundenplanzelle (Summe über alle Wochen) maximal <5> Klausurtermine.
;Priorität III (Schüler)
;Priorität III (Schüler)
: 300#SchülerIn: Stufe <EF> und SchülerIn <*> in keiner Woche <3> Klausurtage aufeinanderfolgend.
: 300#SchülerIn: Stufe <EF> und SchülerIn <*> in keiner Woche <3> Klausurtage aufeinanderfolgend.
Zeile 68: Zeile 71:
: 301#SchülerIn: Stufe <Q2> und SchülerIn <*> Wochen-Summe mit <2> Klausurtagen aufeinanderfolgend maximal <10>.
: 301#SchülerIn: Stufe <Q2> und SchülerIn <*> Wochen-Summe mit <2> Klausurtagen aufeinanderfolgend maximal <10>.
;Priorität IV (Kursstunden)
;Priorität IV (Kursstunden)
: 921#Optimiere: Stufe <EF> hat in der Summe mindestens <40> Klausurstunden, die laut Plan stattfinden.
: 921#Optimiere: Stufe <Q1> hat in der Summe mindestens <50> Klausurstunden, die laut Plan stattfinden.
: 921#Optimiere: Stufe <Q2> hat in der Summe mindestens <50> Klausurstunden, die laut Plan stattfinden.


Beim Errechnen des Klausurplans wird nun so vorgegangen:  
Beim Errechnen des Klausurplans wird nun so vorgegangen:  
Zeile 124: Zeile 130:
|-
|-
|201#Plan: Stufe <A> und Stunden <nowiki><B></nowiki> bis <C> gesperrt.
|201#Plan: Stufe <A> und Stunden <nowiki><B></nowiki> bis <C> gesperrt.
|Sie sperren einige Stunden grundsätzlich für Klausuren einer bestimmten Stufe. Dies ist beispielsweise sinnvoll, um bspw. keine Klausuren in den Nachmittag rechnen zu lassen.
|Sie sperren einige Stunden grundsätzlich für Klausuren einer bestimmten Stufe. Dies ist beispielsweise sinnvoll, um bspw. keine Klausuren in den Nachmittag rechnen zu lassen. Diese Regel ignoriert mündliche Prüfungen!
|-
|-
|202#Plan: Stufe <A> und Datum <nowiki><B></nowiki> und Stunden <C> bis <D> gesperrt.
|202#Plan: Stufe <A> und Datum <nowiki><B></nowiki> und Stunden <C> bis <D> gesperrt.
|Sie sperren einige Stunden eines bestimmten Tages grundsätzlich für Klausuren einer bestimmten Stufe. Dies ist beispielsweise sinnvoll, um Termine der Schulgemeinde zu berücksichtigen, zu denen keine Klausuren stattfinden dürfen.
|Sie sperren einige Stunden eines bestimmten Tages grundsätzlich für Klausuren einer bestimmten Stufe. Dies ist beispielsweise sinnvoll, um Termine der Schulgemeinde zu berücksichtigen, zu denen keine Klausuren stattfinden dürfen. Diese Regel ignoriert mündliche Prüfungen!
|-
|-
|300#SchülerIn: Stufe <A> und SchülerIn <nowiki><B></nowiki> in keiner Woche <C> Klausurtage aufeinanderfolgend.
|300#SchülerIn: Stufe <A> und SchülerIn <nowiki><B></nowiki> in keiner Woche <C> Klausurtage aufeinanderfolgend.
Zeile 198: Zeile 204:
|Sie legen einen Datumsbereich für den Beginn einer bestimmten Klausur eines bestimmten Faches bzw. einer Kursart einer Stufe fest. Dies ist sinnvoll, um Klausuren zweier Quartale voneinander zu trennen.
|Sie legen einen Datumsbereich für den Beginn einer bestimmten Klausur eines bestimmten Faches bzw. einer Kursart einer Stufe fest. Dies ist sinnvoll, um Klausuren zweier Quartale voneinander zu trennen.
|-
|-
|455#Klausurbeginn: Ist in Stufe <A> generell verboten in Stunde <nowiki><B></nowiki>.
|455#Klausurbeginn: Ist in Stufe <A> generell verboten in Stunde <nowiki><B></nowiki> (außer mündl. Prüfungen).
|Sie sperren eine bestimmte Stunde im Stundenplan einer Stufe für den Klausurbeginn.
|Sie sperren eine bestimmte Stunde im Stundenplan einer Stufe für den Klausurbeginn. Mündliche Klausuren werden ignoriert.  
|-
|-
|456#Klausurbeginn: Ist in Stufe <A> generell verboten für Kursart <nowiki><B></nowiki> am Wochentag <C> von Stunde <D> bis <E>.
|456#Klausurbeginn: Ist in Stufe <A> generell verboten für Kursart <nowiki><B></nowiki> am Wochentag <C> von Stunde <D> bis <E> (außer mündl. Prüfungen).
|Sie sperren eine Stundenbereich eines bestimmten Wochentages (alle Wochen) im Stundenplan einer Stufe für den Klausurbeginn einer Kursart.
|Sie sperren eine Stundenbereich eines bestimmten Wochentages (alle Wochen) im Stundenplan einer Stufe für den Klausurbeginn einer Kursart. Mündliche Klausuren werden ignoriert.  
|-
|-
|900#Optimiere: Stufe <A> hat maximal <nowiki><B></nowiki> Klausurtage.
|900#Optimiere: Stufe <A> hat maximal <nowiki><B></nowiki> Klausurtage.
Zeile 233: Zeile 239:
|909#Optimiere: Stufe <A> hat pro Stundenplanzelle (Summe über alle Wochen) am Tag <nowiki><B></nowiki> in Stunde <C> maximal <D> Klausurtermine.
|909#Optimiere: Stufe <A> hat pro Stundenplanzelle (Summe über alle Wochen) am Tag <nowiki><B></nowiki> in Stunde <C> maximal <D> Klausurtermine.
|Sie legen eine Höchstgrenze für die Anzahl an Klausuren fest, die eine bestimmte Schulstunde eines bestimmten Tages (Summe über alle Wochen des Klausurplans) betreffen.
|Sie legen eine Höchstgrenze für die Anzahl an Klausuren fest, die eine bestimmte Schulstunde eines bestimmten Tages (Summe über alle Wochen des Klausurplans) betreffen.
|-
|910#Optimiere: Stufe <A> mit Kurs <nowiki><B></nowiki> hat maximal <C> Unterrichtsstunden mit fehlenden Schülern.
|Sie legen eine Höchstgrenze für Stunden eines bestimmten Kurses fest, in denen SchülerInnen aufgrund von Klausuren fehlen. Verwendet man *, so gilt die Höchstgrenze "pro Kurs".
|-
|911#Optimiere: Stufe <A> alle Kurse in Summe haben maximal <nowiki><B></nowiki> Unterrichtsstunden mit fehlenden Schülern.
|Kursübergreifende Variante von Regel 910. Sie legen die Summe von Unterrichtsstunden einer bestimmten Stufe fest, in denen SchülerInnen aufgrund von Klausuren fehlen.
|-
|912#Optimiere: Stufenübergreifend gibt es in Summe maximal <A> Unterrichtsstunden mit fehlenden Schülern.
|Stufenübergreifende Variante von Regel 910. Sie legen die Summe von Unterrichtsstunden aller Stufen fest, in denen SchülerInnen aufgrund von Klausuren fehlen.
|-
|920#Optimiere: Stufe <A> und Fach/Kursart <nowiki><B></nowiki>/<C> hat mindestens <D> Klausurstunden, die nach Plan stattfinden.
|Die Klausuren werden so geplant, dass eine bestimmte Mindestanzahl von Klausurstunden eines Faches bzw. einer Kursart innerhalb der regulären Unterrichtszeit der einzelnen Kurse stattfindet. Achtung: Wenn alle Kurse eines Faches parallel schreiben sollen, darf die Mindestzahl nicht zu hoch gewählt werden.
|-
|921#Optimiere: Stufe <A> hat in der Summe mindestens <nowiki><B></nowiki> Klausurstunden, die laut Plan stattfinden.
|Fächerübergreifende Variante von Regel 920. Wenn bei Stufe * gewählt wird, gilt die gewählte Mindestzahl von Klausurstunden "pro Stufe".
|-
|922#Optimiere: Insgesamt gibt es mindestens <A> Klausurstunden, die laut Plan stattfinden.
|Fächer- und Stufenübergreifende Variante von Regel 920.
|}
|}


===Beispiele===
===Ergebnisse einsehen===


'''Einführungsbeispiel 1: Erste Regeln für eine gleichzeitige Blockung von EF und Q1'''
Im Reiter "Ausgabe" können Sie die Ergebnisse der durchgeführten Rechnungen sehen. Neben einigen relevanten Statistiken sehen Sie hier auch den kompletten Klausurplan nach Jahrgangsstufen. Hier ein Eindruck:


100#Klausurphasen: Stufe <*> und Kurs <*> schreibt <2> Klausuren.
[[Datei:Multi Klausurplaner Klausuren pro Tag.png|500px|Übersicht über die klausurschreibenden Klausuren pro Tag]]
[[Datei:Multi Klausurplaner Zellenübersicht.png|500px|Belegung einzelner Stunden mit Klausuren (wochenübergreifend)]]
[[Datei:Multi Klausurplaner Klausurplan.png|500px|Klausurplan Beispielwoche]]


105#Klausurphasen: Stufe <*> und Fach/Kursart <*>/<*>: Abstand zweier Klausuren ist mindestens <25> Tage.
===Speichern und Rückimport===


151#Klausurlänge: Stufe <Q1> und Fach/Kursart <*>/<LK> mit Klausurnummer <*> hat Länge <4>.
Eine Rechnung, die als Klausurplan verwendet werden soll, kann gespeichert werden. Beim Speichern erstellt das Programm mehrere Ausgabe-Dateien:
* Pro Jahrgang eine XML-Datei, die in Kurs42 als Klausurblockung importiert werden kann. Die Zuordnung zu den Quartalen geschieht über die Klausurnummern.
* Die Datei Ausgabe.html enthält die Informationen, die auch der Multi-Klausurplaner nach erfolgter Rechnung anzeigt.
* Die Datei Statistik_Schueler.csv enthält pro SchülerIn die Gesamtzahl der Klausuren (AnzahlKlGes), die Anzahl der Wochen mit 2 bzw. 3 Klausuren (AnzWo2Kl AnzWo3Kl) und die Wochenanzahl mit 2 bzw. 3 aufeinanderfolgenden Klausuren (AnzWo2FoKl bzw. AnzWo3FoKl)
* Die Datei Statistik_Kurse_nach_Kursnamen enthält pro Kurs alle Klausurstunden (Datum/Stunde) in denen SuS fehlen. Es wird angezeigt wie viele SuS (AnzKlSchueler) von wie vielen (AnzGesSchueler) fehlen.
* Die Datei Statistik_Kurse_nach_Datum enthält die gleichen Informationen wie die vorherige Datei, ist aber nach Datum sortiert.


151#Klausurlänge: Stufe <Q1> und Fach/Kursart <*>/<GK> mit Klausurnummer <*> hat Länge <3>.
Rückimport der XML-Datei in Kurs42:
* Wählen Sie in Kurs42 den Reiter "Import/Export" und danach "Klausuren Im/Export" und "Klausurtermine aus XML importieren".
* Die Frage, ob die existierenden Klausurtermine gelöscht werden sollen, ist standardmäßig zu bejahen, kann im Einzelfall aber auch verneint werden, falls erforderlich (z.B. wenn Quartale einzeln berechnet wurden und getrennt importiert werden).
* Verwenden Sie nun Ihren Report, um die Daten weiter zu verarbeiten oder auszugeben.


151#Klausurlänge: Stufe <EF> und Fach/Kursart <*>/<*> mit Klausurnummer <*> hat Länge <2>.
===Beispiele===
 
201#Plan: Stufe <*> und Stunden <7> bis <10> gesperrt.
 
400#Klausurbeginn gemeinsam: Stufe <*> alle Kurse (außer LK und mündl. Prüfungen) mit gleichem Fach.
 
405#Klausurbeginn gemeinsam: Stufe <*> für alle Kurse des gleichen Tages.


901#Optimiere: Alle Stufen haben zusammen maximal <30> Klausurtage.
..wird ausgebaut...
60

Bearbeitungen

Navigationsmenü