Inhaltsverzeichnis
Organisatorisches 1999/2000
Werdegang
was ist Theorie?
was ist Abstraktion?
was ist eine Definition?
Fachsprache und Jargon
wichtige Programmiersprachen
Bemerkungen zur Notation
weshalb Modula 2 als Beispielsprache?
frei zugängliche Module-Systeme
Objekte und Klassen
Vererbung, Polymorphismus
erstes Programm in MODULA 2
Mengen
Vereinigung, Durchschnitt, Teilmenge
Kartesisches Produkt
Grundtypen
Der ASCII-Code
Griechisches Alphabet
Bezeichner
Skalare Typen
Wie löst man Probleme?
Modularisierung
Rekursion
Beispiel: Faktorisierung
Typtransfer-Funktionen
Beispiel: HEX-Ausgabe
Funktionen
Funktionsprozeduren
Lambda-Notation
höhere Funktionen
Imperative Programmierung
Kontrollstrukturen
Struktogramme
Fallunterscheidung
Schleifenstrukturen
Zählschleife: allgemeine Schleife
Prozeduraufruf
Prozedurvereinbarung
Funktionsvereinbarung
Speicherkonzepte
Blöcke
Bindung
Variablen: Bedeutung
Variablen: Lebensdauer
Alias-Phänomene
Strukturierte Typen
Reihungstypen: Arrays
Verbundtypen: Records
Sequenzen; Formale Sprachen
Grammatiken
Chomsky-Klassen
endliche Automaten
Automaten und reguläre Sprachen
Automaten und Syntaxdiagramme
Syntaxdiagramme
Formularmaschine
Kellerautomat
Notation von Grammatiken
reguläre Ausdrücke
BNF und EBNF
Attributierte Grammatik
Algorithmen
Berechenbarkeit
Turing-Maschine
Entscheidbarkeit
Aufbau eines
Programm-moduls
Deklarationen
Mengentypen
Variablenvereinbarung
Pointertypen, Pointervariablen
Aufwand und Effizienz
ggT(a,b): Euklidischer Algorithmus
Beispiel: Türme von Hanoi
Fibonacci-Zahlen
Abstrakte Datentypen
Lineare Listen
Keller, Stapel: stack
Schlange: queue
Ringlisten
Deque: Doppelschlange
doppelt verkettete Listen
Bäume und Wälder
Durchwanderung
Prozedurtypen
Binärbäume
Durchwanderung von Binärbäumen
Vereinigungstypen; Varianten
Rekursive Listen
Suchbäume
Suchverfahren, allgemein
rekursive Suchverfahren
iterative Fassung
binäre Suche
Suchen in einer Matrix
Rekursion und Iteration
Rechtsrekursive Probleme
Kopie einer Liste
allgemeine Graphen
Binäre Relationen
Äquivalenzrelationen und Ordnungsrelationen
Relationenalgebra
Transitive Hülle
Durchwanderung und Markierung von Graphen
Tiefensuche: Labyrinth
Tiefensuche: Gerüst; Speicherbereinigung
Breitensuche: Entflechtung
Vollständige Binärbäume
Äquivalenzrelationen: FIND/UNION
Effizienzverbesserung: Dynamische Programmierung
Effizienzverbesserung: Memoisierung
Ergänzung: Fibonacci-Zahlenpaare
Einleitung
|
Ablauf 1999/2000
|
Index
|
Vorlesung
Klaus Lagally
, 22. Februar 2000, 19:48