Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| talit:projekt3 [2025-02-03 12:26] – angelegt hof | talit:projekt3 [2025-02-17 13:09] (aktuell) – [Product Requirements Document (PRD)] hof | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== TALIT Programmier-Projekt 3M ====== | + | ====== TALIT Abschluss-Projekt 3M ====== |
| - | + | ||
| - | ===== Übersicht | + | |
| * Eines von drei **offiziellen TALIT-Projekten** | * Eines von drei **offiziellen TALIT-Projekten** | ||
| - | * Muss **Python-Programmierprojekt** sein | ||
| - | * Empfehlung: mit PyGame (muss aber nicht) | ||
| - | * **muss bestanden** werden, ansonsten ist TALIT-Reise vorbei | ||
| * **Abgabe** | * **Abgabe** | ||
| - | * **Deadline: | + | * **Deadline: |
| * **Wie:** Teams-Nachricht an Betreuer inkl. Link zum Repo | * **Wie:** Teams-Nachricht an Betreuer inkl. Link zum Repo | ||
| + | * Das Projekt kann ein reines Software-Projekt sein, oder ein kombiniertes Hardware-/ | ||
| + | * Der Makerspace steht zur Verfügung. | ||
| ===== Ideen ===== | ===== Ideen ===== | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | * Binärsystem (Binäruhr, Umrechnen Dez <-> Bin, Spielmodus, ...) | + | |
| - | * Kanti-Mathe (quad. Gleichungen, | + | |
| - | * Kinder, z.B. Buchstaben spielerisch lernen | + | |
| * ... | * ... | ||
| + | ===== Vorgehen ===== | ||
| - | ===== Tipps ===== | + | * Idee entwickeln und planen (Deadline: 17. Februar 2025) |
| + | * GitRepo mit passendem Namen erstellen, mit Betreuer teilen | ||
| + | * **Product Requirements Document** (PRD, mehr Infos unten) und **Zeitplan** *in Repo* erstellen und Betreuer mitteilen (per Teams inkl. Link) | ||
| + | * PRD mit Betreuer besprechen (vor Ort oder per Teams) | ||
| - | * Empfehlung: Verwende **PyGame**. PyGame ist Library, mit der man mit Python Programme mit einer graphischen Oberfläche programmieren kann. Besonders ist es geeignet, 2D-Retro Games damit zu entwickeln. Für 3D-Games und Games mit moderner Grafik ist es allerdings nicht geeignet. Man kann mit PyGame aber auch andere Programme als Games entwickeln. | ||
| - | * Es gibt aber auch andere Python-Libraries, | ||
| - | * Website, um eigene Pixelart zu erstellen (auch Animationen): | ||
| - | + | | |
| - | ===== Vorgehen ===== | + | * Mit arbeiten beginnen |
| - | + | * Regelmässige Commits | |
| - | 1. **Part 1:** PyGame kennenlernen (-> muss nachher nicht verwendet werden, ist aber empfohlen) | + | |
| - | | + | |
| - | 1. Führe das folgende | + | |
| - | 1. **Part 2:** Idee für Python-Programmierprojekt ausdenken, mit LP besprechen, absegnen lassen. | + | |
| - | 1. **Part 3:** | + | |
| - | 1. Idee ausarbeiten, | + | |
| - | 1. GitRepo mit passendem Namen erstellen, mit Betreuer teilen | + | |
| - | 1. **Product Requirements Document** (PRD, mehr Infos unten) *in Repo* erstellen und Betreuer mitteilen (per Teams inkl. Link) | + | |
| - | 1. PRD mit Betreuer besprechen (vor Ort oder per Teams) | + | |
| - | 1. **Part 4:** | + | |
| - | | + | |
| - | 1. regelmässige commits | + | |
| - | 1. Ab jetzt kann **zuhause gearbeitet werden** | + | |
| - | 1. Aus **eigenem Antrieb treffen mit LP abmachen, mind 1. pro Monat!** | + | |
| - | 1. Bei Fragen, Problemen in Lektion kommen | + | |
| ===== Product Requirements Document (PRD) ===== | ===== Product Requirements Document (PRD) ===== | ||
| - | * PRD ist kurzes Dokument (1-2 Seiten), welches alles zusammenfasst, | + | * PRD ist kurzes |
| * Inhalt: | * Inhalt: | ||
| * **Abstract: | * **Abstract: | ||
| Zeile 57: | Zeile 40: | ||
| * Welche Features, Modi usw. soll es haben? | * Welche Features, Modi usw. soll es haben? | ||
| * **Skizze:** Fertige Skizze an von Hauptbildschirm, | * **Skizze:** Fertige Skizze an von Hauptbildschirm, | ||
| - | * [[https:// | + | |
| * [[https:// | * [[https:// | ||
| + | * Funktioniert, | ||
| * [[http:// | * [[http:// | ||
| * **Technische Details:** | * **Technische Details:** | ||
| - | * Wie soll umgesetzt werden? | + | * Wie soll das Projekt |
| * Welche Programmiersprachen, | * Welche Programmiersprachen, | ||
| * Hat das Produkt eine Schnittstelle (Web-App, Konsolenprogramm, | * Hat das Produkt eine Schnittstelle (Web-App, Konsolenprogramm, | ||
| + | * [[https:// | ||
| + | * **Probleme** | ||
| + | * Was sind die grössten Herausforderungen? | ||
| + | * Woran könnte das Projekt scheitern? | ||
| * [[https:// | * [[https:// | ||
| - | <nodisp 2> | + | ==== Zeitplan ==== |
| - | + | Erstellt einen groben Zeitplan für das Projekt. Was sind die grossen Brocken? Was lässt sich weglassen (_nice to have_) und was ist unverzichtbar? | |
| - | NODISP 2 | + | |
| - | + | ||
| - | **BEM SCA: würde ergänzen: | + | |
| - | * Grobe Timeline | + | Für den Zeitplan könnt ihr eine Tabelle im Markdown-Dokument erstellen; alternativ dazu ist die Verwendung von github Milestones und [[https:// |
| - | * Wo könnten Hauptprobleme sein? | + | |
| - | </ | + | * Jeder grössere Brocken wird als Issue erfasst. |
| + | * ein Issue sollte in weniger als einer Woche umsetzbar sein. | ||
| + | * Milestones (Meilensteine) sind regelmässige (z.B. alle 6 Wochen) Checkpoints. | ||
| + | * ein Issue wird für einen Milestone eingeplant. | ||
| + | * beim Ablauf des Milestones werden unerledigte Issues nach hinten geschoben und die Zeitplanung angepasst. | ||
| ===== Kriterien und Anforderungen ===== | ===== Kriterien und Anforderungen ===== | ||
| - | * Das Projekt muss ein Programmierprojekt, | ||
| * Die Projektidee muss mit der LP abgesprochen werden und muss dann so umgesetzt werden. Allfällige **Planabweichungen** müssen rechtzeitig beantragt und von der LP abgesegnet werden. | * Die Projektidee muss mit der LP abgesprochen werden und muss dann so umgesetzt werden. Allfällige **Planabweichungen** müssen rechtzeitig beantragt und von der LP abgesegnet werden. | ||
| - | * Es muss sauber **objektorientiert** programmiert sein. | ||
| - | * Der **Programmierstil** muss demjenigen des **PyGame-Templates** oben entsprechen (verschiedenen Files, Aufbau der Klassen, ...). Arbeitet man mit PyGame, so ist es empfohlen, mit diesem Template zu starten und es entsprechend anzupassen. | ||
| * **Ressourcen** wie Bilder, Musik, Videos sollen möglichst selbst erstellt werden. Falls solche aus dem Internet verwendet werden, so müssen diese royalty free sein. | * **Ressourcen** wie Bilder, Musik, Videos sollen möglichst selbst erstellt werden. Falls solche aus dem Internet verwendet werden, so müssen diese royalty free sein. | ||
| * Der Code muss folgende **Kriterien** erfüllen | * Der Code muss folgende **Kriterien** erfüllen | ||
| Zeile 89: | Zeile 74: | ||
| * passende Abstände im Code | * passende Abstände im Code | ||
| * sinnvolle Namen für Variablen, Methoden usw. | * sinnvolle Namen für Variablen, Methoden usw. | ||
| - | * an [[python_setup# | ||
| * sinnvoll kommentiert (so dass LP in kurzer Zeit Code verstehen kann) | * sinnvoll kommentiert (so dass LP in kurzer Zeit Code verstehen kann) | ||
| + | * Dokumentation | ||
| + | * Das Projekt muss im Repository sauber dokumentiert werden: | ||
| + | * **PRD** | ||
| + | * Hinweise zur Benutzung des Endprodukts (Link zu Webapp / App-Download / Abbildungen von Hardware-Komponenten) | ||