====== LB02 - Portfolio - 55% ====== * Dauer: 4 - 8 Lektionen * Hilfsmittel: Openbook * Sozialform: Einzelarbeit * Wann: Nach LU06 * Gewichtung: 55% ===== Übersicht ===== Die Lernenden erarbeiten ihr eigenes Portfolio (OneNote, Word, [[https://www.notion.so|Notion]]) auf Basis des [[modul:m323:leistungsbeurteilungen:lb02:kompetenzraster|Kompetenzrasters]] des Modul 323. ==== Inhalt ==== === Praxisprojekt === Erstellen Sie eine Flask-Applikation die möglichst viele Funktionale-Komponenten enthält. Es darf sich bei der Anwendung nicht um eine Todo-Liste oder um eine Einkaufsliste handeln. **Tipp:** Wählen Sie ein Projekt, bei dem echte Daten verarbeitet werden (z.B. Suche/Filter/Sortierung, Statistiken, Imports/Exports, Berechnungen, Regeln). Dann können Sie die Kompetenzen B1–B4 einfacher belegen. === Portfolio === Für jedes bearbeitete Kompetenzfeld (A1G, A1E, etc) müssen ein mindestens 1000 Zeichen (exkl. Leerschläge) langer Lernnachweis erstellt werden, **zusätzlich** muss ein Code-Beispiel (die Zeichen im Code zählen nicht zu den 1000 Zeichen dazu) zu diesem Kompetenzfeld eingefügt werden. Das verwendete Code-Beispiel dazu, muss aus der Flask-Applikation des Praxisprojektes sein. Ein Lernnachweis könnte folgendermassen aussehen --> [[modul:m323:leistungsbeurteilungen:lb02:lernnachweis|Beispiel]] Sie können auch einen Lernnachweis über ein ganzes Kompetenzband z.B ''A1G, A1F, A1E'' machen, dann muss dieser Nachweis allerdings 3000 Zeichen enthalten und auch 3 Beispiele. Laden Sie diesen Nachweis dann in jeder passenden Moodle-Abgabe hoch. ===== Was gehört in einen Lernnachweis? ===== Ein Lernnachweis soll zeigen, dass Sie ein Konzept **verstanden**, **im Projekt angewendet** und **reflektiert** haben. **Pflichtbestandteile pro Kompetenzfeld** * **Textteil:** mind. **1000 Zeichen** (ohne Leerzeichen) Beschreibung/Reflexion/Dokumentation * **Code-Beispiel:** Auszug aus **Ihrem Flask-Projekt** (Code zählt nicht zu den 1000 Zeichen) * **Bezug zur Kompetenz:** Im Text muss klar werden, *was* genau an Ihrem Beispiel die Kompetenz belegt ==== Empfohlener Aufbau (Vorlage) ==== * **Kompetenzfeld:** (z.B. B4F) * **Feature im Flask-Projekt:** (z.B. Statistik-Seite, Suche/Filter, Import/Export, Auth, etc.) - ** Kon text & Ziel:** Was soll das Feature lösen? Welche Inputs/Outputs gibt es? - ** Konzept/Erklärung:** Erklären Sie das Konzept in eigenen Worten (nicht nur Definition). - ** Umsetzung im Projekt:** Vorgehen, Entscheidungen, Alternativen (warum diese Lösung?). - ** Code-Beispiel + Einordnung:** Codeauszug + 2–5 Sätze, *was* daran die Kompetenz zeigt. - ** Test/Überprüfung:** Mind. 2 konkrete Testfälle (Input → erwarteter Output) oder Debugging-Nachweis. - ** Reflexion & Transfer:** Was war schwierig? Was gelernt? Wie würden Sie es nächstes Mal besser machen? ==== Hinweise pro Kompetenzband (M323) ==== **A1 (Paradigmen / Konzepte)**: Begriff korrekt erklären + Vergleich zu OO/prozedural + Bezug zum Projekt (wo/wie angewendet oder bewusst nicht angewendet und warum).\\ **B1 (Algorithmen)**: Algorithmus aus dem Projekt erklären; in Teilfunktionen zerlegen; zu einem Ablauf zusammensetzen.\\ **B2 (Funktionen als Objekte / Higher-Order / Closures)**: Funktion speichern/weitergeben; Funktion als Argument; Closure sinnvoll einsetzen (z.B. Validator-/Formatter-Factory).\\ **B3 (Lambda)**: Nur verwenden, wenn es lesbar bleibt (sonst lieber benannte Funktion). Lambdas können z.B. für Sortierung (key=...) genutzt werden.\\ **B4 (Map/Filter/Reduce)**: Auf echte Projektdaten anwenden; kombinieren; komplexere Aufgaben wie Aggregation/Transformation dokumentieren.\\ **C1 (Refactoring)**: Technik benennen; Vorher/Nachher beschreiben; sicherstellen, dass Verhalten gleich bleibt (Tests/Edge-Cases). ==== Typische Fehler (vermeiden) ==== * Zu viel Theorie/Projektbeschreibung, zu wenig **Kompetenzbezug** und **Reflexion** * Code-Snippet ohne Erklärung, **wo** es im Projekt hingehört (Route/Service/Helper/Template) * Keine Überprüfung: "hat funktioniert" ohne Testfälle/Beleg * 1000 Zeichen werden mit Fülltext erreicht statt mit konkreten Learnings/Entscheiden ==== Abgabe ==== Laden Sie die die Lernnachweise nach Kompetenzfeld geordnet in Moodle hoch. Das genau Format der Abgabe klären Sie bitte mir Ihrer Lehrperson. Achten Sie darauf die Kriterien zu erfüllen: * 1000 Zeichen Beschreibung/Reflexion/Dokumentation * Code-Beispiel aus Flask-Praxisprojekt * Klarer Bezug zum Kompetenzfeld (A1G, B4F, ...) ==== Bewertung der Lernnachweise ==== In diesem Kurs verwenden wir eine Punkteskala von 1 bis 3, um eure Lernnachweise im Kompetenzraster zu bewerten. Hier ist die Bedeutung jeder Punktzahl: * **1 Punkt**: Die Arbeit erfüllt minimale Anforderungen, aber es fehlen entscheidende Elemente oder es gibt mehrere Fehler. Es besteht deutliches Verbesserungspotenzial. * **2 Punkte**: Die Arbeit ist solide und erfüllt die meisten, wenn nicht alle Anforderungen. Kleinere Fehler könnten vorhanden sein, aber sie beeinträchtigen das Gesamtverständnis nicht wesentlich. * **3 Punkte**: Die Arbeit ist ausgezeichnet und übertrifft die Anforderungen. Sie zeigt ein tiefes Verständnis des Themas und/oder besondere Kreativität oder Eigeninitiative. **Was braucht es typischerweise für 3 Punkte?** * Begründete Entscheidungen (warum diese Lösung, welche Alternative?) * Konkrete Nachweise (Testfälle, Edge-Cases, Debugging-Fix) * Sauberer, passender Codeauszug mit kurzer Einordnung (nicht einfach reinkopiert) * Reflexion + Transfer (wie wiederverwenden? was verbessern?) ==== Notengebung ==== Total sind 18 Kompetenzbereiche zu belegen. Jeder Beleg gibt maximal 3 Punkte womit das Total bei 54 Punkten liegt. Das Praxisprojekt (Flask-Applikation) gibt 10 Punkte. **64 Punkte** entsprechen der **Note 6.0**\\ **39 Punkte** entsprechen der **Note 4.0**