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?
- Script-Sprache
- Simplizität, Lesbarkeit, Orthogonalität
- Schnelle Programmentwicklung
- besonders geeignet für Prototypentwicklung
- interpretiert
- dynamische Typ-Kontrolle
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: √, ∤, |, ≥, ≤, ∑, ⊕, ≠, , ○, ⚡, Σ, π, ✓, ∞, ρ
≡, ∈, ∉, ∀, ∃, ∅, ⋂, ⋃, ∪, ⊂, ⊃, ⊆, ⊇, ⋀, ⋁, ¬, ≈
⇒, ⇔, ⟼, ↤, ☇, →, ↔, ↓, /,\
Ā, Ē, Ū, Ō, Ω, ɸ, ω, τ, ℕ, ℤ, α, β, γ, δ, ε, ⌈,⌉, ⌊,⌋