Skip to content

Vom Nichts zum Stundenplan — das Urbild

Ein belastbarer Bauplan für den Weg zur fertigen manuellen Wochenstundentafel — nach drei Review-Runden. Klasse×Fach bleibt der Rahmen (D2 und die Bilanz rechnen je Gruppe); die weitergehenden Vorschläge sind auf vorhandene Prilog-Bausteine gemappt, nicht als neue Objekte gebaut.

Rev. 4 — dritte Review eingebaut

Neu: Tor rechnet im Szenario (Bibliothek eingefroren) mit 4 Rechnungen (Slot-Kapazität zurück) · Freigabe → beschlossen (Konferenz) vor dem Commit · Tageslage als Kurve · Regelwerk mit Schweregrad · drei Einstiege. Gemappt: Fachqualifikation (TeacherQualification), Dienst-Slots (ManualSubject.kind), Perioden (Epoche verallgemeinert), Hybrid (source+locked). Gelöst: Szenario-Grundlage = einfrieren; Teilung über „je Gruppe".

Kernbefund

„Fertig" heißt konfliktfrei UND vollständig (jedes Kontingent je Gruppe erfüllt), geplant wird im Szenario (nie in der Produktion), und ein Stundenplan wird nicht committet, sondern beschlossen.

1 · Das Urbild

Vier Ebenen, zwei Nebenspuren (Räume typgebunden · Deputat/Verfügbarkeit hart). Das Tor liegt im Szenario: die Arbeitskopie friert die Bibliothek ein, das Tor rechnet darin vier Prüfungen; vor dem Commit steht die Freigabe.

Bauplan: A Fundament/Bibliothek, B Zuordnung; ein Szenario-Rahmen (Bibliothek eingefroren) mit dem Bereitschafts-Tor (4 Rechnungen), C Platzierung, D Prüfen und dem Freigabe-Band; danach der Commit außerhalb des Rahmens und die Live-Projektion. Räume und Deputat als Nebenspuren.

Das Tor rechnet vier Dinge — die Zeitkapazität je Klasse (Σ Kontingent ≤ Slots) ist die einzige, die heute schon baubar ist. Die Freigabe ist neu: ein Stundenplan wird an einer Waldorfschule beschlossen, nicht committet — das Konferenz-Modul dafür ist bereits gebaut.

2 · Konstanten & Variablen

Ebene A ist fast reine Bibliothek (mehrjährig), B/C sind die Variablen des Jahres. Eine zweite Achse trennt Muss (geprüft) von Soll (gewichtet).

Zwei-Achsen-Matrix konstant/variabel × Muss/Soll.

Muss ohne Prüfung ist kein Muss. Jede Konstante im Muss-Feld braucht einen Check — Kontingent (D2), Doppelbelegung (D1), Deputat/Verfügbarkeit (Tor + D1). Das weiche „nicht Mo, 1. Stunde" braucht ein eigenes Feld in der Verfügbarkeit — heute noch ein Blocker.

3 · Die Bibliothek der Schul-Konstanten

Jede Muss-Konstante nennt ihren Prüf-Ort.

KonstanteWas sie festhältPrüfung / VerbraucherIn Prilog
Fächer-KatalogName, Farbe, Kategorievorhanden
Fach-ProfilGewichte je Achse (slot-lokal + global)Ampel + Solverneu · der Kern
Stundentafel / KontingentWochenstunden je Fach & JahrgangD2 (je Gruppe)vorhanden
DeputatWochendeputat je Lehrkraft (Fachfaktoren)Tor + Deputat-Cockpithart · P2
Lehrer-VerfügbarkeitTeilzeit, freie Tage, SperrzeitenTor + D1Feld fehlt
FachqualifikationPerson × Fach × StufeBilanz + E1 + VertretungTeacherQualification
ZeitrasterLektionen, Pausen, KlingelzeitenTor (Zeitkapazität je Klasse)vorhanden
RäumeTyp + Anzahl je Typ (Euryth. ×4 …)Tor (Auslastung) + D1 (Parallelität)teils
RahmenregelnKernzeit, Mittagspause, max. Std/TagRegelwerk (Fehler/Warnung)teils

4 · Das Gewichtsmodell

Das Fach-Profil trägt zwei Sorten Zahl in zwei Ebenen (Fach-Profil = Konstante; Szenario-WeightProfile = jahresweise Übersteuerung, Solver liest die zusammengeführte Ebene).

Links die slot-lokale Achse als Kurve (Tageslage HU, ein Wert je Lektion); rechts die globalen Achsen (Epoche, Verteilung, Doppelstunde) als Balken.

  • Slot-lokale Achsen sind Eigenschaften einer Zelle → die Ampel färbt. Als Kurve statt überlappender Flags: [+90, +90, +40, 0, −40, −80, −80, −80]. So löst sich das alte Problem, dass die 1. Stunde „früh und Randstunde" war und sich +90−50=+40 selbst falsch rechnete.
  • Globale Achsen hängen von der ganzen Belegung ab → keine Zellfarbe, sondern eigene Anzeige.

Drei Entscheidungen für 04: (1) Zwei-Ebenen-Architektur; (2) Normierung je Fach für den Solver (sonst kapert das achsenreichste Fach die Zielfunktion); (3) Achsen-Disjunktheit — überlappende Prädikate werden zur Kurve.

Heatmap: wohin die Fächer wollen — nur slot-lokale Achsen.

Eine Bibliothek, zwei Verbraucher: Ampel (nur slot-lokal) und Solver (alle Achsen, je Fach normiert).

Die Sozial-Vektoren bleiben ausgegliedert (Datenschutz + Mitarbeitervertretung). Ihr datenschutzfreier Ersatz sind die strukturellen Lehrerplan-Warnungen aus dem Regelwerk (§6): Hohlstunden, Gebäudewechsel, Präsenztage — sie beschreiben den Plan, nicht die Person.

5 · Fachbereiche & Eskalation bei Kapazitätslücken

Die Lücke „wir können Stunden nicht besetzen, weil das Lehrer-Kontingent fehlt" wird erst beim Platzieren sichtbar — zu spät. Die Lösung liegt vorne, im Fachbereich.

Eskalations-Leiter E0–E4: je später erkannt, desto weniger Optionen.

Der Fachbereich hat eine Kapazitäts-Bilanz (Σ Kontingent gegen Σ verfügbares Deputat, abzüglich Verfügbarkeit). Wer dazu zählt, folgt aus Fachqualifikation + Fach-Kategorie — eine Ableitung, keine Pflegeliste. Die Eskalations-Leiter ist zeitgetrieben:

  • E0 Früherkennung (Bilanz, alle Optionen offen) · E1 intern umverteilen · E2 Soll ummodellieren (Musik anders takten) · E3 rekrutieren (langer Vorlauf → früh) · E4 Lücke akzeptierenTor-Ausnahme (gelb, Beschlussbezug ins Konferenz-Register; sonst blockiert E4 das eigene Tor).

Termin & Besitzer: ein Stichtag („grün bis 31.01.", TTL-analog) und ein Besitzer aus dem freien Funktionsrollen-Modell (keine erzwungene Fachbereichsleitung); unbesetzt fällt die Bilanz sichtbar an die Stundenplanverantwortung.

6 · Die Schritte im Detail

Ebene A — Fundament & Bibliothek

A1 Konten · A2 Klassen · A3 Schüler · A4 Zeitraster · A5 Fächer inkl. Profil + Kategorie · A6 Dienst-Slots (ManualSubject.kind += dienst: Aufsicht/Konferenz/Betreuung/Mentorat — belegen die Person, zählen ins Deputat, erscheinen in D1).

Nebenspur R — Räume (typgebunden)

Normalräume flexibel; Funktionsräume knapp (4 Eurythmiesäle …). Auflösung Slot→Fach→Stamm. Zwei Prüfungen: Tor = grobe Auslastung, D1 = exakte Parallelität. Bei Teilungen ist der Raum Pflicht.

Nebenspur H — Menschen

H1 Deputat · H2 Verfügbarkeit (Feld fehlt) · H3 Fachqualifikation (TeacherQualification existiert → Bilanz + E1 + Vertretung).

Ebene B — Struktur & Zuordnung

B1 Lehrer×Klassen · B2 Teilungen (zwei Lehrkräfte) · B3 Fächer je Klasse inkl. Kontingent.

◇ Bereitschafts-Tor — rechnet im Szenario

Die Arbeitskopie friert die Bibliothek ein (libraryRevisionId); das Tor rechnet vier Dinge: 1 Zeitkapazität je Klasse (heute baubar), 2 Deputat-Überbuchung (Lehrer-Last), 3 Räume-Auslastungsschranke, 4 Fachbereich-Bilanz grün/Ausnahme. Nicht dasselbe wie D1 (Parallelität entsteht erst in C).

Ebene C — Platzierung (im Szenario)

C1 Stunden setzen. Entschieden: die Bibliothek ist beim Öffnen eingefroren; der Commit rechnet ein letztes Mal gegen den aktuellen Stand. Hybrid: der Solver füllt C1 vor (source='solver'), respektiert locked-Slots (HU/Epochen von Hand). C2 Perioden (SchedulePeriod: Epoche/Praktikum/Fahrt/Probenwoche mit verdraengt + zaehltAufKontingent).

Ebene D — Prüfen

D1 Konflikt (Doppelbelegung + Raumtyp-Parallelität + Teilnehmerkreis-Überschneidung auf Klassenanteilen, v1 nicht schülergenau + Epochen-Vorrang + Dienste). D2 Vollständigkeit — exakte Gleichheit, bidirektional, je Gruppe; Klassen-Soll ≠ Lehrer-Last; Bezugszeitraum zweistufig (Regelwoche hart, Jahresbilanz weich). D3 Korrigieren + verwaiste Overrides (Warnliste).

Regelwerk mit Schweregrad: Fehler blockieren den Commit; Warnungen (Schüler- und Lehrerplan-Struktur) werden quittiert.

✓ Freigabe → beschlossen → Commit

entwurf → in Freigabe → beschlossen → live. In Freigabe sieht jede Lehrkraft ihren eigenen Plan; der Commit trägt einen Beschlussbezug (Konferenz), wählt ein Wirksamkeitsdatum und rechnet das Tor ein letztes Mal.

7 · Drei Einstiege & Reihenfolge

  • 1 Erstmigration (Neukunde): Import (PSF/Stammdaten-IO) mit Dry-Run → Tor → prüfen → Commit.
  • 2 Jahreswechsel (Normalfall): Vorjahres-Szenario klonen → Deltas → Tor neu → Commit.
  • 3 Vom Nichts (Sonderfall): die vollständige Reihenfolge.

Reihenfolge (topologisch): 1 Lehrkräfte · 2 Klassen+Schüler · 3 Zeitraster/Fächer+Profil/Räume+Typen · 4 Deputat & Verfügbarkeit · 5 Lehrer×Klassen+Teilungen · 6 Fächer inkl. Kontingent · 7 Arbeitskopie öffnen + Bibliothek einfrieren · 8 Tor rechnen (im Szenario) · 9 Stunden setzen (+Perioden) · 10 D1 · 11 D2 · 12 D3 · 13 Freigabe → beschlossen · 14 Commit. Durchgehend, keine Station: die Fachbereich-Bilanz (E0, grün bis Stichtag).

8 · Offene Punkte & Entscheidungen

Fünf Blocker (vor dem Bau): D2-Check (verankert, zu bauen) · Entwurfsmodus/Commit (verankert) · Bezugszeitraum des Mengenmodells (trifft D2 + Deputat + Bilanz) · Verfügbarkeits-Datenfeld · Raumtyp-Bestand.

Gelöst/entschieden: Szenario-Grundlage = einfrieren · Teilung über „je Gruppe" (kein Lerngruppe-Objekt nötig) · Besitzer über Funktionsrollen · Regelwerk mit Schweregrad · Fach-Profil/Szenario-Schichtung · Normierung · Achsen-Disjunktheit.

Bewusst nicht: schülergenaue Konfliktprüfung · exakte Jahresbilanz als Blocker · automatische Kopplungsbildung · Deputat-Feinrechnung mit Anrechnungsstunden · Sozial-Vektoren (bleiben ausgegliedert).

9 · Anhang — Klickpfade

Kurzlebig, veraltet mit dem UI. A1 Kontakte→Aktivieren · A4 Stundenplaner→Stammdaten→Zeitraster · A5 Stammdaten→Fächer · B1 Einstellungen→Klassenbetreuer · B2 Klassenbetreuung→Teilungen/HKU-Planer · C1 Wochenplan (im Szenario) · C2 Epochenplaner/HKU-Planer · D1 Stundenplan→Mitarbeiter-Ebene.


Rev. 4 des Urbilds — Leitbild für den manuellen Stundenplan in Prilog, nach drei Review-Runden. Klasse×Fach bleibt der Rahmen; Part-2-Vorschläge sind auf vorhandene Prilog-Bausteine gemappt. Fünf Punkte sind vor dem Bau blockierend.