Deputat_To_CNF
Moderator: wschrewe
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Deputat_To_CNF
Sehr geehrte Forenmitglieder,
anbei ein Programm zur 'optimalen' Verteilung von Lehrkräften auf Kurse. Das Programm heißt 'Deputat_To_CNF'. Sie benötigen den SAT-Solver CryptoMiniSat als externes Programm. Es folgt eine kurze Auflistung, was das Programm kann.
##### HINWEIS: Am Ende des Chats befindet sich immer die aktuellste Version. #####
FÄCHER
Können definiert/gelöscht werden. Fächer besitzen ein Kürzel und eine Beschreibung (D, Deutsch). Zur Zeit verwendet das Programm nur das Kürzel. Fächer können mit anderen zusammengefügt (merge) werden (ggf. nötig bei Importen). Ob man beispielsweise Deutsch, D-Förder, D-Lernzeit als drei Fächer oder als ein Fach modelliert hat Vor- und Nachteile. Persönlich würde ich nur das Fach Deutsch modellieren.
LEHRKRÄFTE
Können definiert/gelöscht werden. Jede Lehrkraft besitzt ein Kürzel und einen Namen (derzeit unwichtig). Eine Mindeststundenzahl (wird noch ignoriert), eine Maximalstundenzahl und eine etc-Stundenzahl (zb. Entlastung, nur wichtig zur Soll-Stunden-Darstellung). Zusätzlich kann die Anzahl an Klassenlehrerfunktionen begrenzt werden. Zudem kann forciert werden, dass die Klassenlehrerfunktion eine Mindestanzahl an Stunden in der jeweiligen Klasse zur Folge hat. Lehrkräfte können zu jedem Fach eine Maximalstundenanzahl definieren. Werte über 0 bedeuten, dass die Lehrkraft das Fach potentiell unterrichten darf. Lehrkräfte können zu jeder Klasse/Klassenlehrerfunktion eine Präferenz abgeben. Und Lehrkräfte können zu jedem Kurs eine Präferenz angeben.
KLASSEN (--> KURSE)
Klassen haben ein Kürzel und benötigen ggf. einen Klassenlehrer. Pro Klasse kann man Kurse definieren. Klassen können geklont werden. Kurse werden dabei dupliziert, außer der Kurs ist in einer Schiene, dann nimmt die Klasse an dem bereits existierenden Kurs teil.
KURSE
Ein Kurs hat ein Fach (unveränderlich) und einen Anzeigename. So kann man Deutsch, Deutsch-Förder, Deutsch-Lernzeit als 'D' deklarieren, die Kurse aber dennoch unterscheiden. Ein Kurs hat 1-n Klassen (Eingabe durch Komma getrennt). Der Kurs kann in einer Schiene sein --> Eine Lehrkraft kann nicht zwei Kurse innerhalb der selben Schiene unterrichten. Ein Kurs hat eine Mindest- und eine Maximalstundenanzahl. Das Minimum ist wichtig, wenn Kurse gekürzt werden dürfen. Ein Kurs kann in einer Stundengruppe sein. Kurse in der selben Stundengruppe haben stets die gleiche Stundenanzahl. So kann man z.B. erreichen, dass wenn zb. Religion in einer Schiene gekürzt wird, alle Religionskurse gekürzt werden. Ein Kurs kann in einer Lehrkraftgruppe sein. So kann man z.B. erreichen, dass wenn eine Lehrkraft Deutsch in einer Klasse unterrichtet, sie auch Deutsch-Lernzeit bekommen soll.
### BERECHNUNG ###
Die Berechnung hat drei Parameter, nach denen man optimieren kann. 'Summe aller Stundenkürzungen minimieren' und 'Summe unerfüllter Lehrer-Kurs-Präferenzen minimieren' und 'Summe unerfüllter Lehrer-Klassenlehrer-Präferenzen minimieren'.
Im oberen Teil sieht man hinter Lehrkräfte z.b. (900-950) und hinter Klassen (930-970). Die Zahlen zeigen das Stunden-Angebot der Lehrkräfte und die Stunden-Nachfrage der Kurse an. Nur bei Überschneidung der Intervalle macht die Berechnung mit dem Programm Sinn.
Herzliche Grüße
Benjamin Bartsch
PS: Fragen, Anregungen und Wünsche gerne hier posten.
anbei ein Programm zur 'optimalen' Verteilung von Lehrkräften auf Kurse. Das Programm heißt 'Deputat_To_CNF'. Sie benötigen den SAT-Solver CryptoMiniSat als externes Programm. Es folgt eine kurze Auflistung, was das Programm kann.
##### HINWEIS: Am Ende des Chats befindet sich immer die aktuellste Version. #####
FÄCHER
Können definiert/gelöscht werden. Fächer besitzen ein Kürzel und eine Beschreibung (D, Deutsch). Zur Zeit verwendet das Programm nur das Kürzel. Fächer können mit anderen zusammengefügt (merge) werden (ggf. nötig bei Importen). Ob man beispielsweise Deutsch, D-Förder, D-Lernzeit als drei Fächer oder als ein Fach modelliert hat Vor- und Nachteile. Persönlich würde ich nur das Fach Deutsch modellieren.
LEHRKRÄFTE
Können definiert/gelöscht werden. Jede Lehrkraft besitzt ein Kürzel und einen Namen (derzeit unwichtig). Eine Mindeststundenzahl (wird noch ignoriert), eine Maximalstundenzahl und eine etc-Stundenzahl (zb. Entlastung, nur wichtig zur Soll-Stunden-Darstellung). Zusätzlich kann die Anzahl an Klassenlehrerfunktionen begrenzt werden. Zudem kann forciert werden, dass die Klassenlehrerfunktion eine Mindestanzahl an Stunden in der jeweiligen Klasse zur Folge hat. Lehrkräfte können zu jedem Fach eine Maximalstundenanzahl definieren. Werte über 0 bedeuten, dass die Lehrkraft das Fach potentiell unterrichten darf. Lehrkräfte können zu jeder Klasse/Klassenlehrerfunktion eine Präferenz abgeben. Und Lehrkräfte können zu jedem Kurs eine Präferenz angeben.
KLASSEN (--> KURSE)
Klassen haben ein Kürzel und benötigen ggf. einen Klassenlehrer. Pro Klasse kann man Kurse definieren. Klassen können geklont werden. Kurse werden dabei dupliziert, außer der Kurs ist in einer Schiene, dann nimmt die Klasse an dem bereits existierenden Kurs teil.
KURSE
Ein Kurs hat ein Fach (unveränderlich) und einen Anzeigename. So kann man Deutsch, Deutsch-Förder, Deutsch-Lernzeit als 'D' deklarieren, die Kurse aber dennoch unterscheiden. Ein Kurs hat 1-n Klassen (Eingabe durch Komma getrennt). Der Kurs kann in einer Schiene sein --> Eine Lehrkraft kann nicht zwei Kurse innerhalb der selben Schiene unterrichten. Ein Kurs hat eine Mindest- und eine Maximalstundenanzahl. Das Minimum ist wichtig, wenn Kurse gekürzt werden dürfen. Ein Kurs kann in einer Stundengruppe sein. Kurse in der selben Stundengruppe haben stets die gleiche Stundenanzahl. So kann man z.B. erreichen, dass wenn zb. Religion in einer Schiene gekürzt wird, alle Religionskurse gekürzt werden. Ein Kurs kann in einer Lehrkraftgruppe sein. So kann man z.B. erreichen, dass wenn eine Lehrkraft Deutsch in einer Klasse unterrichtet, sie auch Deutsch-Lernzeit bekommen soll.
### BERECHNUNG ###
Die Berechnung hat drei Parameter, nach denen man optimieren kann. 'Summe aller Stundenkürzungen minimieren' und 'Summe unerfüllter Lehrer-Kurs-Präferenzen minimieren' und 'Summe unerfüllter Lehrer-Klassenlehrer-Präferenzen minimieren'.
Im oberen Teil sieht man hinter Lehrkräfte z.b. (900-950) und hinter Klassen (930-970). Die Zahlen zeigen das Stunden-Angebot der Lehrkräfte und die Stunden-Nachfrage der Kurse an. Nur bei Überschneidung der Intervalle macht die Berechnung mit dem Programm Sinn.
Herzliche Grüße
Benjamin Bartsch
PS: Fragen, Anregungen und Wünsche gerne hier posten.
- Dateianhänge
-
- Deputat_To_CNF_2018_12_26.jar
- (698.76 KiB) 83-mal heruntergeladen
Zuletzt geändert von B. Bartsch am Sonntag 30. Dezember 2018, 19:49, insgesamt 1-mal geändert.
B. Bartsch
-
Volker_Dirr
- Beiträge: 94
- Registriert: Sonntag 2. Dezember 2018, 19:55
- Schulform: Realschule
Re: Deputat_To_CNF
Interessant.
Ich vermisse etwas die Eingabe des grundsätzlichen Konzeptes.
Vom Prinzip setzen viele Schulen einen Lehrer mit all seinen Fächern in der Klasse ein sobald er dort ein (Haupt-)fach unterrichtet. Sinn: Er kennt schon die Schüler; er kann leichter Klassenarbeiten verschieben, …
Dann fahren die Schulen jedoch vom Prinzip oft eines der folgenden Konzepte:
a) Man verteilt den Lehrer möglich nicht weiterhin in der Jahrgangsstufe, in der er schon unterrichtet.
b) Man verteilt den Lehrer möglich weiterhin in der Jahrgangsstufe, in der er schon unterrichtet
Vorteil von a)
- einige Lehrer “langweilen” sich, wenn sie immer in der selben Jahrgangsstufe unterrichten.
- angeblich sprechen sich die Lehrer besser ab und entwickeln den Unterricht gemeinsam besser als bei Variante b)
- ...
Vorteil von b)
- Lehrer braucht die Stunde nur einmal vorbereiten/aufbauen und kann sie mehrfach nutzen (habe ich an einer alten Schule in Physik geliebt; jetzt geht das leider nicht mehr
Ich brauchte so die Versuche nur einmal aufbauen und konnte sie dann aber 4 mal nutzen.)
- Lehrer sitzt in weniger Jahrgangsstufen Konferenzen. So braucht man nicht jede Konferenz mitnehmen, sondern kann auch mal nach Hause gehen.
- Wenn der Lehrer sogar alle Klassen eines Jahrgangs unterrichtet: Kein Schüler hat einen Vor- oder Nachteil. Alle haben beim gleichen Lehrer. Klassen sind leichter miteinander zu vergleichen. Kein Schüler hat “Glück”/”Pech”, weil er jetzt den “besseren”/”schlechteren” Lehrer bekommen hat.
- …
Ich vermisse etwas die Eingabe des grundsätzlichen Konzeptes.
Vom Prinzip setzen viele Schulen einen Lehrer mit all seinen Fächern in der Klasse ein sobald er dort ein (Haupt-)fach unterrichtet. Sinn: Er kennt schon die Schüler; er kann leichter Klassenarbeiten verschieben, …
Dann fahren die Schulen jedoch vom Prinzip oft eines der folgenden Konzepte:
a) Man verteilt den Lehrer möglich nicht weiterhin in der Jahrgangsstufe, in der er schon unterrichtet.
b) Man verteilt den Lehrer möglich weiterhin in der Jahrgangsstufe, in der er schon unterrichtet
Vorteil von a)
- einige Lehrer “langweilen” sich, wenn sie immer in der selben Jahrgangsstufe unterrichten.
- angeblich sprechen sich die Lehrer besser ab und entwickeln den Unterricht gemeinsam besser als bei Variante b)
- ...
Vorteil von b)
- Lehrer braucht die Stunde nur einmal vorbereiten/aufbauen und kann sie mehrfach nutzen (habe ich an einer alten Schule in Physik geliebt; jetzt geht das leider nicht mehr
- Lehrer sitzt in weniger Jahrgangsstufen Konferenzen. So braucht man nicht jede Konferenz mitnehmen, sondern kann auch mal nach Hause gehen.
- Wenn der Lehrer sogar alle Klassen eines Jahrgangs unterrichtet: Kein Schüler hat einen Vor- oder Nachteil. Alle haben beim gleichen Lehrer. Klassen sind leichter miteinander zu vergleichen. Kein Schüler hat “Glück”/”Pech”, weil er jetzt den “besseren”/”schlechteren” Lehrer bekommen hat.
- …
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
Das Prinzip nach dem ich das Programm entwickelt habe, basiert natürlich auf den Erfahrungen unserer Schule. Dort ist es zumeist so, dass eine Lehrkraft zu 50%-90% einfach die "alten" Kurse übernimmt. Falls eine Lehrkraft "alte" Kurse weiterführt, geht a) und b) relativ leicht.a) Man verteilt den Lehrer möglich nicht weiterhin in der Jahrgangsstufe, in der er schon unterrichtet.
b) Man verteilt den Lehrer möglich weiterhin in der Jahrgangsstufe, in der er schon unterrichtet
a) Alle anderen Kurse in der Stufe erhalten die Präferenz 'ungerne'.
b) Alle anderen Kurse in der Stufe erhalten die Präferenz 'gerne'.
Ansonsten könnte ich a) und b) ggf. noch mit folgenden Regeln umsetzen:
"Wenn Klassenlehrer, dann mindestens ... Stunden in gleicher Stufe"
"Wenn Klassenlehrer, dann höchstens ... Stunden in gleicher Stufe"
muss ich mal drüber nachdenken...
B. Bartsch
-
Volker_Dirr
- Beiträge: 94
- Registriert: Sonntag 2. Dezember 2018, 19:55
- Schulform: Realschule
Re: Deputat_To_CNF
Klar, alte Kurse erstmal ggf. forsetzen. Habe ich nicht erwähnt, weil sie den Teil schon in ihrem Programm unterstützen.
90% ist aber sehr sportlich. Selbst wenn ein Gymnasium 8 Jahrgänge hat, dann wären 7 alt und könnten übernommen werden und einer neu. Also können max 7/8=86,5% übernommen werden wenn man nie wechselt. Ohne Wechsel geht aber aber kaum, weil die Stundentafel in anderen Jahrgängen z.T. andere Fächer vorschreibt. Damit fällt die Quote nochmal. Wenn man dann eine Sek I-Schule mit nur 6 Jahrgängen ist, sieht die Quote noch "schlechter" aus.
Von Hauptschulen kenne ich es so, dass die oft versuchen das ganze von Klasse 5 bis 10 stabil zu halten.
RS wechseln oft in einem 2 oder 3 Jahresrhytmus.
Effektiv ist damit die Quote an RS deutlich unter 50%.
Die in dem vorherigen Beitrag angesprochenen Konzepte sollten aber nicht auf Klassenlehrer beschränkt sein. Etwa die Hälfte des Kollegiums (je nach Anteil an Teilzeitkräften) ist kein Klassenlehrer - trozdem fahren Schulen auch bei den nicht Klassenlehrern das a) oder b) Konzept.
BTW: Nicht wenige Schulen haben Co-Klassenlehrer. Die sollten evtl. auch entsprechend vergeben werden.
90% ist aber sehr sportlich. Selbst wenn ein Gymnasium 8 Jahrgänge hat, dann wären 7 alt und könnten übernommen werden und einer neu. Also können max 7/8=86,5% übernommen werden wenn man nie wechselt. Ohne Wechsel geht aber aber kaum, weil die Stundentafel in anderen Jahrgängen z.T. andere Fächer vorschreibt. Damit fällt die Quote nochmal. Wenn man dann eine Sek I-Schule mit nur 6 Jahrgängen ist, sieht die Quote noch "schlechter" aus.
Von Hauptschulen kenne ich es so, dass die oft versuchen das ganze von Klasse 5 bis 10 stabil zu halten.
RS wechseln oft in einem 2 oder 3 Jahresrhytmus.
Effektiv ist damit die Quote an RS deutlich unter 50%.
Die in dem vorherigen Beitrag angesprochenen Konzepte sollten aber nicht auf Klassenlehrer beschränkt sein. Etwa die Hälfte des Kollegiums (je nach Anteil an Teilzeitkräften) ist kein Klassenlehrer - trozdem fahren Schulen auch bei den nicht Klassenlehrern das a) oder b) Konzept.
BTW: Nicht wenige Schulen haben Co-Klassenlehrer. Die sollten evtl. auch entsprechend vergeben werden.
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
... neue Version: Deputat_To_CNF_2018_12_29.jar
- viele kleine Verbesserungen
- viele kleine Verbesserungen
- Dateianhänge
-
- Deputat_To_CNF_2018_12_29.jar
- (711.74 KiB) 85-mal heruntergeladen
B. Bartsch
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
... neue Version: Deputat_To_CNF_2018_12_30.jar
- weitere kleine Verbesserungen (Plausibilitätstests, mehr Statistik, ... )
- weitere kleine Verbesserungen (Plausibilitätstests, mehr Statistik, ... )
- Dateianhänge
-
- Deputat_To_CNF_2018_12_30.jar
- (745.85 KiB) 82-mal heruntergeladen
B. Bartsch
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
... neue Version: Deputat_To_CNF_2018_12_31.jar
- Nun kann man pro Klasse - falls gewünscht - eine Klassenstufe zuordnen. Alle Klassen, die einer Stufe zugeordnet sind werden für "Stufenberechnungen" einbezogen. [ich habe mich dagegen entschieden, die Stufen aus dem Klassenkürzel abzuleiten...]
- Nun kann man pro Lehrkraft "in_stufen_präsent_min" und ""in_stufen_präsent_max" angeben, um die Anzahl der Stufen in denen eine Lehrkraft unterrichtet einzuschränken. Ein Wert von 0 deaktiviert diese Option.
- Nun kann man pro Klasse - falls gewünscht - eine Klassenstufe zuordnen. Alle Klassen, die einer Stufe zugeordnet sind werden für "Stufenberechnungen" einbezogen. [ich habe mich dagegen entschieden, die Stufen aus dem Klassenkürzel abzuleiten...]
- Nun kann man pro Lehrkraft "in_stufen_präsent_min" und ""in_stufen_präsent_max" angeben, um die Anzahl der Stufen in denen eine Lehrkraft unterrichtet einzuschränken. Ein Wert von 0 deaktiviert diese Option.
- Dateianhänge
-
- Deputat_To_CNF_2018_12_31.jar
- (773.12 KiB) 73-mal heruntergeladen
B. Bartsch
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
... neue Version: Deputat_To_CNF_2019_01_01.jar
- weitere Verbesserung in der Ausgabe.
PS:
Falls jemand einen Daten-Import aus anderen Programmen wünscht, könnte ich dies implementieren, dann bräuchte ich aber Testdaten...
- weitere Verbesserung in der Ausgabe.
PS:
Falls jemand einen Daten-Import aus anderen Programmen wünscht, könnte ich dies implementieren, dann bräuchte ich aber Testdaten...
- Dateianhänge
-
- Deputat_To_CNF_2019_01_01.jar
- (783.09 KiB) 80-mal heruntergeladen
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
... neue Version: Deputat_To_CNF_2019_01_02.jar
- Fehlerkorrektur: In der Ausgabe fehlte bei der Übersicht der Klassen die zugehörige Lehrkraft.
- Fehlerkorrektur: In der Ausgabe fehlte bei der Übersicht der Klassen die zugehörige Lehrkraft.
- Dateianhänge
-
- Deputat_To_CNF_2019_01_02.jar
- (783.03 KiB) 78-mal heruntergeladen
B. Bartsch
-
B. Bartsch
- Fachberater*in
- Beiträge: 321
- Registriert: Dienstag 4. Dezember 2018, 14:14
- Schulform: Gymnasium
Re: Deputat_To_CNF
... neue Version: Deputat_To_CNF_2019_01_04.jar
- CPU-Threads können nun eingestellt werden (und werden auch gespeichert).
- Das Programm merkt sich den zuletzt geöffneten Ordner.
- CPU-Threads können nun eingestellt werden (und werden auch gespeichert).
- Das Programm merkt sich den zuletzt geöffneten Ordner.
- Dateianhänge
-
- Deputat_To_CNF_2019_01_04.jar
- (790.09 KiB) 77-mal heruntergeladen
B. Bartsch