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) | ||