Algorithmen und Programmierung II(Objektorientierte Programmierung)
Dozentin: Margarita Esponda
Abgabe d. Übungsblätter: Mittwochs 12:00 Uhr

Inhalt:
1. Konzepte imperativer Programmierung (Python)
    - Syntax und operationelle Semantik imperativer Programmiersprachen
    - Python als Beispiel
2. Formale Verfahren zur Spezifikation und Verifikation imerativer Programme
    -Bedienung im Zustandsraum
3.Konzepte objektorientierter Programmierung (Java)
    - Primitive und Zusammengesetzte Datentypen
    - Methoden(Prozeduren und *
4. Programmiermethodik
    - Umwandlung von Rekursion in Iteration
    - Teile und herrsche
    - Rücksetzverfahren(Backtracking
    - Dynamische Programmierung
5. Analyse von Laufzeit und Speicherbedarf
    - O-Notation
    - Analyse von Such- und Sortieralgorithmen
    - Algorithmen und Datenstrukturen
6. Berechenbarkeit
    -Universelle Registriermachinen

Lernziele:
    Programmieren im kleinen
        - Algorithmen entwerfen und implementieren
    Grundkonzepte von imperativen Programmiersprachen im allgemeinen Beherrschen
        - Datentypen, Anweisungen, Kontrollstrukturen
        - Unterprogramme, Funktionen, Parameterübergabe und Zeigertypen
    Korrektheit von Programmen analysieren
        - Tests entwerfen und ausführen
    Konzepte Objektorientierter Programmierung beherrschen
       Klassen, Objekte, Kapselung, Vererbung

Theoretische Grundlagen kennen

Was ist Python?
10.04.2

in Python gibt es nur Objekte

Java                              Speicher
int a =3,                        a |    3    |

Python                           Speicher
a=3          a| ... | ----------->|     3    |

t=(1,2,0,3)
    0 1 2 3
print(t[2]) -> 0

a=[0,2,3,4]   a|         |  ---->  |0|
                                 ---->  |2|
                                 ---->  |3|
                                 ---->  |4|
a[2] -> 3

sum + = i   Gleiche Semantik wie:
sum =sum + i

  3 => (0011)
~3 => (1100)
~3 => -4

5 << 2 =>20
3 & 3 => 3
3 | 3  => 3

Sonderzeichen: √, ∤, |, ≥, ≤, ∑, ⊕, ≠, , ○, ⚡, Σ, π, ✓, ∞, ρ
≡, ∈, ∉, ∀, ∃, ∅, ⋂, ⋃, ∪, ⊂, ⊃, ⊆, ⊇, ⋀, ⋁, ¬, ≈
⇒, ⇔, ⟼, ↤, ☇, →, ↔, ↓, /,\
Ā, Ē, Ū, Ō, Ω,  ɸ, ω, τ, ℕ, ℤ, α, β, γ, δ, ε, ⌈,⌉, ⌊,⌋