Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:tutorial_oop [2020-09-02 12:34] – [Aufgabe 4 (Datenformate)] spstalit:tutorial_oop [2020-11-30 13:57] (aktuell) – [Vererbung] sps
Zeile 25: Zeile 25:
 1. Du kannst gerne bereits mit den Schritten beschrieben in [In Lektion](#In_Lektion) und in [Auftrag nach erster Lektion](#Auftrag_nach_erster_Lektion). 1. Du kannst gerne bereits mit den Schritten beschrieben in [In Lektion](#In_Lektion) und in [Auftrag nach erster Lektion](#Auftrag_nach_erster_Lektion).
  
-### In Lektion {#In_Lektion}+### In Lektion
  
 1. Erstelle auf GitHub ein neues Repository: 1. Erstelle auf GitHub ein neues Repository:
Zeile 44: Zeile 44:
 7. Füge *anschae* als Collaborator dieses Repos hinzu. 7. Füge *anschae* als Collaborator dieses Repos hinzu.
  
-### Auftrag nach erster Lektion {#Auftrag_nach_erster_Lektion}+### Auftrag nach erster Lektion
  
 Studiere im Tutorial **Python Setup** die folgenden Kapitel. Die Schritte, die du explizit machen sollst, werden explizit genannt: Studiere im Tutorial **Python Setup** die folgenden Kapitel. Die Schritte, die du explizit machen sollst, werden explizit genannt:
Zeile 194: Zeile 194:
   * JSON   * JSON
   * (XML)   * (XML)
-Bildet Gruppen (ca. 3 SuS) und arbeitet euch in eines der beiden Datenformate (CSV oder JSON) ein.+Bildet Gruppen (je 2 SuS) und arbeitet euch in eines der beiden Datenformate (CSV oder JSON) ein.
  
 **Auftrag:** **Auftrag:**
Zeile 201: Zeile 201:
   - Erstellt ein Tutorial für eure Kollegen über euer Datenformat. Dieses soll einerseits eine allgemeine Einführung und Übersicht über euer Datenformat beinhalten. Andererseits soll genau erklärt werden, wie man mit Python mit diesem Format arbeiten kann.   - Erstellt ein Tutorial für eure Kollegen über euer Datenformat. Dieses soll einerseits eine allgemeine Einführung und Übersicht über euer Datenformat beinhalten. Andererseits soll genau erklärt werden, wie man mit Python mit diesem Format arbeiten kann.
   - Euer Tutorial soll ein repräsentatives Beispiel einer Datei von Eurem Format beinhalten. Stellt dieses in eurem Eintrag den Anderen zur Verfügung (siehe Beispiel unten).   - Euer Tutorial soll ein repräsentatives Beispiel einer Datei von Eurem Format beinhalten. Stellt dieses in eurem Eintrag den Anderen zur Verfügung (siehe Beispiel unten).
-  - Ebenso soll euer Tutorial ein Python-File beinhalten, mit dem dieses File gelesen und in dieses geschrieben werden kann (siehe ebenfall Beispiel unten).+  - Ebenso soll euer Tutorial ein Python-File beinhalten, mit dem dieses File gelesen und in dieses geschrieben werden kann (siehe ebenfalls Beispiel unten)
 +  - Findet eine Website, auf der man Dateien eures Formats auf Gültigkeit prüfen kann.
   - Ladet euer Tutorial auf dieses DokuWiki in eurem [[talit_2018_2022:start|SuS Arbeitsbereich]]   - Ladet euer Tutorial auf dieses DokuWiki in eurem [[talit_2018_2022:start|SuS Arbeitsbereich]]
-  - **Erste (aber trotzdem gute) Version: Sonntag 24.11.2019** +  - **Erste (aber trotzdem gute) Version: Sonntag 20.09.2019** 
-  - **Deadline: Montag 25.11.2019**+  - **Deadline: Montag 21.09.2019**
  
 Ein Codeblock im DokuWiki Editor wird wie folgt geschrieben: Ein Codeblock im DokuWiki Editor wird wie folgt geschrieben:
Zeile 219: Zeile 220:
 </code> </code>
  
-Mit einem Klick auf den Filenamen kann das File dann direkt hinuntergeladen werden. Wird kein Filenamen angegeben, so wird einfach der Code angezeigt, ohne dass man diesen hinunterladen kann.+Mit einem Klick auf den Filenamen kann das File dann direkt heruntergeladen werden. Wird kein Filenamen angegeben, so wird einfach der Code angezeigt, ohne dass man diesen hinunterladen kann.
  
 Für andere Programmiersprachen oder Datenformate muss man die Definition entsprechend anpassen.  Für andere Programmiersprachen oder Datenformate muss man die Definition entsprechend anpassen. 
Zeile 242: Zeile 243:
    * Erstelle im Ordner `tutorial_oop_voci` einen Unterordner `dicts`. \\ \\    * Erstelle im Ordner `tutorial_oop_voci` einen Unterordner `dicts`. \\ \\
  
-   * Erstelle darin mindestens drei Files, je ein CSVJSON und XML. Jedes File soll eine Wörtliliste zu einem Thema beinhalten, z.B. `animals_en_de.csv`, `sport_fr_de.json`, ... Jeder Eintrag soll beihalten:+   * Erstelle darin mindestens vier Files, je zwei im CSV- und zwei im JSON-Format. Jedes File soll eine Wörtliliste zu einem Thema beinhalten, z.B. `animals_en_de.csv`, `sport_fr_de.json`, ... Jeder Eintrag soll beihalten:
        
          - Wort in Sprache 1 \\           - Wort in Sprache 1 \\ 
Zeile 248: Zeile 249:
          - Progress (z.B. Zahlen von 0 bis 3, wobei 0 für 'noch gar nicht gelernt' und 3 für 'komplett gelernt' stehen) \\ \\          - Progress (z.B. Zahlen von 0 bis 3, wobei 0 für 'noch gar nicht gelernt' und 3 für 'komplett gelernt' stehen) \\ \\
  
-   * *Tipp:* Mache eine Sicherheitskopie dieser Files, falls du sie ausversehen überschreibst.  \\ \\+   * *Tipp:* Mache eine Sicherheitskopie dieser Files, falls du sie aus Versehen überschreibst.  \\ \\
  
    * Mache eine Kopie von deinem aktuellsten Voci Trainer und speichere diesen unter dem Namen `voci_trainer_v04.py` und bearbeite nun diese Datei. \\ \\    * Mache eine Kopie von deinem aktuellsten Voci Trainer und speichere diesen unter dem Namen `voci_trainer_v04.py` und bearbeite nun diese Datei. \\ \\
Zeile 273: Zeile 274:
    * *Tipps:*    * *Tipps:*
      * Das Programm soll funktionieren, egal wie viele Files du zum einlesen hast. Wie kannst du eine unbekannte Anzahl an Objekten der Klasse Voci kreieren?      * Das Programm soll funktionieren, egal wie viele Files du zum einlesen hast. Wie kannst du eine unbekannte Anzahl an Objekten der Klasse Voci kreieren?
-     * Das Programm wird almählich lange und kompliziert. Definiere sinnvolle Funktionen, damit nicht aller Code im Hauptteil definiert ist.+     * Das Programm wird allmählich lange und kompliziert. Definiere sinnvolle Funktionen, damit nicht aller Code im Hauptteil definiert ist.
  
 ## Aufgabe 6 (voci_trainer_v04) ## Aufgabe 6 (voci_trainer_v04)
Zeile 283: Zeile 284:
 *Tipp:* Mache Kopien von deinen Voci-Listen, falls diese falsch oder leer überschrieben werden. *Tipp:* Mache Kopien von deinen Voci-Listen, falls diese falsch oder leer überschrieben werden.
  
-**Auftrag:** Als kleine Abschlussarbeit für dieses Semester sollt ihr ein Konsolen Game alleine oder in 2er Gruppen programmieren. Überlege dir auf nächste Woche (a) mit wem du arbeiten möchtest (oder alleine) und (b) was für ein Game es sein soll.+## Vorbereitung Console Game 
 + 
 +**Auftrag:** Als kleine Abschlussarbeit für dieses Semester (nach dem Voci-Programm) sollt ihr ein Konsolen Game alleine oder in 2er Gruppen programmieren. Überlege dir auf nächste Woche (a) mit wem du arbeiten möchtest (oder alleine) und (b) was für ein Game es sein soll.
  
 Die Bedingungen an das Game sind: Die Bedingungen an das Game sind:
  
    * Spielt in Konsole.    * Spielt in Konsole.
-   * Ihr dürft ein bereits bekanntes Spiel implementieren. Ihr könnt aber auch ein eigenes erfinden oder ein bestehende abändern/erweitern.+   * Ihr dürft ein bereits bekanntes Spiel implementieren. Ihr könnt aber auch ein eigenes erfinden oder ein bestehendes abändern/erweitern.
    * Gibt nach erfolgreichem Spielen einen Score zurück: absolviertes Level und Anzahl Punkte (z.B. gesammelte Punkte, Spieldauer in Sekunden, Anzahl Versuche, ...)    * Gibt nach erfolgreichem Spielen einen Score zurück: absolviertes Level und Anzahl Punkte (z.B. gesammelte Punkte, Spieldauer in Sekunden, Anzahl Versuche, ...)
    * Es ist auch möglich (und sogar wünschenswert), verschiedene Levels zu haben. Das Ziel wäre dann, ein möglichst hohes Level mit einem möglichst guten Score zu erzielen.    * Es ist auch möglich (und sogar wünschenswert), verschiedene Levels zu haben. Das Ziel wäre dann, ein möglichst hohes Level mit einem möglichst guten Score zu erzielen.
Zeile 361: Zeile 364:
 Ein wichtiges Konzept der OOP ist die **Vererbung**. Ein wichtiges Konzept der OOP ist die **Vererbung**.
  
-Machen wir ein Beispiel: In unserem Code haben wir eine Klasse //Voci//. Für jeder Datenfile, welches eine Wörtliliste enthält, erstellen wir ein //Voci//-Objekt. Nachdem wir die Wörtli gelern haben, wollen wir den Inhalt des //Voci//-Objekts zurück in die Datei schreiben. Es macht also Sinn, wenn die //Voci//-Klasse zwei Methoden //read\_file// und //save\_file// hat. Die Klasse könnte dann so aussehen:+Machen wir ein Beispiel: In unserem Code haben wir eine Klasse //Voci//. Für jedes Datenfile, welches eine Wörtliliste enthält, erstellen wir ein //Voci//-Objekt. Nachdem wir die Wörtli gelernt haben, wollen wir den Inhalt des //Voci//-Objekts zurück in die Datei schreiben. Es macht also Sinn, wenn die //Voci//-Klasse zwei Methoden //read\_file// und //save\_file// hat. Die Klasse könnte dann so aussehen:
  
 <code python> <code python>
Zeile 429: Zeile 432:
 Schreibe deinen Code möglichst objektorientiert um. Schreibe deinen Code möglichst objektorientiert um.
  
-//Tipp:// Kopiere deinen bestehenden Code nur in kleinen Päckchen in die neue Game-Struktur. Stelle immer sicher, dass der Code keine Fehler beinhaltet, bevor du dich um weiteren Code kümmerst.+//Tipp:// Kopiere deinen bestehenden Code nur in kleinen Päckchen in die neue Struktur. Stelle immer sicher, dass der Code keine Fehler beinhaltet, bevor du dich um weiteren Code kümmerst.
  
 ## Aufgabe 8 ## Aufgabe 8
  • talit/tutorial_oop.1599050084.txt.gz
  • Zuletzt geändert: 2020-09-02 12:34
  • von sps