Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
talit:projekt3 [2025-02-03 12:26] – angelegt hoftalit: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:** letzter Schultag vom aktuellen Semester+     * **Deadline:** erster Montag nach Herbstferien, 23:59
      * **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-/Software-Projekt.
 +   * Der Makerspace steht zur Verfügung.
  
 ===== Ideen ===== ===== Ideen =====
  
-   **Bekanntes Game** mit **eigenem Twist** (Tetris, Pac-Man, Flipper-Kasten, ...) +   Webprojekt mit Server-Komponente
-   **Eigenes Game** entwickeln +   Arduino-Projekt 
-   **Lernprogramm** z.B. für: +   Mobile-App
-     * Binärsystem (Binäruhr, Umrechnen Dez <-> Bin, Spielmodus, ...) +
-     * Kanti-Mathe (quad. Gleichungen, LGS, ...) +
-     * 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, mit denen man **GUI**s erstellen kann wie PyQT, ... 
-   * Website, um eigene Pixelart zu erstellen (auch Animationen): [[http://piskelapp.com]] 
  
- +  Umsetzung 
-===== Vorgehen ===== +    * Mit arbeiten beginnen 
- +    * Regelmässige Commits (mind. 1 pro Woche) und Pushes 
-  1. **Part 1:** PyGame kennenlernen (-> muss nachher nicht verwendet werden, ist aber empfohlen) +    Ab jetzt kann **zuhause gearbeitet werden** 
-    1. Studiere die folgende Seite: [[talit:python_pygame]] +    Aus **eigenem Antrieb treffen mit LP abmachen, mind 1. pro Monat!** 
-    1. Führe das folgende **Tutorial** aus: [[talit:python_pygame#tutorial]] (PyGame installieren, Template herunterladen, verstehen, erweitern) +    Bei Fragen, Problemen in Lektion kommen
-  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. Mit arbeiten beginnen +
-     1. regelmässige commits (mind. 1 pro Woche) und pushes +
-     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, was das Produkt (also das Resultat der Arbeit) sein soll.+   * PRD ist kurzes Markdown-Dokument (1-2 Seiten), welches alles zusammenfasst, was das Produkt (also das Resultat der Arbeit) sein soll.
    * Inhalt:    * Inhalt:
      * **Abstract:** Zu oberst in 2-3 Sätzen das Allerwichtigste kurz zusammengefasst.      * **Abstract:** Zu oberst in 2-3 Sätzen das Allerwichtigste kurz zusammengefasst.
Zeile 57: Zeile 40:
        * Welche Features, Modi usw. soll es haben?        * Welche Features, Modi usw. soll es haben?
      * **Skizze:** Fertige Skizze an von Hauptbildschirm, wie etwa aussehen könnte. Von Hand oder mit Wireframe-Tool, z.B.:      * **Skizze:** Fertige Skizze an von Hauptbildschirm, wie etwa aussehen könnte. Von Hand oder mit Wireframe-Tool, z.B.:
-       * [[https://app.diagrams.net]]. Für Beispiele siehe: Neues Diagramm erstellen -> Drahtgittermodelle / Wireframe -> eines auswählen+       Empfehlung [[https://app.diagrams.net]]. Für Beispiele siehe: Neues Diagramm erstellen -> Drahtgittermodelle / Wireframe -> eines auswählen
        * [[https://wireframe.cc]]        * [[https://wireframe.cc]]
 +         * Funktioniert, Bilder lassen sich aber nicht direkt einbetten.
        * [[http://pencil.evolus.vn]] (muss installiert werden)        * [[http://pencil.evolus.vn]] (muss installiert werden)
      * **Technische Details:**      * **Technische Details:**
-       * Wie soll umgesetzt werden?+       * Wie soll das Projekt umgesetzt werden?
        * Welche Programmiersprachen, Frameworks usw. sollen verwendet werden?        * Welche Programmiersprachen, Frameworks usw. sollen verwendet werden?
        * Hat das Produkt eine Schnittstelle (Web-App, Konsolenprogramm, Programmbibliotheke)?        * Hat das Produkt eine Schnittstelle (Web-App, Konsolenprogramm, Programmbibliotheke)?
 +       * [[https://github.com/JungleState/ksr_junglestate/blob/main/doc/visualization.md|Beispiel]]
 +     * **Probleme**
 +       * Was sind die grössten Herausforderungen?
 +       * Woran könnte das Projekt scheitern?
      * [[https://github.com/JungleState/ksr_junglestate/blob/main/doc/requirements.md|Beispiel]]      * [[https://github.com/JungleState/ksr_junglestate/blob/main/doc/requirements.md|Beispiel]]
  
-<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? Was ist das _minimal viable product_ (MVP)?
-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://github.com/issues|Issues]] in eurem Repository:
-   * Wo könnten Hauptprobleme sein?+
  
-</nodisp>+  * 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, in welchem ausschliesslich mit **Python** programmiert wird. Webprojekte z.B. mit Flask sind explizit *nicht* erlaubt (wird später in TALIT gemacht). 
    * 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#programmier-konventionen|Python Konventionen]] halten 
      * 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)
  
  
  • talit/projekt3.1738585607.txt.gz
  • Zuletzt geändert: 2025-02-03 12:26
  • von hof