Teamprojekt

Wintersemester 2025/25

Shortcuts

  • S Speaker View
  • F Fullscreen
  • Esc Folienübersicht
  • G Zu Folie springen
  • Alt + Zoom
  • F1 Alle Shortcuts anzeigen
  • zur Druckversion

Teamprojekt

Einführungsveranstaltung

Formale Voraussetzungen

  • Lehramt
  • Fachdidaktik II:
    Fachdidaktik I abgeschlossen
  • Teamprojekt:
    Programmieren oder SWT abgeschlossen
  • Zeitgleiche Teilnahme an beiden Modulen

Teams & Weekly

Team Schoko

Donnerstag, 14:00 Uhr

  • Christopher
  • Isabel
  • Niclas

Team Cäsar

Donnerstag, 17:15 Uhr

  • Lukas
  • Michael
  • Stella

Raum 209.1 in Gebäude 50.28

Wasserfall

Scrum

KW Datum Meilenstein Schwerpunkt
44 30.10.2025 Einführungsveranstaltung
45 03.11.2025 Themenfindung
46 10.11.2025 Technische Einführung
47 17.11.2025
48 24.11.2025 Anforderung
49 01.12.2025 Kolloquium Sprint 1
50 08.12.2025
51 15.12.2025
52 22.12.2025 Weihnachtpause Entwurf
1 30.12.2025 Weihnachtspause
2 05.01.2026 Kolloquium Sprint 2
3 12.01.2026
4 19.01.2026 Qualitätssicherung
5 26.01.2026 Kolloquium Sprint 3
6 02.02.2026
7 09.02.2026 Projektabschluss
8 16.02.2026 Kolloquium Sprint 4
9 23.02.2026 Beginn der vorlesungsfreien Zeit

Orga und so...

  • Kolloquium inkl. Abgabe nach jedem Sprint
    → Kritische Beleuchtung des Projektfortschritts und Abschluss einer Phase,
    Teil der Prüfungsleistung
  • Je 1-2 Verantwortliche für jede Phase
    → Managen und koordinieren das Team, halten Kontakt, leiten Besprechungen
  • Folien:
    tp.lehr-lern-labor.info
  • zum Drucken:
    tp.lehr-lern-labor.info?print-pdf

Teamprojekt

Themenfindung

Das Thema

  • Entscheidung der Teams
  • Absprache mit Betreuern
  • Zielprodukt im Unterricht sinnvoll einsetzbar
  • Didaktische Überlegungen
  • Web-Applikation

To Do

  • Zielgruppe?
    Klasse, Vorwissen
  • Ziel?
    Inhalte, Lernziele
  • Zielprodukt?
    Skizzen, Beschreibungen

Teamprojekt

Technische Einführung

Scrum

Product Backlog

  • Produkt-Ziel
    schriftlicher Pitch der Software
  • Funktionalitäten (User Stories (inkl. Tasks) / Kriterien)
    (vollständige) Definition der Software
  • Definition of Done
    Checkliste zur Überprüfung, ob ein Increment fertig ist
  • Definition of Fun
    Vereinbarungen über Zusammenarbeit
  • Wichtige Entscheidungen
  • Projektplanung
    Verteilung der Scum-Master-Tätigkeit

Scrum Board

Software

  • Versionskontrolle
  • IDE / Entwicklungsumgebung
  • Scrum Board
  • Skizzen & Diagramme
  • Terminal / Konsole / Commandline / ...

Projekt einrichten

  • Node.js installieren
  • Git-Repository anlegen
  • Vue-Projekt initialisieren
    
                                $ npm create vue@latest -y
    
                                ◇  Project name (target directory):
                                │  Teamprojekt
                                │
                                ◇  Package name:
                                │  teamprojekt
                                │
                                ◇  Select features to include in your project: (↑/↓ to navigate, space to select, a to      
                                toggle all, enter to confirm)
                                │  ◻ TypeScript
                                │  ◻ JSX Support
                                │  ◻ Router (SPA development)
                                │  ◻ Pinia (state management)
                                │  ◼ Vitest (unit testing)
                                │  ◻ End-to-End Testing
                                │  ◼ ESLint (error prevention)
                                │  ◼ Prettier (code formatting)
                                └
                            
  • Anweisungen aus Terminal und Readme folgen

Tipps & Tricks

  • Options API vs. Composition API
  • Primevue

To Do

  • Toolchain ausarbeiten
    • Git-Repository anlegen
    • Scrum-Board anlegen
  • Hello-World-Programm implementieren
  • Projekt planen

Teamprojekt

Sprint 1: Anforderung

Aufwandsabschätzung

Abgabe

    Abgabe der Sprint-Dokumentation bestehend aus
  • Product Backlog inkl. Änderungsvermerk
  • Scrum-Board inkl. Sprint-Backlog
  • Burn-Up- bzw. Burn-Down-Chart
  • Entwurfsdokumente (falls vorhanden)
    z.B. Klassendiagramm, GUI-Entwürfe, Sequenzdiagramme
  • Testdokumentation (falls vorhanden)
    z.B. Testprotokolle
  • Quellcode
    z.B. als Release auf Codeberg

→ Abgabe spätestens bis 23:59 Uhr am Vortag des jeweiligen Kolloquiums per Mail an vielsack@kit.edu

Checkliste Sprint-Ende 1

  • Sprint-Dokumentation (als zusammenhängende PDF-Datei)
    • Produkt-Ziel
    • Product-Backlog (User Stories inkl. Tasks, evtl. in Scrum-Board integriert)
    • Sprint-Backlog (Aktueller Stand, vmtl. im Scrum-Board)
    • Definition of Done
    • Definition of Fun
    • Projektplanung (Scrum-Master-Tätigkeit, Burn-Up/Down-Chart)
    • Entwurfsdokumente (mind. GUI-Entwürfe und evtl. ein Epic)
  • Quellcode als Release auf Codeberg
  • URL für Projekt festlegen: https://test.lehr-lern-labor.info/<projektname>
  • Abgabe von PDF und Link zum Release an vielsack@kit.edu (→ Mi, 23:59 Uhr)

Teamprojekt

Sprint 2: Entwurf

Exkurs: Testprotokoll Systemtest

  • Für jeden Testfall:
    • Eingabe
    • Erwartete Ausgabe
    • Ergebnis des Tests je Testdurchlauf (Pass/Fail→Details)
  • Für jeden Testdurchlauf:
    • Version (Git-Hash)
    • Gerät
    • Browser

Checkliste Sprint-Ende 2

  • Sprint-Dokumentation (als zusammenhängende PDF-Datei)
    • Organisatorisches
      • Produkt-Ziel
      • Definition of Done & Definition of Fun
      • Projektplanung (Scrum-Master-Tätigkeit, Burn-Up/Down-Chart)
      • Wichtige Entscheidungen
    • Product-Backlog (User Stories inkl. Tasks, Änderungsvermerk, evtl. in Scrum-Board)
    • Sprint-Backlog (Aktueller Stand, vmtl. im Scrum-Board)
    • Entwurfsdokumente [🔍] (mind. GUI-Entwürfe, ein Epic und Klassendiagramm)
    • Testdokumentation (mind. Testprotokoll für User-Tests) [OR: Sequenzdiagramm]
  • Quellcode als Release auf GitHub
  • Abgabe von PDF und Link zum Release an vielsack@kit.edu (→ Do, 23:59 Uhr)

Teamprojekt

Sprint 3: Qualitätssicherung

Testen

  • Komponententest
    Entwickler → Module, Unterprogramme, Units, Klassen
  • Integrationstest
    Tester → Schnittstellen
  • Systemtest
    IT-Unternehmen → System in Testumgebung
  • Abnahmetest
    Kunde → System in Produktionsumgebung

Testprotokoll Systemtest

  • Für jeden Testfall:
    • Eingabe
    • Erwartete Ausgabe
    • Ergebnis des Tests je Testdurchlauf (Pass/Fail→Details)
  • Für jeden Testdurchlauf:
    • Version (Git-Hash)
    • Gerät
    • Browser

To Do

  • Recherche MVC / MVVM und Zuordnung im Klassendiagramm
  • erster Entwurf Sequenzdiagramm (bzw. Testprotokoll)
  • Einarbeitung in Vitest

Checkliste Sprint-Ende 3

  • Sprint-Dokumentation (als zusammenhängende PDF-Datei)
    • Organisatorisches
      • Produkt-Ziel
      • Definition of Done & Definition of Fun
      • Projektplanung (Scrum-Master-Tätigkeit, Burn-Up/Down-Chart)
      • Wichtige Entscheidungen
    • Product-Backlog (User Stories inkl. Tasks, Änderungsvermerk, evtl. in Scrum-Board)
    • Sprint-Backlog (Aktueller Stand, vmtl. im Scrum-Board)
    • Entwurfsdokumente (mind. GUI-Entwürfe, Epic, Klassendiagramm, Sequenzdiagramm)
    • Testdokumentation (Komponenten- und Systemtests)
  • Quellcode als Release auf GitHub
  • Abgabe von PDF und Link zum Release an vielsack@kit.edu (→ Do, 23:59 Uhr)

Teamprojekt

Sprint 4: Projektabschluss

Was benötigt Software für die "Veröffentlichung"?

(Zusammenfassung Menti )

  • Funktionalität
  • Gesicherte Qualität durch bestandene Systemtests / keine Bugs
  • Dokumentation
  • Veröffentlichung (URL, Server etc.)

Checkliste Sprint-Ende 4

  • Sprint-Dokumentation (als zusammenhängende PDF-Datei)
    • Organisatorisches
      • Produkt-Ziel
      • Definition of Done & Definition of Fun
      • Projektplanung (Scrum-Master-Tätigkeit, Burn-Up/Down-Chart)
      • Wichtige Entscheidungen
    • Product-Backlog (User Stories inkl. Tasks, Änderungsvermerk, evtl. in Scrum-Board)
    • Sprint-Backlog (Aktueller Stand, vmtl. im Scrum-Board)
    • Entwurfsdokumente (mind. GUI-Entwürfe, Epic, Klassendiagramm, Sequenzdiagramm)
    • Testdokumentation (Komponenten- und Systemtests)
  • Quellcode als Release auf GitHub (inkl. README)
  • Abgabe von PDF und Link zum Release an vielsack@kit.edu (→ Do, 23:59 Uhr)

Teamprojekt

Exkurs: Open Source

Welche Vorteile hat Open Source?

(Zusammenfassung Menti )

  • Vertrauen schaffen
  • Wiederverwendbarkeit von Code
  • Individuelle Anpassungen
  • Kollaboration
  • Schnelle / weitere Verbreitung
  • Keine Kosten (→ Chancengleichheit)
  • Verbesserung der (Code-)Qualität

Welche Nachteile hat Open Source?

(Zusammenfassung Menti )

  • Andere verdienen an eigenem Code
  • Eigener Code lässt sich schlechter vermarkten
  • Schlechte Dokumentation
  • Verbreitung von Malware
  • Verwendung für ungewollte Zwecke
  • Finden (und Ausnutzen) von Schwachstellen
  • Nutzererlebnis nicht unbedingt im Vodergrund
  • Qualität u.U. nicht gesichert

Open Source

  • Lizenzen, die den Kriterien der Open Source Initiative (OSI) entsprechen
  • Liste aller von der OSI genehmigten Lizenzen (opensource.org/licenses)
  • Zusammenfassung einiger Open Source Lizenzen (tl;dr) (tldrlegal.com)
  • Hilfestellung bei der Suche nach einer passenden Lizenz (choosealicense.com)
  • Github bietet Vorlagen beim Hinzufügen einer neuen Datei mit Namen license


Creative Commons

  • Lizenzen für verschiedene Werke, z.B. Texte, Bilder, Musik
  • Nicht geeignet für Quellcode

Open-Source-Definition I

  • Freie Weitergabe
    Niemand darf daran gehindert werden, die Software zu verkaufen oder diese zusammen mit anderer Software weiterzugeben.
  • Verfügbarer Quelltext
    Die Software muss im Quelltext für alle Nutzer verfügbar sein.
  • Abgeleitete Arbeiten
    Modifizierte Versionen unter derselben Lizenz wie die originale Software müssen erlaubt sein.
  • Integrität des Autoren-Quelltexts
    Das Verteilen von Software, die auf einer modifizierten Version des Originals beruht, muss erlaubt sein.
  • Keine Diskriminierungen von Personen oder Gruppen
    Einzelnen Personen oder Gruppen darf die Nutzung der Software nicht verweigert werden.

Open-Source-Definition II

  • Keine Nutzungseinschränkung
    Der Verwendungszweck der Software darf nicht einschränkt werden.
  • Lizenzerteilung
    Die verbundenen Rechte müssen für alle gelten, an die Software weitergegeben wird.
  • Produktneutralität
    Die verbundenen Rechte dürfen nicht davon abhängen, ob die Software Teil eines bestimmten Softwarepakets ist.
  • Keine Softwareeinschränkung
    Keine Einschränkungen für andere Software, die zusammen mit der lizenzierten Software vertrieben wird.
  • Technologieneutralität
    Keine Bestimmung der Lizenz darf auf eine einzelne Technologie gestützt werden.

Teamprojekt

Abschlussveranstaltung

Abschlussveranstaltung

  • Präsentation der fertigen Software
  • Reflektion des Projekts (Herausforderungen, Meilensteine)
  • Fachdidaktische Überlegungen
    • In der Schule wird als Programmiersprache zukünftig Javascript eingesetzt. Was ist eure begründete Meinung dazu? Wo seht ihr Schwierigkeiten, Herausforderungen und Chancen?
    • In eurem eigenen Unterricht möchtet ihr mit den Schüler:innen ein Softwareprojekt umsetzen. Wo seht ihr die größten Schwierigkeiten? Wo legt ihr eure Schwerpunkte?
  • Termin: 15.04.2026 ab 16 Uhr