====== Planung FS 2023 ======
++++Planung Q1|
* **15.02.2023:**
* 1M & 2M:
* Vorstellung [[talit:microbit:security|Security-Projekt]]
* Gruppenbildung
* 2M stellen 1M micro:bit vor
* gemeinsam einfache Aufgaben lösen
* 2M: Besprechung Projekte
* **22.02.2023:**
* 1M & 2M: Start [[talit:microbit:security|Security-Projekt]] (I)
* 2M: Vorstellung Projekte Teil I
* Leonardo Brun (Discord)
* Laurin Herzig (Pygame)
* **01.03.2023:**
* 1M & 2M: [[talit:microbit:security|Security-Projekt]] (II)
* 2M: Vorstellung Projekte Teil II
* Dario Küng (Verkehrskadetten-Bestellung)
* Enny & Livia (Game)
* (Jona & Dimitri (Tasks App))
* **08.03.2023:**
* Vorbereitung Hackathon
* https://github.com/tkilla77/ksr_talit_hackathon
* 2M: Vorstellung Projekte Teil III
* Jonas Tibisch (Chess Project)
* Hanna Kradolfer (Pygame)
* 1M & 2M: [[talit:microbit:security|Security-Projekt]] (III)
* **15.03.2023:**
* 2M: Vorstellung Projekte Teil IV
* Lukas Tran
* Vorbereitung Hackathon
* 1M & 2M: [[talit:microbit:security|Security-Projekt]] (IV)
* **HACKATHON** 18.03.2023 (Obligatorisch für 2M, freiwillig 1M)
* [[https://hackathon-thurgau.ch/jugend-challenge/|Hackathon Jugendchallenge]]
* **22.03.2023:**
* Projekte finalisieren
* **Deadline** Abgabe Videodokumentation/Werbevideo bis **Fr. 24.03.2023 @23.59**
++++
**Planung Q2:**
* 1M: siehe [[microbit_asteroids_game_2023#programm_1m_fs2023_q2]]
=== Programm 1M ===
++++Programm 1M|
=== Lektion 10: 28.06.2023 ===
* Letzte Lektion vor Ferien, nur ca. 1h
* Info zu SSW (Neuronale Netze)
* Fragen zu Bildbearbeitung und Asteroiden Game
* **HA: bis Ende 1. Ferienwoche Asteroiden-Game fix fertig (Model, m:bit, PyQt, Console)**
=== Lektion 9: 21.06.2023 ===
* Abschiedsapéro 4M-TALIT
* Bildberarbeitung:
* Demo Bildbearbeitungseffekte mit Numpy
* 2/3-er Gruppen wird je ein Effekt zugewiesen, überlegen, wie umsetzen
* mind. zwei versch. Effekte programmieren
* **HA:** Auftrag fertig
=== Lektion 8: 14.06.2023 ===
* neues Thema: [[talit:image_processing_python|Pixel Art und Bildbearbeitung mit Python]]
* Vorbereitung auf NN Kurs in SSW
* it's Fun!
* Lektion:
* Aufgabe 0: Einrichten (gemeinsam)
* Aufgabe 1: Numpy Arrays kennen lernen
* Aufgabe 2: Fun with Flags
* Aufgabe 3: Pixel Art
* Aufgabe 4: Animation (optional)
* **HA:**
* auf SO: Code zu A3 fertig und abgeben per Teams (wie immer)
* auf MI: eigene Pixel Art, in Klasse demonstrieren
=== Lektion 7: 07.06.2023 ===
* Auftrag von vorletzter Woche (Finale Version Asteroids Game)
* **FINALE ABGABE:** kommender Sonntag 11.06.2023
=== Lektion 6: 31.05.2023 ===
Weiter an Auftrag von letzter Lektion
=== Lektion 5: 24.05.2023 ===
* Slides: Model / View
* Auftrag: Version Final
* **Abgabe 1:** Teil I & II (oder mehr) bis nächste Lektion, Besprechung in Person.
* **Abgabe 2:** Verbesserung & Teil III & IV bis So 4.6.
=== Lektion 4: 10.05.2023 ===
* Rückmeldung HA:
* Erreichbarkeit: Mitteilungen meist per Teams, muss *täglich* überprüfen
* wird besser
* bitte mit aussagekräftiger Rückmeldung. Probleme oder Fehler? Beschreibe diese und nicht einfach "... dann wird mir eine Fehlermeldung bei Linie 30 angegeben."
* GitHub: NIE Files per Upload hochladen sondern über Git-Bash. Finde heraus wie das geht, frage TALIT-Go(e)tti!
* OOP:
* Grundidee
* Beispiele von SuS
* Live-Demo: Asteroiden-Regen
* HA:
* v05 korrigieren & erweitern
* beachte: Aufgabe wurde ergänzt:
* z.B. Klasse für Player
* **Abgabe 1:** bis kommenden Sonntag 14.5. (besser früher)
* dann warten auf Rückmeldung von LP
* **Abgabe 2:** Verbesserung (falls nötig bis So. 21.5.
* **Ziel: perfekte OOP Version bis zur nächsten Lektion**
**Code-Beispiele SuS:**
Wo ist das Problem?
class Asteroid:
def __init__(self, pos_x, pos_y, brightness, speed, last_update):
self.pos_x = pos_x
self.pos_y = pos_y
self.brightness = brightness
self.speed = speed
self.last_update = last_update
def spawn(self):
if len(Asteroids) < MAX_ASTEROIDS:
pos_x = random.randint(0, 4)
pos_y = 0
brightness = ASTEROID_BRIGHTNESS
speed = random.randint(50, 500)
last_update = time.ticks_ms()
asteroid = Asteroid(pos_x, pos_y, brightness, speed, last_update)
Asteroids.append(asteroid)
return asteroid
return None
=== Lektion 3: 03.05.2023 ===
* Rückmeldung HA:
* In Code unten keine Werte (ausser z.B. 0), sondern KONSTANTEN
* Keep it short & simple:
* anstelle `if : if ` einfach: `if and `
* vermeide zu viele Einrückungen -> schwierig zu lesen
* Logische Abfolge in Game-Loop: Halte dich an Vorgaben in Template:
* Template: Update Asteroid & Player / Collision / Display / Short Sleep
* Bsp. nicht optimal: Display / Update Asteroid & Player / Collision / Short sleep
* Neustart bei Game Over: Mehrere Möglichkeiten:
* Nach Game Over in neues `while True`, mit break ausbrechen (Lösung v04a). Problem: Wie auf Starteinstellungen zurücksetzen, ohne den Code copy-pasten? Möglichkeit: global variables, aber ist bad practice
* Alternative: Zwei eigene Funktionen für Game Loop und Game Over (v04b).
* Besprechung: Wollen mehrere Asteroiden gleichzeitig haben, sollen zufällig spawnen. Wie programmieren?
* Theorie Input und Aufgaben (keine Zeit mehr für Aufgaben) zu [[talit:oop_einfuehrung#auftrag_2oop_im_game|OOP]]
* Version 5 programmieren
* **HA:**
* v05 fertig und abgeben bis So.
* optional aber sehr empfohlen: [[talit:oop_einfuehrung#auftrag_1klasse_person|Auftrag 1]]
=== Lektion 2: 26.04.2023 ===
* **Rückmeldung Abgaben** von HA:
* waren nicht gut im Allgemeinen, müssen immer gleich ablaufen
* Lektion verpasst? SELBSTÄNDIG nacharbeiten, nachfragen, ...
* z.T. HEX-File oder File ohne Endung anstelle PY-File hochgeladen. Python-Files immer von Form `my_file.py`
* vor Abgabe **überprüfen**, ob Hochladen auf GitHub funktioniert hat!
* z.T. (fast) identische Abgaben. Warum???
* **Nachricht** an LP per Teams mit folgender Info:
* **Link** zum File (jedes Mal aufs Neue, damit LP nicht lange suchen muss)
* **Rückmeldung:** Funktioniert? Falls nicht, beschreibe Probleme, Bugs, ... so genau es geht\\ \\
* **Rückmeldungen Code:**
* [[talit:python_setup#programmier-konventionen| Programmierkonventionen]]
* falls `game_over` bool (True oder False), schreibe `if game_over` anstelle `if game_over == True`
* Kommentare: Überschriften, Erklärungen
* Strukturierung Code (siehe Template zu nächster Code-Version)
* Trenne Logik von Anzeige (mehr dazu im Auftrag zu v03)
* Verwende **kein sleep()** für Bewegung der Asteroiden (beeinflusst auch Player) sondern `time.ticks_ms()`\\ \\
* **Auftrag Lektion:**
* **Version 3** (gleiches Game aber sauber strukturiert)
* Lösung muss mit **LP besprochen** werden
* **HA 1:** Studiere [[talit:talit_info|TALIT-Info]]
* **HA 2: Version 4**
* Abgabe bis SA-Abend
* Halte dich an Abgaberegeln (gelten immer!):
* Nachricht an sca per Teams mit:
* **Link** zum File (jedes Mal aufs Neue, damit LP nicht lange suchen muss)
* **Rückmeldung:** Funktioniert? Falls nicht, beschreibe Probleme, Bugs, ... so genau es geht\\ \\
=== Lektion 1: 19.04.2023 ===
* **Version 1** (Challenge, Asteroids v01)
* Besprechung: Wie kann man verbessern? Siehe Tipps
* Auftrag 2 beginnen
* **Hausaufgabe:**
* Bis Sonntagabend **Version 2** fertig ...
* auf GitHub (geteilt mit anschae, gehe auf GitHub und stelle sicher, dass alles geklappt hat) ...
* und Nachricht per Teams an sca mit:
* Link zu GitHub Repo
* kurze Nachricht: Was funktioniert? Gibt noch Probleme?
++++
==== Gruppen ====
++++Gruppen|
^ Name ^ Klasse | Team |
| Kim Ngo (1Mdz, KK) | 1 | 1 |
| Enny Reinhardt (2Mdz) | 2 | 1 |
| Rico Fleming (1Ma) | 1 | 2 |
| Jona Kreis (2Mc) | 2 | 2 |
| Maia Cater (1Fa, KC) | 1 | 3 |
| Livia Scherle (2Mez) | 2 | 3 |
| Jennifer Imonopi (1Mez, KC) | 1 | 4 |
| Lea Seitter (1Mb, KC) | 1 | 4 |
| Hanna Kradolfer (2Mdz) | 2 | 4 |
| Lorenzo Camani (1Mfz) | 1 | 5 |
| Mirea Capizzi (1Ma) | 1 | 5 |
| Dario Küng (2Mdz) | 2 | 5 |
| Bernardo Bürger Brun (1Mfz, KC) | 1 | 6 |
| Jonas Tibisch (2Mdz, KK) | 2 | 6 |
| Mailo Rodriguez (1Mc) | 1 | 7 |
| Dimitri Horn (2Mc) | 2 | 7 |
| Johannes Stölzle (1Mfz) | 1 | 8 |
| Darvin Subramaniam (1Mdz) | 1 | 8 |
| Laurin Herzig (2Mez, KK) | 2 | 8 |
| Andrin Schmid (1Mez) | 1 | 9 |
| Lukas Tran (3Ma) | 3 | 9 |
| Dylan Cetina (1Mfz) | 1 | 10 |
| Joris Cremonese (1Ma) | 1 | 10 |
| Leonardo Brun (2Mez) | 2 | 10 |
++++