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_oop3 [2026-05-11 13:31] – [Score berechnen] hoftalit:tutorial_oop3 [2026-06-01 15:25] (aktuell) hof
Zeile 1: Zeile 1:
 # Objekt-orientierte Programmierung # Objekt-orientierte Programmierung
 +
 +<nodisp 2>
 +++++ Notizen für 2027|
 +  * Feedback sca / Beobachtung: es bleibt wenig OO hängen:
 +    * Instanz vs. Klasse
 +    * Methode?
 +    * Warum das ganze?
 +  * Abhilfe: weniger ist mehr
 +    * Nur zwei Klassen: `WordPair`, `VocabularyUnit`
 +    * Stats in WordPair integrieren
 +    * Kerninhalte: WordPair, Unit, Learning function (ohne OO), Serialisierung
 +    * LearningStrategy, StopCriterion als Additum für Highflyers behalten.
 +++++
 +</nodisp>
  
 Code mit vielen Eigenschaften kann schnell unübersichtlich werden - sogar selbst geschriebener Code altert schlecht und ist nach wenigen Wochen unlesbar. Was macht der folgende Code? Code mit vielen Eigenschaften kann schnell unübersichtlich werden - sogar selbst geschriebener Code altert schlecht und ist nach wenigen Wochen unlesbar. Was macht der folgende Code?
Zeile 180: Zeile 194:
 for animal in [Animal("Unknown"), Cat("Tom"), Dog("Spike")]: for animal in [Animal("Unknown"), Cat("Tom"), Dog("Spike")]:
     print(animal)</bottom-editor>     print(animal)</bottom-editor>
- 
  
  
Zeile 187: Zeile 200:
 Wir möchten aufzeichnen, wie oft unsere Wörter richtig bzw. falsch übersetzt werden. Dafür benötigen wir eine `Stats`-Klasse. Neben den Attributen `correct` bzw. `incorrect` möchten wir ein Attribut `score` haben, das einen Wert zwischen `[0..1]` bereitstellt, wobei `0` bedeutet, dass das Wort noch komplett unbekannt ist, und `1`, dass das Wort perfekt gelernt wurde. Wir möchten aufzeichnen, wie oft unsere Wörter richtig bzw. falsch übersetzt werden. Dafür benötigen wir eine `Stats`-Klasse. Neben den Attributen `correct` bzw. `incorrect` möchten wir ein Attribut `score` haben, das einen Wert zwischen `[0..1]` bereitstellt, wobei `0` bedeutet, dass das Wort noch komplett unbekannt ist, und `1`, dass das Wort perfekt gelernt wurde.
  
-Die Klasse `Stats` soll eine Methode `record(correct)` erhalten: Jedes Mal, wenn ein Wortpaar getestet wird, findet der Learner heraus, ob das Wort richtig oder falsch ist. Dieses Verdikt wird mit `record()` an die Statistik weitergeleitet und dort aufgezeichnet.+Die Klasse `Stats` soll eine Methode `record(outcome)` erhalten: Jedes Mal, wenn ein Wortpaar getestet wird, findet der Learner heraus, ob das Wort richtig oder falsch ist. Dieses Verdikt oder _Outcome_ (`True` oder `False`) wird mit `record()` an die Statistik weitergeleitet und dort aufgezeichnet.
  
 Zudem sollte `Stats` auch noch eine sinnvolle `__str__` Methode haben. Zudem sollte `Stats` auch noch eine sinnvolle `__str__` Methode haben.
  • talit/tutorial_oop3.1778506281.txt.gz
  • Zuletzt geändert: 2026-05-11 13:31
  • von hof