**Dies ist eine alte Version des Dokuments!**
TALIT Programmier-Projekt 2M
Übersicht
- Eines von drei offiziellen TALIT-Projekten
- Muss Python-Programmierprojekt sein
- Empfehlung: mit PyGame
- muss bestanden werden, ansonsten ist TALIT-Reise vorbei
- Abgabe
- Deadline: letzter Schultag vom aktuellen Semester
- Wie: Teams-Nachricht an Betreuer inkl. Link zum Repo
Ideen
- Bekanntes Game mit eigenem Twist (Tetris, Pac-Man, Flipper-Kasten, …)
- Eigenes Game entwickeln
- Lernprogramm z.B. für:
- Binärsystem (Binäruhr, Umrechnen Dez ↔ Bin, Spielmodus, …)
- Kanti-Mathe (quad. Gleichungen, LGS, …)
- Kinder, z.B. Buchstaben spielerisch lernen
- …
Tipps
- 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 GUIs erstellen kann wie PyQT, …
- Website, um eigene Pixelart zu erstellen (auch Animationen): http://piskelapp.com
Vorgehen
- Part 1: PyGame kennenlernen (→ muss nachher nicht verwendet werden, ist aber empfohlen)
- Part 2: Idee für Python-Programmierprojekt ausdenken, mit LP besprechen, absegnen lassen.
- Part 3:
- Idee ausarbeiten,
- GitRepo mit passendem Namen erstellen, mit Betreuer teilen
- Product Requirements Document (PRD, mehr Infos unten) in Repo erstellen und Betreuer mitteilen (per Teams inkl. Link)
- PRD mit Betreuer besprechen (vor Ort oder per Teams)
- Part 4:
- Mit arbeiten beginnen
- regelmässige commits (mind. 1 pro Woche) und pushes
- Ab jetzt kann zuhause gearbeitet werden
- Aus eigenem Antrieb treffen mit LP abmachen, mind 1. pro Monat!
- Bei Fragen, Problemen in Lektion kommen
Product Requirements Document (PRD)
- PRD ist kurzes Dokument (1-2 Seiten), welches alles zusammenfasst, was das Produkt (also das Resultat der Arbeit) sein soll.
- Inhalt:
- Abstract: Zu oberst in 2-3 Sätzen das Allerwichtigste kurz zusammengefasst.
- Programmbeschrieb:
- Beschreibe dein Programm in etwas mehr Detail.
- 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.:
- https://app.diagrams.net. Für Beispiele siehe: Neues Diagramm erstellen → Drahtgittermodelle / Wireframe → eines auswählen
- http://pencil.evolus.vn (muss installiert werden)
- Technische Details:
- Wie soll umgesetzt werden?
- Welche Programmiersprachen, Frameworks usw. sollen verwendet werden?
- Hat das Produkt eine Schnittstelle (Web-App, Konsolenprogramm, Programmbibliotheke)?
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.
- 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.
- Der Code muss folgende Kriterien erfüllen
- sauber strukturiert
- passende Abstände im Code
- sinnvolle Namen für Variablen, Methoden usw.
- an Python Konventionen halten
- sinnvoll kommentiert (so dass LP in kurzer Zeit Code verstehen kann)