====== Planung der Workshop für die Glückswerkstatt ====== ===== Infos zur Planung ===== * Übersicht Planung der Glückswerkstatt Workshops: {{lehrkraefte:blc:informatik:glf25:python:planungsproblem-mathematische-definition.pdf}} * Infos zum Zeitplan: am 17.11. sollten wir die «echten» Daten zur Verfügung haben. Definitiver Plan soll Ende November stehen. * Ausgabeformat: Wieder eine CSV-Tabelle. Die kann nämlich in Nesa dann eingelesen werden (oder eine entsprechende Excel-Tabelle). Genaues Format: {{.:pasted:20251029-073611.png}} * Es gibt Workshopteilnehmer, die nicht geantwortet haben. Deren Präferenzen sind alle Null und diese Teilnehmer werden in die am wenigsten besuchten Workshop eingeteilt. ==== Technisches ==== * [[.:git-download|Download des git-Repos mit Aufgaben etc.]] * [[..:python:markdown|Markdown-Dokumente in VS-Code anzeigen]] * [[..:python:arrays|Theorie und Aufgaben zu Arrays]] * [[.:plan|Die Plan-Klasse und deren Gebrauch]] === Hall of fame === Beste Zielfunktion für den Plan von 2025: Zielfunktion Q = 3231 Workshops: ✅ Kein Workshop ist überbelegt. Teilnehmer: ✅ Alle Teilnehmer sind eingeplant. Scores: 8 Punkte: 1 Teilnehmer mit nur 1. Wahl 0.4% (mit Laueris 0.3%) 9 Punkte: 19 Teilnehmer mit 1. & 4. Wahl 6.7% (mit Laueris 6.5%) 10 Punkte: 52 Teilnehmer mit 1. & 3. Wahl 18.4% (mit Laueris 17.8%) 12 Punkte: 211 Teilnehmer mit 1. & 2. Wahl 74.6% (mit Laueris 72.3%) ====== 17.11.2025 ====== * Update vom Projekt: ''git pull'' im Terminal (von VS-Code) * **Oops**: Was, wenn ein Workshop ersatzlos wegfällt? (z.Z. ein wahrscheinliches Szenario). * Pseudo-Code für eine mögliche Implementation von Tabu-Search * Lösungsraum: Alle Teilnehmer (ausser Laueris) sind in zwei unterschiedliche Workshops eingeteilt, keine Workshops überbucht. * Tabu-Liste: Teilnehmer werden eine gewisse Anzahl Schritte (Iterationen) nicht mehr umgeteilt. * Interessante Teilnehmer für Moves: * Teilnehmer mit kleinem Score * Teilnehmer in vollen Workshops * Interessante Workshops für die Umteilung: * hohes Score für umgeteilten Teilnehmer * Workshops, die durch die Umteilung nicht voll werden. * Live Implementation? ====== 10.11.2025 ====== Ziele: * Vervollständigung / Verbesserung des Greedy-Algorithmus * Wie mit Teilnehmern umgehen, die keinem gewählten Workshop zugeteilt werden können. * Reihenfolge im «zweiten Durchgang» anders wählen. * Wiederholung vom Algorithmus und sich beste Lösung merken. * Diskutieren von «Moves», um Pläne zu verändern. * Lösungsraum festlegen: * z.B. Workshops sind nie überbucht, Teilnehmer sind z.T. nicht eingeteilt. * z.B. Alle Teilnehmer sind immer eingeteilt, Workshop können überbucht sein. * oder anything goes. * Tabu-Liste(n) festlegen: * z.B. Teilnehmer dürfen eine gewisse Zeit nicht mehr in «Moves» involviert sein. * z.B. Workshops dürfen eine gewisse Zeit nicht mehr in «Moves» involviert sein. * z.B. Kombination Teilnehmer/Workshop darf eine gewisse Zeit nicht mehr vorkommen. ====== 2.11.2025 ====== Ziel: Erstellen einer zulässigen (realisierbaren) Planung. * Update aller Dateien (neue Funktionen in der ''Plan''-Klasse) mit ''git pull'' * Diskussion von Strategien, einen zulässigen Plan zu erstellen. * Programmierung dieser Strategien in Python wie folgt: * Kopieren der Datei ''dummy.py'' in eine Datei mit Ihrem Namen, z.B. ''hansli.py''. * Stellen Sie Fragen zur Programierung, ich werde nötige Code-Schnippsel in der Beschreibung der [[.:plan|Plan-Klasse]] ablegen. * Ihre Datei anpassen, erweitern, testen. ====== 27.10.2025 ====== ==== Lektion 1: CSV ==== **Ziel**: Sie haben eine Ahnung davon, was csv-Dateien sind, wie die mit einem Tabellenkalkulationsprogramm erstellt und gelesen werden können, und wie diese in Python gelesen und geschrieben werden können. * Update der Dateien: * In VS-Code, öffnen Sie die Kommandozeile mit ''Terminal->New Terminal'' (evtl. ist dieser Menu-Punkt hinter ''...'' zu finden. * Geben Sie den Befehl ''git pull'' in der Kommandozeile ein * Lesen Sie die Datei ''csv-uebungen/csv/readme.md'' (für Preview siehe [[.:markdown|hier]]) und bearbeiten Sie die Aufgaben. * Optional: Es gibt zu den Array-Aufaben und der Dictionary Aufgabe Lösungen, die sie gerne studieren können. ==== Lektion 2: Planung ==== **Ziel**: Sie haben eine Übersicht über die Planungsdaten und wie diese mit der zur Verfügung gestellten Python-Klasse ''Plan'' gelesen und geschrieben werden können. * Studieren Sie die Datei ''planung/dummy.py'' und führen Sie diese im entsprechenden Verzeichnis aus. * Studieren Sie die erzeugte Datei ''planung/zuteilung.csv'' und vergleichen Sie mit ''data/2024.csv''. * Studieren Sie die Datei ''data/2024m_w.csv'' * Studieren Sie den grossen Kommentar in der Klasse ''Plan'', in der Datei ''planung/plan.py''. (Ca. Zeilen 4-22). **Ziel**: Sie entwickeln Strategien auf Papier, wie ein Plan erstellt werden könnte. Die Strategien werden am Schluss der Stunde eingezogen, damit entsprechende Funktionalitäten der Klasse ''Plan'' hinzugefügt werden können. * Auf Papier, alleine oder in Zweiergruppen, entwerfen Sie selbst eine möglichst präzise Anleitung, wie ein Plan erstellt werden könnte. * Optional: Überlegen Sie sich zusätzliche Kriterien, um die Qualität einer fertigen Zuteilung zu messen. * Optional: Überlegen Sie sich Methoden, wie eine fertige Zuteilung umgestaltet werden kann, so dass die Qualität besser werden könnte. Die Idee ist, damit viele Zuteilungen zu generieren und sich die jeweils beste zu merken.