Hier sind die Folien als .pdf-Datei, geordnet nach Vorlesungsblock.
Die Folien liegen zudem im LZI als Kopiervorlage aus. Die aktuellsten
Folien sind im OpenUSS
zu finden. Unterhalb der Folien ist die entsprechende Literatur angegeben
|
Woche
|
Inhalte
|
Literatur
|
|
29.10.2001-02.11.2001
|
Über
diese Veranstaltung
Themen der Veranstaltung
Organisatorisches
Überblick über die Informatik
Was ist Informatik
Einordnung der Informatik
Einsatz von Informatikmethoden
Berufsfelder der Informatik
Geschichte der Informatik
Von Hardware zu Anwendungen: Grundbegriffe
Rechnerkomponenten
Betriebssysteme
Middleware
Datenbanken
Compiler
Anwendungssoftware
Vom Problem zur Lösung
Ziele der Programmierung
Algorithmen
Beispiel-Algorithmen
Erkenntnisse und Fragen
Definition
Eigenschaften
Aufgabenstellung
Stolpersteine
Programmiersprachen und Programmierung
Programmierparadigmen
Definition von Programmiersprachen
Maschinensprachen
Höhere Programmiersprachen
Compiler
Programmiersprachen versus Programmierung lernen
|
Allgemeine Literatur zur Veranstaltung:
Balzert, Helmut: Lehrbuch
Grundlagen der Informatik
Spektrum Akademischer Verlag, Heidelberg 1999
DM 159,99
ISBN 3827403588
Gumm, H. Peter und Sommer, Manfred:
Einführung
in die Informatik
Oldenbourg Verlag
ca. DM 80,- (neue Auflage im Oktober 2001)
|
|
05.11.2001-09.11.2001
|
Eine spielerische Einführung
in die objektorientierte Programmierung mit Karel J. Robot
Karels Welt und primitive Instruktionen
Einfache Programme
Roboterbeschreibungen
Vollständiges Programm
Programmausführung
Die Form von Roboterprogrammen
Fehlerterminierungen
Verschiedene Kategorien von Programmfehlern
Bugs und Debugging
Eine Aufgabe für zwei Roboter
Erweiterung der Roboter-Programmiersprache
Eine natürlichere Sprache
Mechanismen für die Definition neuartiger Roboter
Definition neuer Methoden
Bedeutung und Korrektheit neuer Methoden
Neue Methoden in einem Programm
Modifikation geerbter Methoden
Werkzeuge für den Entwurf und die Implementierung von Roboterprogrammen:
Schrittweise Verfeinerung
Vorteile der Definition neuer Instruktionen
Schreiben von verständlichen Programmen
Polymorphie
Interaktion in Roboter-Teams
Ähnliche Aufgaben
Choreographen
Objektorientierter Entwurf
Anwendung von Polymorphie und Methodenparametern |
KarelJ-Dokumentation
Karel-Simulator
|
| 12.11.2001-16.11.2001 |
Konditionale Ausführung
Die if-Anweisung
Definition neuer Prädikate
Korrektheit von if-Anweisungen
if und
else
Verschachtelte ifs
Komplexere Tests
Wann und wie if
benutzen?
Vereinfachung von if
Attribute und Parameter
if und Polymorphie
|
KarelJ-Dokumentation
Karel-Simulator
|
| 19.11.2001-23.11.2001 |
Wiederholung von Instruktionen
loop-Instruktion
while-Instruktion
while und if
Überlegungen über Schleifen
Wann und wie Schleifen benutzen?
Fortgeschrittene Techniken für Roboter
Einführung in die Rekursion
Endrekursion und Schleifen
Wir werden formal
Suchen
Und nun etwas Arithmetik
Nochmal Polymorphie
|
KarelJ-Dokumentation
Karel-Simulator
|
| 26.11.2001-30.11.2001 |
Von Robotern zu Objekten
Zwischenbilanz
Objektorientierte Programmierung
Reale- und Softwareobjekte
Daten, Operationen auf Objekten
UML-Notation
Schnittstellen
Das Geheimnisprinzip
Klassen und Typen
Standardtypen in Java
|
Gumm oder Balzert, siehe oben.
|
| 3.12.2001-8.12.2001 |
Java
Geschichte
Übersetzung und Ausführung von Java-Programmen
Applikationen und Applets
Pakete und Übersetzungseinheiten
Zugriffsrechte und Sichtbarkeit
|
|
| 10.12.2001-15.12.2001 |
"Gedächtnis" von Objekten
Variablen und Konstanten
Zuweisung und Ausdrücke
Basisausdrücke
Operatoren, Typumwandlungen, etc.
Zusammengesetzte Ausdrücke
|
|
| 17.12.2001-20.12.2001 |
Fünf Wege, über die ein Objekt Zugriff auf Daten bekommt
Attribute
Lokale Variablen
Rückgabewerte von Operationsaufrufen
Neu erzeugte Objekte
Parameter der Operationen
Sichtbarkeitsbereiche und -dauer von lokalen Variablen und Attributen
Klassenattribute und -operationen
Statische Initalsierungsblöcke
|
|
| 7.1.2002-11.1.2002 |
Objekterzeugung: Initalisierung mit Konstruktoren
Wrapperklassen
Schnittstellen
Die Klasse "Object"
|
|
| 14.1.2002-18.1.2002 |
Ausnahmebehandlung in Java
Die Rolle der Ausnahmebehandlung
Klassifikation von Ausnahmen
Warum eigenständige Ausnahmebehandlung in Java?
Vorteile einer eigenständigen Ausnahmebehandlung
Gruppierung von Ausnahmetypen
try,
catch und
finally
Ablauf einer Ausnahmebehandlung
|
Java 2 (1.3) API Specification
|
| 22.1.2002-25.1.2002 |
Ein- und Ausgabe in Java
Warum Ein-/Ausgabe in Java?
Ströme und ihre Oberklassen
Zeichenströme und Byteströme
Datenströme und Piped IO
Filter, Puffer, und Pushback
Serialisierung
Freier Zugriff
|
Java 2 (1.3) API Specification
|
| 4.2.2002-8.2.2002 |
Qualitätssicherung: Testen
Das Test-Dilemma
Wert und Kosten des Testens
Testmethoden
Testabdeckung
Kontrollfluß und Ü,berdeckung
Die Praxis: JUnit
|
JUnit.org
|
| 11.2.2002-15.2.2002 |
Algorithmenkomplexität
Nicht funktionale Algorithmeneigenschaften
Messen dieser Eigenschaften
O-Notation
Definition und Methodik
Analyse von iterativen und rekursiven Algorithmen
|
|
| 18.2.2002-22.2.2002 |
Datenstrukturen
Warum spezielle Datentypen?
Programmierung und Benutzung einiger Datentypen
Verzweigte Datenstrukturen
Effizienzbetrachtungen
Polymorphie
Einsatz spezieller Knotentypen
|
|