Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| talit:tutorial_oop3 [2026-05-01 11:31] – [Score berechnen] hof | talit: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: | ||
| + | * Instanz vs. Klasse | ||
| + | * Methode? | ||
| + | * Warum das ganze? | ||
| + | * Abhilfe: weniger ist mehr | ||
| + | * Nur zwei Klassen: `WordPair`, `VocabularyUnit` | ||
| + | * Stats in WordPair integrieren | ||
| + | * Kerninhalte: | ||
| + | * LearningStrategy, | ||
| + | ++++ | ||
| + | </ | ||
| 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(" | for animal in [Animal(" | ||
| print(animal)</ | print(animal)</ | ||
| - | |||
| Zeile 187: | Zeile 200: | ||
| Wir möchten aufzeichnen, | Wir möchten aufzeichnen, | ||
| - | 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 |
| Zudem sollte `Stats` auch noch eine sinnvolle `__str__` Methode haben. | Zudem sollte `Stats` auch noch eine sinnvolle `__str__` Methode haben. | ||
| Zeile 205: | Zeile 218: | ||
| &= 0.5 \cdot (test_0 + 0.5 \cdot (test_1 + 0.5 \cdot (test_2 + \ldots))) \\ | &= 0.5 \cdot (test_0 + 0.5 \cdot (test_1 + 0.5 \cdot (test_2 + \ldots))) \\ | ||
| &= \frac{test_0}{2} + \frac{test_1}{4} + \frac{test_2}{8} + \frac{test_3}{16} + \ldots \end{aligned}$$ | &= \frac{test_0}{2} + \frac{test_1}{4} + \frac{test_2}{8} + \frac{test_3}{16} + \ldots \end{aligned}$$ | ||
| + | | ||
| + | |||
| + | ##### Wilson' | ||
| + | |||
| + | Unser _Score_ ist mit dem Zerfall genau genommen keine Erfolgsquote mehr. Was wir eigentlich möchten: Berechnen, wie gross die Wahrscheinlichkeit ist, dass wir ein Wortpaar falsch beantworten. Genau können wir sie nicht wissen, aber wir können die Untergrenze des wahrscheinlichen Intervalls aufgrund der bisherigen Antworten abschätzen. [[wpde> | ||
| + | |||