Vorlesungskommentar
des
Fachbereichs Informatik
der
Universität Dortmund
für das
Sommersemester 1996
Inhaltsangabe 2 / 3
Vorwort 4
Vorlesungen im Grundstudium
Rechnerstrukuren 5
Grundbegriffe der theoretischen Informatik 6
Programmierkurse
Programmierkurs (Einführung in das funktionale Programmieren) 7
Programmierkurs Prolog 8
Objektorientierte GUI-Programmierung mit OSF/Motif und BETA 9-10
Objekt-orientierte Software-Entwicklung mit Objectory 11
Praktika
Softwarepraktikum in Beta (im SS) 12
Softwarepraktikum in Beta (nach dem SS) 12
Hardwarepraktikum für Ingenieur-Informatiker 13-15
Hardwarepraktikum für Informatiker 13-15
Vorlesungen im Hauptstudium
Simulation 16
Effiziente Algorithmen 17
Theorie des Logikentwurfs 18
Rechnerarchitektur 19-20
Künstliche Intelligenz 21
Konzepte funktional-logischer Programmiersprachen 22
Digitale Bildverarbeitung 23
Kommunikationskomplexität 24
Softwaretechnologie II 25
Information Retrieval 26
Korrektheit und Zuverlässigkeit verteilter Systeme 27
Mikrosystementwurf 28-29
Numerische Algorithmen für parallele Rechnerarchikturen 30
Ausgewählte Kapitel aus der Kryptographie 31
Grundlagen des numerischen und symbolischen Rechnens in Mathematika 32
Die Anwendbarkeit formaler Modelle in verteilten Systemen 33
Softwaretestmethoden (für große und nebenläufige Systeme) 34
Zur Komplexität boolescher Funktionen 35
Einführung in die Temporallogik 36
Seminare
Informationsverarbeitung im menschlichen Immunsystem 37
Intelligente hybride Systeme 38
Aktuelle Themen der graphischen Datenverarbeitung 39
Technische Informatik 40
Scheduling in parallelen Architekturen 41
Digitale Bibliotheken 42
Folgen der Informationstechnik 43
Komplexe Datenschutzprobleme 44
Intelligente Systeme (Teil 5 u. 6) 45
Anwendungen der unscharfen Logik 46
Krankenhausinformationssysteme 47
Autonome mobile Roboter - Theoretische Grundlagen und praktische Experimente - 48
Wissensentdeckung 49
Neue algorithmische Ansätze zur Behandlung diskreter Optimierungsprobleme 50
Objekt-orientierte Software Komposition 51
Anwendungen von intelligenten Systemen in der Medizin (Teil 3) 52
Informationsteil
Vorlesungszyklen 53
Hinweise zum Anwendungsfach 54
Beispielhafter Studienverlauf 55-60
Sprechstunden 61-62
Prüfungsgebiete der Hochschullehrer 63
Vorwort _________________________________________________________________________
Als Lehrveranstaltungen werden Vorlesungen, Übungen, Seminare, Kurse, Praktika und Projektgruppen angeboten. Die Veranstaltungsnummern sind folgendermaßen zu interpretieren:
040001-040050: Veranstaltungen im Grundstudium
041001-041014: Theoretische Stammvorlesungen
041051-041069: Praktische Stammvorlesungen
041071-041089: Wahlpflichtveranstaltungen für die Angewandte Informatik
042001-043999: Spezialvorlesungen
044001-045999: Seminare
046001-046999: Projektgruppen (1)
047001-047999: Kurse (1)
048001-048049: Veranstaltungen für Studierende anderer Fachbereiche (1)
048050-048070: Veranstaltungen für Lehramtskandidaten (1)
048071-048099: Sonstige Veranstaltungen (1)
049001-049999: Besondere Veranstaltungen (1)
Zeitliche, räumliche oder personelle Änderungen und Ergänzungen werden durch Aushang im GB V (Campus Süd), 2. OG bekanntgegeben. Dies betrifft insbesondere die mit "N.N." angekündigten Lehrveranstaltungen.
Wichtiger Hinweis (nicht nur für Studierende):
Um eine rechtzeitige Herausgabe dieses kommentierten Vorlesungsverzeichnisses zu ermöglichen, mußte bereits mit der Zusammenstellung der Kommentare und mit dem gesamten Layout zur Vereinheitlichung Anfang Januar d.J. begonnen werden. Aus diesem Grunde sind etwaige Änderungen im Hinblick auf den "Redaktionsschluß" nicht auszuschließen. Daher läßt es sich weiterhin nicht vermeiden, die Aushänge im GB V (Campus Süd) oder auch direkt bei den entsprechenden Lehrstühlen zu beachten!
Viele Vorbesprechungen der Seminare haben aus organisatorischen Gründen bereits am Ende des Wintersemesters stattgefunden. Es hat aber auch keinen Sinn, diesen Vorlesungskommentar eher zu veröffentlichen, da der Informationsgehalt dann natürlich nicht so groß wäre. Priorität hat, daß so ziemlich alles auf dem neuesten Stand ist. Wer also an einem Seminar aktiv teilnehmen möchte, sollte sich sehr früh durch die Aushänge an den Lehrstühlen erkundigen, wann die Vorbesprechungen etc. stattfinden.
Anmerkung der Redaktion
März 1996
Herausgeber: Fachbereich Informatik
Redaktion: Dekanat Informatik der UniDo
_______________________________
(1) Diese Lehrveranstaltungen sind nicht gesondert aufgeführt
Vorlesungen im Grundstudium ______________________________________________________________________
Rechnerstrukturen
040001 4 V Di, 12.15 - 13.45 Uhr HG III / HS 1 Banzhaf
Do, 14.15 - 16.00 Uhr HG III / HS 1
040002 2 Ü n.V. Beckmann/Eiss/ Knaup/Lind/ Kursawe
Inhalt:
Während die Vorlesung Programmierung die Nutzung eines Programmiersystems
in den Vordergrund stellte, kommt die Vorlesung Rechnerstrukturen 'von unten',
indem sie in die wesentlichen Grundlagen zur Realisierung von Rechnersystemen
einführen soll.
Den Kern dieser Vorlesung bilden die technische Darstellung von Information im
Rechner, Hardwarebausteine in heute gängiger Verwendung, sowie die
Architektur des Von-Neumann-Rechners mit ihrer Maschinensprache- (bzw.
Assembler-) Programmierung.
Die restlichen Kapitel der Vorlesung haben eher Überblickscharakter. Zwei
umreissen, wie die Hardware durch Systemsoftware ergänzt wird
(Betriebssysteme, Programmiersprachen und ihre Übersetzer). Zwei weitere
Kapitel bieten unter den Stichwörtern 'Parallelität' und 'Verteilung'
einen Ausblick auf bereits gängige Varianten der Von-Neumann
Architektur.
Der Stoff dieser Überblickskapitel wird dann im Hauptstudium durch jeweils
eigene Vorlesungen vertieft werden.
Hörer:
Kerninformatiker vor dem Vordiplom
Voraussetzung:
Vorlesung 'Programmierung'
Hinweis:
Es finden Übungen zur Vorlesung statt. Die Teilnahme an den
Übungen wird sehr empfohlen.
Literatur:
Die Vorlesung orientiert sich an dem gleichnamigen Skriptum (Autoren: K.
Echtle, H. Krumm, W. Banzhaf), das zu Beginn der Vorlesungszeit in der
Skriptenverkaufsstelle verfügbar sein sollte.Vorlesungen im Grundstudium
______________________________________________________________________
Grundbegriffe der theoretischen Informatik
040031 4 V Mo, 14.15 - 16.00 Uhr HG I / HS 6 Simon
Di, 10.15 - 12.00 Uhr HG I / HS 6
040032 2 Ü n.V. Sieling/Klasner/ Hühne
Inhalt:
Der zentrale Gegenstand der Vorlesung ist die Chomsky-Hierarchie der
Grammatiken und die entsprechende Automatenhierarchie. Grammatiken und
Automaten sind endliche Spezifikationen potentiell unendlicher Sprachen. Zum
Beispiel sind große Fragmente von Programmiersprachen durch sogenannte
deterministisch kontextfreie Grammatiken er zeugbar.
Je einfacher das Grammatik- oder Automatenmodell, desto einfacher sind auch die
dazugehörenden Algorithmen. Die Vorlesung bewegt sich die Hierarchie
aufwärts, d.h., sie beginnt mit der einfachsten Stufe der Hierarchie
(reguläre Grammatiken und endliche Automaten), diskutiert mittlere Stufen
(wie kontextfreie Grammatiken und Kellerautomaten) und endet bei der
komplexesten Stufe (Chomsky 0 Grammatiken und Turing Maschinen).
Mit Turing Maschinen wird eine Theorie der Berechenbarkeit aufgezogen.
Beispiele nicht entscheidbarer Probleme werden erarbeitet. Die Vorlesung
führt schließlich in die Komplexitätstheorie und die
deterministisch kontextfreien Sprachen ein. Die Komplexitätstheorie
diskutiert den Aufwand an Speicherplatz und Rechenzeit, der zur Lösung
grundsätzlich entscheidbarer Probleme notwendig ist. Wir gehen dabei auch
kurz auf die Theorie der NP-vollständigen Probleme ein. Die
deterministisch kontextfreien Sprachen werden wegen ihrer besonderen Bedeutung
für Programmiersprachen gewürdigt.
Weiterführende Veranstaltungen im Hauptstudium
Komplexitätstheorie, Programmiersprachen und ihre Übersetzer, Theorie
formaler Sprachen.
Literaturvorschläge:
Die Hauptquellen sind das Buch Theoretische Informatik von Ingo Wegener
(Teubner Verlag) und ein vom Dozenten erstelltes Vorlesungsskript. Weitere
Literaturhinweise erfolgen in der Vorlesung.Programmierkurse
_______________________________________________________________________
Programmierkurs (Einführung in das funktionale Programmieren)
040015 2 V Mo, 12.15 - 14.00 Uhr EF 50 / HS 1 Padawitz
040016 1 Ü n.V. Hallmann/Huwig
Beginn: 15. April 1996
Inhalt:
Im 1. Semester wurde ins Programmieren im allgemeinen und ins
objektorientierte Programmieren im besonderen eingeführt. In
Programmierung II wird der funktionale Programmierstil vorgestellt anhand der
Programmiersprache ML. Darüberhinaus werden funktionale mit
objektorientierten sowie logikorientierten Sprachkonzepten und
Programmiermethoden verglichen.
Hörer:
Student(inn)en der Kern- und Angewandten Informatik ab 2.
Semester
Literatur:
Grundlage der Vorlesung ist ein Skript, das zu Beginn der Lehrveranstaltung
erworben werden sollte. Als ergänzende Literatur wird mindestens eines der
folgenden Bücher empfohlen:
- L. C. Paulson, ML for the Working Programmer, Cambridge University Press 1991
(Exemplare in der Lehrbuchsammlung)
- C. Reade, Elements of Functional Programming, Addison-Wesley 1989
(Exemplare in der Lehrbuchsammlung)
- R. Bird, Ph. Wadler, Introduction to Functional Programming, Prentice-Hall
1988 (deutsch: Einführung in die funktionale Programmierung, Hanser
1992)
- R. Bosworth, A Practical Course in Functional Programming using Standard ML,
McGraw-Hill 1995
- J. D. Ullman, Elements of ML Programming, Prentice-Hall 1994
- C. Myers, C. Clack, E. Poon, Programming with Standard ML, Prentice-Hall
1993
- R. Stansifer, ML Primer, Prentice-Hall 1992
- A. Wikström, Functional Programming using Standard ML, Prentice-Hall
1987
- R. Sethi, Programming Languages: Concepts and Constructs, Addison-Wesley 1989
(Gegenüberstellung verschiedener Sprachstile; Exemplare in der
Lehrbuchsammlung)
Programmierkurse
_______________________________________________________________________
Programmierkurs Prolog
047097 Vorlesung zweiwöchiger Kompaktkurs Markhof/Rieger 18.3. - 29.3.96
9.00 - 12.00 Uhr HG I / HS 2
047098 Übung 13.00 - 17.00 Uhr HG I / HS 2 Markhof/Rieger
Inhalt und Ziele:
Dieser Programmierkurs soll Prinzipien einer nichtprozeduralen
Programmiersprache anhand der logischen Programmierung vermitteln. Dabei soll
die Möglichkeit im Vordergrund stehen, PROLOG durch umfangreiche
praktische Übungen als effizientes Werkzeug kennenzulernen.
Daneben werden Voraussetzugen sowohl für die Stammvorlesung
"Künstliche Intelligenz" als auch für Seminare und Projektgruppen in
diesem Bereich erworben. Schließlich wird ein kurzer Einblick in den
Bereich Constraint Logic Programming gegeben.
Der Kurs befaßt sich im ersten Teil mit den Grundbegriffen der logischen
Programmierung, wie Hornklausellogik, Resolution und Unifikation und liefert
damit Logikkenntnisse und Grundlagen für einen Vergleich mit anderen
Programmiersprachen.
Danach wird das Ausführungsmodell von PROLOG mit Backtracking, Rekursion,
expliziter Ablauf-, sowie Ein- und Ausgabekontrolle und Metaprädikate
besprochen. Zudem wird die Programmiertechnik anhand von Übungen
erläutert.
Praktische Programmierübungen am Rechner, vor allem aus dem Bereich
"Künstliche Intelligenz", bieten die Möglichkeit, zum einen den
Umgang mit der Programmiersprache PROLOG gut einzuüben und zum anderen,
deskriptive Konzepte kennenzulernen, wie sie bei modernen Programmiersprachen
verwendet werden.
Literatur:
Bratko, I. 1990. Prolog Programming for Artificial Intelligence. 2nd
Edition. Addison Wesley.
Sterling L. & Shapiro, E. 1986. The Art of Prolog. Advanced Programming
Techniques. MIT Press.Programmierkurse
_______________________________________________________________________
Objektorientierte GUI-Programmierung mit OSF/Motif und BETA
047105 1 V Mi, 12.15 - 13.00 Uhr HG I / HS 2 Rupflin
040016 1 Ü Mi, 13.00 - 13.45 Uhr HG I / HS 2 Rupflin
Beginn: 24.04.1996
Inhalt und Ziele:
Die Akzeptanz einer Applikation durch den Benutzer hängt entscheidend von
der Existenz und der Qualität der graphischen Benutzungsoberfläche
(GUI != Graphical User Interface) ab. Ziel des Kurses ist die Vermittlung von
Prinzipien, Methoden und Hintergründen der GUI-Programmierung sowie der
entsprechenden Programmiertechniken, wobei auch auf wichtige Aspekte der
objektorientierten Programmierung eingegangen wird. Konkret soll der Kurs die
Teilnehmer befähigen, Applikationen mit graphischen
Benutzungsoberflächen entsprechend dem 'state-of-the-art' unter X11 und
Unix mit OSF/Motif und BETA zu erstellen.
Deren Programmierung gilt jedoch als hochkomplex und arbeitsintensiv. Dies wird
z.B. dadurch illustriert, daß bei vielen Projekten eigens für die
GUI-Programmierung Spezialisten eingesetzt werden, und von Aufwänden
für die Erstellung der Benutzungsoberfläche von der Hälfte des
Gesamtaufwands oder sogar weit mehr berichtet wird.
Nicht nur um diesen Arbeitsaufwand in einem erträglichen Rahmen zu halten,
sondern vor allem wegen der klaren Struktur und != damit verbunden != besseren
Überschaubarkeit werden wir konsequent objektorientierte Techniken
einsetzen. Zwar war die objektorientierte Programmierung, die ursprünglich
von der Modellierung und Simulation ihren Ausgang nahm (Simula 1965/1967),
schon ganz zu Anfang Basis der GUI-Programmierung (Smalltalk 1972/1980). Doch
obwohl auch dem Design von Xt und Motif objektorientierte Konzepte zugrunde
liegen, wurden diese hierbei nur halbherzig umgesetzt. So ist die
Programmierschnittstelle von Xt/Motif nur rein prozedural, und viele
Motif-Widgets sind überparametrisiert, anstatt eine logisch konsistente
Klassenhierarchie zu bilden. Mit den objektorientierten Xt/Motif-Bibliotheken
des BETA-Systems ist es jedoch möglich, die original Motif-Widgets mit den
zugehörigen Xt-Funktionen über eine saubere und klare
objektorientierte Programmierschnittstelle, die diese Mängel weitgehend
ausgleicht, ohne Verlust an Funktionalität in eine Applikation
einzubinden. Dabei werden die logische Struktur und selbst Bezeichnernamen so
weit wie möglich beibehalten, so daß eine Übertragung von
Dokumentation und Programmen von BETA nach C und umgekehrt ohne
größere Probleme möglich ist.
Daher werden die Prinzipien und Techniken der GUI-Programmierung mit Xt/Motif
schwerpunktmäßig anhand der BETA-Umgebung vorgestellt und in den
praktischen Übungen vertieft. Dies gibt zudem Gelegenheit, praktische
Erfahrungen mit der Anwendung einer umfangreicheren objektorientierten
Programmierschnittstelle zu gewinnen. Trotz aller bekannter Mängel wird
wegen ihrer Praxisrelevanz auch die originäre C-Schnittstelle so weit
eingeführt, daß die Teilnehmer sowohl C-basierte Literatur verstehen
als auch später bei Bedarf das im Kurs gelernte auf die
Motif-Programmierung mit C übertragen können.
Organisatorisches:
Dieser Kurs ist eine Wahlpflichtveranstaltung ab dem 3. bzw. 4. Semester
für Kern- und Ingenieurinformatiker. Voraussetzung für die Teilnahme
ist die Beherrschung wenigstens einer Programmiersprache, erlangt z.B. durch
die erfolgreiche Teilnahme am SoPra oder am Programmierkurs (Programmierung
II), spezifische BETA-Kenntnisse sind nicht erforderlich.
Sofern die Voraussetzung (Beherrschung einer Programmiersprache) erfüllt
ist und die Kapazitäten es erlauben, steht der Kurs auch Zweitsemestern
offen. Es sei jedoch ausdrücklich darauf hingewiesen, daß der Kurs
nicht als Ergänzung bzw. Vertiefung der Grundvorlesung
"Programmierung/Programmierkurs" oder als Vorbereitung auf die Prüfung in
Informatik I konzipiert ist.
Die praktischen Übungen werden auf SUN-Workstations unter der grafischen
Benutzeroberfläche X11/Motif durchgeführt. Um eine möglichst
reibungslose Durchführung zu ermöglichen, wird um rechtzeitige
Voranmeldung (GB V, Raum 311, täglich 9 != 12 Uhr) gebeten. Bitte beachten
Sie auch entsprechende Aushänge.
Literatur:
OSF/Motif Programmer's Reference. Open Software Foundation. Prentice Hall,
1993, ISBN 0-13-43115-1.
Programmieren mit OSF/Motif. Brede, Jossutis, Lemberg, L^rke. Addison-Wesley,
1991, ISBN 3-89319-211-5.
Object-Oriented Programming in the BETA Language. Ole Lehrmann Madsen, Birger
Moller-Pedersen, Kristen Nygaard. Addison-Wesley, 1993, ISBN 0-201-62430-3, 350
S.
(weitere Literaturhinweise s. Aushang)
Manuals:
werden zum Selbstkostenpreis erhältlich sein.
Programmierkurs
_______________________________________________________________________
Objekt-orientierte Software-Entwicklung mit Objectory
048079 2 V Kurs während der Vorlesungszeit Doberkat/ Hasselbring
2 Ü Doberkat/ Hasselbring
Inhalt:
Die Entwicklung komplexer Softwaresysteme ist eine schwierige Aufgabe.
Insbesondere die Erfüllung der tatsächlichen Anforderungen der
Anwender stellt sich als großes Problem dar. Mit der objekt-orientierten
Entwicklungsmethodik OOSE von Ivar Jacobson und dem dazugehörigen Werkzeug
Objectory soll diese Komplexität stufenweise in aufeinanderfolgenden
Modellen bewältigt werden. Objectory arbeitet mit fünf Modellen,
wobei der Schwerpunkt in der Anforderungsanalyse liegt:
- Das Anforderungsmodell deckt die funktionellen Anforderungen ab.
- Das Analysemodell gibt dem System eine robuste und änderbare
Objektstruktur.
- Das Entwurfsmodell paßt die Objektstruktur an die
Implementationsumgebung an.
- Das Implementationsmodell dient zur Implementation des Systems.
- Das Testmodell dient zum Testen des Systems.
In diesem Kurs sollen die Teilnehmer in kleinen Gruppen anhand geeigneter
Probleme alle Entwicklungsphasen mithilfe des Werkzeugs Objectory am Rechner
bearbeiten. Die Implementation soll in Eiffel erfolgen. Nach Absprache
wären hier auch andere (objektorientierte) Programmiersprachen
möglich. Objectory ist eine kommerzielle Entwicklungsumgebung, die
insbesondere in der Telekommunikationsindustrie eingesetzt wird.
Vorlesungstermin:
Bitte die Aushänge am Lehrstuhl 10 beachten.
Voraussetzung:
Es wäre sinnvoll, die Stammvorlesung Softwaretechnologie gehört zu
haben.
Literatur:
I. Jacobson, M. Christerson, P. Jonsson, and G. Övergaard:
Object-Oriented
Software Engineering -- A Use Case Driven Approach, Addison-Wesley, 1992.
B. Meyer: Object-oriented Software Construction, Prentice Hall, 1988.Praktika
_______________________________________________________________________
Softwarepraktikum in Beta (1 PV, 4 PÜ)
040008 1 V Mi, 8.15 - 10.00 Uhr HG I / HS 6 Schmedding
040009 4 Ü n.V. Schmedding
Beginn: 17. April 1996
Softwarepraktikum in Beta (nach dem Sommersemester)
040006 1 V 5.8.96 - 13.9.96 Schmedding / Biedassek
040007 4 Ü n.V. Schmedding/ Biedassek Das Software-Praktikum
ist eine Pflichtveranstaltung für Studierende, die im Haupt- oder
Nebenfach Informatik studieren.
Voraussetzung für die Teilnahme ist für Hauptfachstudierende der
Kern-Informatik die bestandene Informatik I-Klausur, Nebenfachstudierende
müssen vor einer Teilnahme das Vordiplom erworden haben. Studierenden der
Ingenieur-Informatik wird dringend empfohlen, vor dem Praktikum die Informatik
I-Prüfung abzulegen.
Das Praktikum wird i.a. dreimal im Jahr angeboten und zwar sowohl während
der Vorlesungszeit im Sommersemester (SS) als auch in der vorlesungsfreien Zeit
vor und nach dem Sommersemester in Form einer sechswöchigen
Kompaktveranstaltung. Die Anmeldefristen sind im November für das
Praktikum vor dem SS, im Februar für das Praktikum im SS und im Mai
für das Praktikum nach dem SS.
Das Ziel des Software-Praktikums ist es, Grundkenntnisse der systematischen
Entwicklung von größeren Software-Produkten zu vermitteln und diese
Kenntnisse in einer Gruppe von 8 Studierenden unter Anleitung eines Tutors
praktisch anzuwenden. In den Übungen werden Projekthandbücher
erstellt, die eine Zusammenfassung aller in einem Software-Projekt erarbeiteten
Dokumente darstellen.
Die Entwicklung der Software erfolgt gemäß eines speziellen
Phasenmodells. In den Vorlesungen werden Software-Entwicklungsmethoden
eingeführt, die in den verschiedenen Phasen eingesetzt werden. Zur
Unterstützung dieser Methoden steht die Software-Entwicklungsumgebung
Ophelia zur Verfügung, in der die in den verschiedenen Entwicklungsphasen
eingesetzten Werkzeuge integriert sind.
Bei der Entwicklung der Software wird das objekt-orientierte
Entwicklungsprinzip verfolgt. In der Analyse- und Designphase wird eine
objekt-orientierte Methode eingesetzt, die von entsprechenden Werkzeugen
unterstützt wird. Die Implementierung erfolgt in der Programmiersprache
Beta. Abschließend wird die realisierte Problemlösung getestet.
Da Ziel der Veranstaltung die Vermittlung von Software-Entwicklungsmethoden
ist, werden für die Teilnahme neben den oben aufgeführten formalen
Bedingungen gute Kenntnisse in der jeweils eingesetzten Programmiersprache
vorausgesetzt.
Aktuelle Informationen (Anmeldefristen, Teilnehmerlisten, ect.) werden immer am
schwarzen Brett neben Raum 307c in GB IV ausgehängt.
Literaturauswahl:
Kim Walden, Jean-Marc Nerson: Seamless Object-oriented Software-Architecture,
Prentice Hall, 1995, ISBN 0-13-031303-3
Ole Lehmann Madsen, Birger Moller-Petersen, Kristen Nygaard: Object-Oriented
Programming in the BETA Programming Language, Addison-Wesley, 1993, ISBN
0-201-62430-3Praktika
_______________________________________________________________________
Hardwarepraktikum für Ingenieur-Informatiker
(Pflichtveranstaltung 4. Semester)
048076 4P n.V. OH 16, UG Sjamken
Hardwarepraktikum
(Wahlpflichtveranstaltung ab 4. Semester)
048075 4 P n.V. OH 16, UG Sjamken
Die Termine der HAPRA-Laborsitzungen werden in einer Vorbesprechung mit
Rücksicht auf die Wünsche der Studierenden vereinbart. Der Termin der
Vorbesprechung wird in Aushängen bekanntgegeben.
Hardwarepraktikum und Digitalelektronisches Praktikum sind Pflicht- bzw
Wahlpflichtveranstaltungen für Studierende des Studienganges
Kerninformatik im zweiten Semester und für Studierende des Studienganges
Angewandte Informatik (Ingenieur-Informatik) im vierten Semester. Laut
Beschlußlage der Kommission für Lehre und Studium sind die
Regelungen der Teilnahmebedingungen für diese Veranstaltung z.Z. noch
etwas verwickelt:
Teilnahmebedingungen
Studiengang "Angewandte Informatik mit Studienschwerpunkt E-Technik":
Für Studierende dieses Studienganges ist das Hardwarepraktikum (HAPRA)
obligatorisch.
Zulassungsvoraussetzung:
entweder nach neuer Regelung bei Studienbeginn ab WS 90/91 bestandene Klausur
der Veranstaltung "Grundlagen der Elektrotechnik I und II für Informatiker
und Naturwissenschaftler" oder nach alter Regelung bei Studienbeginn vor WS
90/91: bestandene Hardwarekurs-Klausur.
Studiengang "Angewandte Informatik mit Studienschwerpunkt
Maschinenbau":
Für Studierende dieses Studienganges ist das Hardwarepraktikum (HAPRA)
obligatorisch.
Zulassungsvoraussetzung:
entweder nach neuer Regelung bei Studienbeginn ab WS 90/91 bestandene Klausur
der Veranstaltungen "Physikalische und elektrotechnische Grundlagen für
Informatiker" und "Elektronik für Informatiker" oder nach alter Regelung
bei Studienbeginn vor WS 90/91: bestandene Hardwarekurs-Klausur.Praktika
_______________________________________________________________________
Studiengang "Kerninformatik mit Nebenfach E-Technik"
Für Studierende dieses Studienganges ist das Digitalelektronische
Praktikum (EPRA) obligatorisch).
Zulassungsvoraussetzung:
Klausur der Veranstaltung "Grundlagen der Elektronik I und II für
Informatiker und Naturwissenschaftler".
Studiengang "Kerninformatik mit anderem Nebenfach"
Studierende dieses Studienganges können wahlweise entweder am
Hardwarepraktikum (HAPRA) oder Digitalelektronischen Praktikum (EPRA)
teilnehmen.
Zulassungsvoraussetzung:
entweder nach neuer Regelung bei Studienbeginn ab WS 90/91: bestandene Klausur
der Veranstaltungen "Physikalische und elektrotechnische Grundlagen für
Informatiker" und "Elektronik für Informatiker" oder nach alter Regelung
bei Studienbeginn vor WS 90/91: bestandene Klausur der Veranstaltung
"Grundlagen der Elektronik I und II für Informatiker und
Naturwissenschaftler".
Anmeldung
Wegen der begrenzten Anzahl der Laborarbeitsplätze erfolgt die Anmeldung
zum Hardwarepraktikum (HAPRA) und zum Digitalelektronischen Praktikum (EPRA)
schriftlich. Anmeldeformulare finden Sie in jedem Semester jeweils in der
letzten Woche der Vorlesungsperiode und in den Semesterferien beim Briefkasten
"HAPRA/Sjamken" im Geschoßbau 5, 2. Stock. Die Anmeldefrist endet jeweils
ein oder zwei Tage nach Beginn der Vorlesungsperiode. Achten Sie auf die
Aushänge!
Experimente im HAPRA
Rechner bestehen aus vielen hunderttausend elektronischen Bauelementen. Um
deren Zusammenwirken im Rechnersystem noch übersehen zu können,
gliedert man es in eine Hierarchie von Subsystemen:
Der Rechner insgesamt als System, das Programme und Daten aufnimmt, Daten
ausgibt, bildet die oberste Ebene dieser Hierarchie. Auf der nächsten
Hierarchieebene untergliedert man den Rechner in mehrere Hauptblöcke wie
Rechenwerk, Steuerwerk, Hauptspeicher, Ein- und Ausgabewerke, Periphere
Speicher.
Jeden dieser Blöcke betrachtet man auf der Registertransferebene als
Netzwerk aus Registern, arithmetisch-logischen Einheiten, Multiplexern,
Demultiplexern Speichermatrizen usw. Die von diesen Einheiten aufgenommenen
bzw. ausgegebenen Objekte sind Binärworte (Befehle, Daten).Praktika
_______________________________________________________________________
Auf der nächsten Hierarchieebene, der Schaltwerkebene, setzt man die
Register, arithmetisch-logischen Einheiten usw. aus logischen Gattern wie UND-
ODER und NICHT-Gliedern und aus Flip-Flops zusammen. Ein- und Ausgabeobjekte
von Gattern und Flip-Flops sind die Binärwerte 0 und 1.
Auf der Ebene der elektrischen Schaltungen sieht man logische Gatter und
Flip-Flops als Netzwerke aus Stromkreisen, in denen sich elektronische
Bauelemente wie Widerstände, Kondensatoren, Dioden, Transistoren, Strom-
und Spannungsquellen usw. befinden, d.h. Bauelemente, deren Ein- und
Ausgabewerte elektrische Ströme und Spannungen sind.
Die ersten vier Ebenen, Rechnerebene, Hauptblockebene, Registertransferebene
und Schaltwerkebene werden in den Veranstaltungen zum Thema Rechnerstrukturen
behandelt. Die Schaltwerkebene und die Ebene der elektrischen Schaltungen sind
Gegenstand der Elektrotechnik-Vorlesungen für Informatiker.
Messungen und Beobachtungen im Hardwarepraktikum werden in der Hauptblockebene,
der Registertransferebene, der Schaltwerkebene und der Ebene der elektrischen
Schaltungen interpretiert.
Die HAPRA-Laborveranstaltungen dauern für Kern-Informatiker 4 Stunden und
für Angewandte Informatiker 3 Stunden pro Woche. Sie arbeiten mit dem
Versuchspartner Ihrer Wahl an Experimenten zu folgenden Themen:
* Frequenz- und Zeitmessungen an periodischen Signalen verschiedener Formen mit
dem Oszilloskop im Einkanal- und Zweikanalbetrieb.
* Erzeugung von Signalen mit dem Funktionsgenerator (Betriebsparameter des
Funktionsgenerators)
* Einsatz der verschiedenen Triggermöglichkeiten und der
Verzögerungsleitung des Oszilloskopes
* Lissajou-Figuren (x-y-Betrieb des Oszilloskopes)
* Statische und dynamische Messungen am TTL-Schaltkreis (Ströme,
Spannungen, Transferkennlinie)
* Untersuchung von Flip-Flop-Typen (NAND-Basis-Flip-Flop, Taktsteuerungen,
Beseitigung des irregulären Zustandes beim Basis-Flip-Flop, JK-Flip-Flop,
D-Flip- Flop, T-Flip-Flop, Master-Slave-Flip-Flop, Beseitigung von
Prelleffekten mit einem Flip-Flop)
* Erzeugung kurzer Pulse durch Laufzeitspeicherung
* Impulsteilerschaltungen
* Entwurf, Aufbau und Test synchroner und asynchroner Zähler. (Dabei wird
ein allgemeines Entwurfsverfahren für Schaltwerke angewandt.)
* Entwurf, Aufbau und Test von Schieberegister-Automaten
* Messung und Beseitigung von Hazards
* Aufbau und Test einer mikroprogrammierbaren Schaltung
* Experimente mit einem (mikroprogrammierbaren) Bit-Slice-Microprozessor
Literatur
- John P. Hayes: Digital System Design and Microprocessors. McGraw-Hill,
1988
- Siegbert Henschke: Grundzüge der Digitalelektronik. Teubner, 1988
- Paul Horrowitz, Winfield Hill: The Art of Elektronics. Cambridge University
Press, 1990
- Klaus Lagemann: Rechnerstrukturen. Verhaltensbeschreibung und
Entwurfsebenen. Springer, 1987
- Volker Schmidt: Digitalelektronisches Praktikum, Teubner, 1987.Vorlesungen
im Hauptstudium
_______________________________________________________________________
Simulation
041083 4 V Di, 8.15 - 9.45 Uhr HG I / HS 2 Beilner
Do, 8.15 - 9.45 Uhr HG I / HS 2
041084 2 Ü n.V. Übungsgruppeneinteilung zu Ende Rühl des
ersten Vorlesungstermins (16.4.96)
Beginn: 16. April 1996
Die Untersuchung komplexer Systeme bezüglich interessanter bzw.
wünschenswerter und geforderter Eigenschaften erfolgt häufig auf dem
Wege der Erstellung diesbezüglicher "Modelle" und der nachfolgenden
"Analyse" der Modelle. Dieses Vorgehen bietet sich insbesondere dort an, wo
eine direkte Untersuchung der realen Systeme zu aufwendig, zu gefährlich,
überhaupt unmöglich erscheint (letzteres z.B. im Entwurfsstadium
eines Systems).
Die angebotene Lehrveranstaltung widmet sich der Modellierung dynamischer, auch
stochastischer, ereignisorientierter Systeme (ein Systemtyp, der u.a.
Transport-Systeme, Fertigungs-Systeme, Materialfluß-Systeme,
Büro-Systeme, ... last but not least: Rechen- und Kommunikations-Systeme
einschließt) und der Analyse dieser Modelle mittels
rechnergestützter Simulation.
Behandelt werden insbesondere
- Probleme, Methoden und Techniken der Modellbildung
- Programmierung von Simulationsmodellen, geeignete Programmier- und
Spezifikations-Sprachen
- statistische Verfahren für die Spezifikation stochastischer
Modellgrößen
- statistische Verfahren zur Auswertung von Simulationsexperimenten
- Probleme und Verfahren der Kalibrierung und Validierung von
Simulationsmodellen
- Grundlagen des Experimententwurfs
Die in der Vorlesung verwendeten Folien werden als Manuskript herausgegeben.
Teile der Vorlesung werden die Beherrschung des Stoffes der Lehrveranstaltung
"Wahrscheinlichkeitsrechnung und mathematische Statistik für Informatiker"
(bzw. entsprechender Veranstaltungen) voraussetzen. Für Hörer, die
diese Lehrveranstaltungen nicht besucht (oder ihren Inhalt nicht mehr
präsent) haben, weise ich zur eventuellen Einarbeitung insbesondere hin
auf
W. Dörfler; Mathematik für Informatiker, Bd. 2 (Methoden aus der
Analysis);
Hanser-Verlag 1978 (erste! Auflage).
oder alternativ (deutlich knapper):
Dörfler/Peschek; Einführung in die Mathematik für Informatiker
(Hanser, 1988)
Vorlesungen im Hauptstudium
_______________________________________________________________________
Effiziente Algorithmen
041005 4 V Di, 12.15 - 13.45 Uhr HG I / HS 1 Krause
Do, 16.15 - 18.00 Uhr HG II / HS 5
041006 2 Ü n.V. Bertram/ Hofmeister
In dieser Vorlesung werden effiziente sequentielle Algorithmen für
grundlegende Berechnungsprobleme vorgestellt und analysiert.
Die diskutierten Probleme kommen aus den Bereichen Graphen, Mustererkennung,
lineare und diskrete Optimierung und Kryptographie. Sie bilden (hoffentlich)
einen repräsentativen Querschnitt im Spektrum typischer, in Anwendungen
gefragter algorithmischer Lösungen.
Vorausgesetzt werden Kenntnisse über grundlegende Datenstrukturen und
Basisalgorithmen (z.B. Sortieren) aus dem Grundstudium.
Die Vorlesung ist vierstündig, es finden Übungen statt.
Vorlesungen im Hauptstudium
_______________________________________________________________________
Theorie des Logikentwurfs
041007 4 V Mo, 10.15 - 12.00 Uhr HG II / HS 5 Reusch
Di, 14.15 - 16.00 Uhr HG II / HS 5
041008 2 Ü n.V. Bos/Lehmke
Beginn: 15.04.1996
Inhalt:
Die Stammvorlesung "Theorie des Logikentwurfs" beschäftigt
sich mit der Synthese und Analyse digitaler Schaltungen auf logischer Ebene.
Beim Syntheseproblem soll zu einer gegebenen Booleschen Funktion (etwa in Form
einer Wahrheitstabelle) eine physikalisch realisierbare Schaltung (z.B. ein
Gatterplan) entwickelt werden, der diese Funktion realisiert. Dabei dürfen
nur Funktionselemente aus einem gegebenen Bausteinsatz (z.B. nur NAND Gatter)
verwendet werden. Die entwickelte Schaltung soll optimal bezüglich einer
gegebenen Kostenfunktion sein (z.B. Anzahl verwendeter Bauelemente) und weitere
praktische Randbedingungen erfüllen (Testbarkeit, Fehlertoleranz). Es
werden Methoden zum Entwurf solcher Schaltungen vorgestellt.
Beim Analyseproblem wird das Verhalten einer gegebenen digitalen Schaltung mit
Hilfe verschieden feiner mathematischer Modelle untersucht. Kombinatorische
(rückkopplungs-freie) Schaltungen können durch Boolesche Algebren
beschrieben werden, synchrone sequentielle Schaltungen (getaktete Schaltungen
mit Rückkopplung) durch endliche Automaten. Es werden Kriterien für
die Beurteilung der Testbarkeit von Schaltungen entwickelt und spezielle
dynamische Störeffekte (Hazards) untersucht.
Stichworte: Sequentielle und kombinatorische Schaltungen, Boolesche Algebren,
Endliche Automaten, Bausteinsätze, Bestimmung von Primimplikanten,
Überdeckungsproblem, Funktionenbündel, Hazards, Stuck-at-Fehler
Hinweis:
Bitte beachten Sie die gegenüber dem Vorlesungsverzeichnis
SS96 geänderten Vorlesungszeiten und Hörsäle.
Hörer: Kern- und Ingenieurinformatiker(innen) nach dem
Vordiplom
Literatur:
J.F. Wakerly: Digital Design, Prentice Hall, 1994
G. De Micheli: Synthesis and Optimization of Digital Circuits, McGraw Hill,
1994
J.A. Brzozowski, C-J.H. Seger: Asynchronous Circuits, Springer, 1995
Die in der Vorlesung verwendeten Folien werden den Zuhörern
nachträglich zugänglich gemacht.
Vorlesungen im Hauptstudium
_______________________________________________________________________
Rechnerarchitektur
041059 4 V Mi, 10.15 - 12.00 Uhr GB V / HS 113 Marwedel
Fr, 10.15 - 12.00 Uhr GB V / HS 113
041060 2 Ü n.V. Löbbing/ Mandischer
Beginn: 17. April 1996
Ziel:
Ziel der Vorlesung ist es, den Studenten Kenntnisse vom Aufbau und der
Arbeitsweise gängiger Rechensysteme zu vermitteln. Anwendungen dieser
Kenntnisse gibt es in vielen Bereichen, so z.B. im Compilerbau, der
Systempflege und der Rechnerauswahl.
Inhalt:
Die Vorlesung ist wie folgt gegliedert:
0. Vorbemerkungen (Motivation, Literatur, Notation, Prüfungen)
1. Aufbau und Wirkungsweise von Zentraleinheiten (externe und interne
Rechnerarchitek- tur, Adressierungsarten, Unterbrechungen,
Mikroprogrammierung, RISC-Architekturen, superskalare Architekturen,
VLIW-Architekturen)
2. Arithmetik
3. Aufbau und Organisation des Arbeitsspeichers (Speicherbausteine,
Speicherverwal- tung, Translation Look-Aside Buffer, Caches,
Seiten-Austauschverfahren)
4. Prozeß- und Prozessorverwaltung (Realisierung des
Mehrprozeß-Betriebs)
5. Ein-/Ausgabe (E/A-Adressierung, Bussysteme, Peripherie-Schnittstellen,
Programmier- methoden, Netzwerke)
6. Massenspeicher (Aufbau, Verwaltung)
7. Graphik-Hardware
8. Non-Standard-Rechner (Vektorrechner, Datenfluß- und
Reduktionsmaschinen, Logik- programmierung)
Zu der Vorlesung erscheint ein Begleittext (das Stichwort "Begleittext"
bedeutet, daß dieser Text NICHT für das Selbststudium ohne Besuch
der Vorlesung gedacht ist).
Begleittexte des Vortragenden sind über die www-Seite
http://ls12-www.cs.tu-dortmund.de des Lehrstuhls Informatik XII aus
dem Netz der Universität Dortmund zugänglich.
Die Struktur der Vorlesung ist an das Buch H. Bähring:
Mikrorechnersysteme, Springer angelehnt. Dieses Buch ist in die
Lehrbuchsammlung aufgenommen worden.
Im Unterschied zu diesem Buch werden in der Vorlesung elektrotechnische Themen
weniger und prinzipielle Architekturmerkmale intensiver behandelt.
Zu diesem Zweck wird vor allem dem Buch
D. Patterson, J. Hennesy: Computer-Architecture, A Quantitative Approach,
Morgan Kaufman Publishers
Stoff entnommen. Sollten Sie dieses Buch kaufen wollen, so achten Sie
möglichst darauf, daß Sie die 2. Auflage (1995) erhalten!
Prüfungen:
Angewandte Informatiker(innen) können sich beim Veranstalter der Vorlesung
über deren Stoff prüfen lassen.
Kerninformatiker(innen) können dies in Kombination mit dem Stoff einer
anderen Praktischen Stammvorlesung tun. Besonders gängig ist die
Kombination mit der Vorlesung "Informationssysteme". Bei der (beliebten)
Kombination mit der Vorlesung "Betriebssysteme" ist eine Absprache notwendig,
um Überlappungen zwischen beiden Vorlesungen auszugleichen. Kombinationen
mit den übrigen Praktischen Stammvorlesungen sind nach Rücksprache
möglich.
Vorlesungen im Hauptstudium
_______________________________________________________________________
Künstliche Intelligenz
041065 4 V Mo, 10.15 - 12.00 Uhr GB V / HS 113 Morik
Fr, 12.15 - 13.45 Uhr GB V / HS 113
041066 2 Ü n.V. Bell/Weber/ Klingspor
Künstliche Intelligenz (KI) ist ein vieldiskutierter Teilbereich der
Informatik, der versucht, Rechner menschengerechter zu machen und/oder bei
Menschen als 'intelligent' bezeichnete Fähigkeiten zu analysieren und zu
formalisieren.
Solche üblicherweise als 'intelligent' betrachteten Fähigkeiten sind
zum Beispiel Problemlösung, maschinelles Lernen und
natürlichsprachliche Kommunikation.
Für diese Bereiche der KI wurden Methoden entwickelt, die in der Vorlesung
ausführlich behandelt werden. Einerseits können sie als Suchprobleme,
andererseits als Beweisprobleme betrachtet werden.
Es werden auf das Software Engineering bezogene, kognitive und formale Aspekte
verbunden.
Zur Vorlesung gibt es ein Skript erstellt. Auch ist das Buch {Goerz/93} zu
empfehlen.
Vorkenntnisse:
Prolog-Kenntnisse werden vorausgesetzt.
Ein Kompaktkurs findet vom 18.3. bis 29.3.93 statt.
Goerz/93 Günther Görz, editor.
Einführung in die künstliche Intelligenz. Addison-Wesley, 1993.
Vorlesungen im Hauptstudium
________________________________________________________________________
Konzepte funktional-logischer Programmiersprachen
042504 4 V Mo, 16.15 - 18.00 Uhr HG I / HS 2 Padawitz
Fr, 10.15 - 12.00 Uhr HG I / HS 2
042515 2 Ü n.V. N.N.
Beginn: 15. April 1996
Inhalt:
Funktional-logische Programmiersprachen kombinieren die Eigenschaften
funktionaler Sprachen wie ML mit denen logischer Sprachen wie Prolog. Geeignete
Sprachkonstrukte sowie Implementierungstechniken erlauben es, die Nachteile
rein funktionaler Sprachen (eingeschränkte Beschreibungsmächtigkeit)
sowie rein logischer Sprachen (hoher Berechnungsaufwand) zu überwinden.
Sowohl theoretische als auch praktische Aspekte funktional-logischer Sprachen
sind zur Zeit zentraler Forschungsgegenstand am Lehrstuhl 5. Die Teilnahme an
dieser Spezialvorlesung wird deshalb besonders denjenigen empfohlen, die sich
für eine Projektgruppe oder Diplomarbeit am LS 5 interessieren.
Hörer:
Student(inn)en der Kern- und Angewandten Informatik nach dem
Vordiplom.
Sowohl theoretische als auch praktische Aspekte funktional-logischer Sprachen
sind zur Zeit zentraler Forschungsgegenstand am Lehrstuhl 5. Die Teilnahme an
dieser Spezialvorlesung wird deshalb besonders denjenigen empfohlen, die sich
für eine Projektgruppe oder Diplomarbeit am LS 5 interessieren.
Literatur:
- R. Loogen, Integration funktionaler und logischer Programmiersprachen,
Oldenbourg 1995
- M. Hanus, The Integration of Functions into Logic Programming: From Theory to
Practice, J. Logic Programming 19/20 (1994) 583-628
- M. Hanus, H. Kuchen, J.J. Moreno-Navarro, Curry: A Truly Functional Logic
Language, workshop paper 1995
- P. Padawitz, Expander: A System for Testing and Verifying Functional-Logic
Programs, Report No. 522, FB Informatik, Univ. Dortmund 1994
Vorlesungen im Hauptstudium
_______________________________________________________________________
Digitale Bildverarbeitung
042383 3 V Mi, 8.15 - 10.00 Uhr HG I / HS 2 Stark
Do, 10.15 - 11.00 Uhr HG I / HS 2
042384 2 Ü Do, 11.15 - 13.00 Uhr HG I / HS 2 Stark
Inhalt:
Die digitale Bildverarbeitung beschäftigt sich mit der Digitalisierung und
anschließenden Verarbeitung von Bildern mit Rechnern. Ziel der digitalen
Bildverarbeitung ist sowohl die Bearbeitung bildlicher Information zur
Interpretation durch den Menschen als auch die automatische Verarbeitung von
Bilddaten im Rahmen des maschinellen Sehens. Anwendungen der digitalen
Bildverarbeitung finden sich in vielen Gebieten, wie z.B der Medizin, Robotik,
Geographie, usw.
In der Vorlesung sollen folgende Themen behandelt werden:
- Gerätetechnik: Überblick über die Hardware eines
Arbeitsplatzes zur digitalen Bildverarbeitung
- Mathematische Grundlagen der Signalverarbeitung: Kontinuierliche und diskrete
zweidimensionale Fourier-Transformation und ihre Eigenschaften, Abtastung von
Funktionen und Rekonstruktion von Funktionen aus Abtastpunkte
- Bildverbesserung: Methoden zur Bildverbesserung von einfachen
Intensitätstransformationen bis zur Filterung im Orts- und
Frequenzbereich, Einführung in die Grauwertmorphologie
- Bildkompression: Verfahren der Kompression mit und ohne Informationsverlust,
internationale Standards zur Bildkompression
- Bildrestauration: Modellierung der Bilddegradation, Filter zur Rekonstruktion
des ungestörten Bildes
- Segmentierung: Bereichsorientierte und kantenorientierte Methoden zur
Bildsegmentierung
- Musterekennung: Einführung in Methoden der Mustererkennung zur
Merkmalsextraktion, numerischen und syntaktischen Klassifikation
Zur Vorlesung werden Übungen angeboten, in denen mittels eines vorhandenen
Bildverarbeitungssystems die in der Vorlesung vorgestellten Konzepte praktisch
erprobt werden können.
Hörer:
Kern- und Ingenieurinformatiker nach dem Vordiplom
Literatur:
Die Vorlesung folgt keinem speziellen Lehrbuch. Es ist geplant, ein
Folienskript herauszugeben. Als ergänzende Literatur wird empfohlen:
- R.C. Gonzalez, R.E. Woods, Digital Image Processing, Addison-Wesley, 1992
(Internationales Standardlehrbuch zur Bildverarbeitung) -R.O. Duda, P.E.
Hart, Pattern Classification and Scene Analysis, Wiley, 1973 (Internationales
Standardbuch zur Mustererkennung)
Vorlesungen im Hauptstudium
_______________________________________________________________________
Kommunikationskomplexität
042507 4 V Mo, 14.15 - 16.00 Uhr GB IV / SR 318 Wegener
Mi, 10.15 - 12.00 Uhr GB IV / SR 318
Inhalt:
In verschiedenen Bereichen hat es sich als nützlich erwiesen, Probleme als
Kommunikationsprobleme zu modellieren. Offensichtlich ist dies im Bereich von
Rechennetzen. Aber auch auf Chips wird kommuniziert! Bei der Multiplikation
müssen die Bits der beiden Faktoren "verbunden" werden. Hat der Chip
kleine Fläche, muß über einen kleinen Schritt durch den Chip
viel Information fließen, was viel Zeit erfordert. Chips können also
nicht gleichzeitig kleine Fläche haben und schnell sein.
Methoden, die die Komplexität von Kommunikation als Hilfsmittel benutzen,
wurden implizit und explizit in vielen Arbeiten benutzt. In einem Skript (das
als Buch erscheinen soll) haben Kushilevitz und Nisan erstmalig die
vereinzelten Ansätze zu einer gemeinsamen Theorie der
Kommunikationskomplexität zusammengefaßt. Diesem Manuskript folgt
die Vorlesung, die damit in drei Hauptteile zerfällt Kommunikation
zwischen zwei Parteien, Kommunikation zwischen vielen Partien und Anwendungen.
Anwendungen sind hier Anwendungen innerhalb der Komplexitätstheorie:
Netzwerke, VLSI-Chips, Entscheidungsbäume, danamische Datenstrukturen,
Tiefe von Schaltkreisen, Größe von Schaltkreisen,
Branchingprogramme, OBDDs.
Vorlesungen im Hauptstudium
_______________________________________________________________________
Softwaretechnologie II
042508 2 V Di, 12.15 - 13.45 Uhr HG I / HS 2 Doberkat
Die Vorlesung soll sich in Fortsetzung der im WS 1995/96 gehaltenen
Veranstaltung Software Technologie I mit Entwurfsmustern befassen. Diese
Entwurfsmuster sind architekturelle Abstraktionen, mit deren Hilfe
objekt-orientierte Software systematisch entworfen werden kann. Sie erlauben
also die systematische Wiederverwendung erprobter Entwürfe und
Architekturen. Im Zentrum der Überlegungen steht das Studium einzelner
Entwurfsmuster, die klassifiziert werden in erzeugende, strukturelle und
verhaltensbeschreibende Muster.
Erzeugende Muster sind z.B.
* abstract factory - stellt eine Schnittstelle zur Erzeugung von
Familien verwandte oder abhängiger Objekte zur Verfügung, ohne die
konkreten Klassen zu spezifizieren,
* singleton - stellt sicher, daß von einer Klasse nur eine einzige
Instanz existiert und stellt eine globale Schnittstelle dazu zur
Verfügung.
Strukturelle Muster sind z.B.
* adapter - konvertiert die Schnittstelle einer Klasse so, wie sie von
einem Klienten erwartet wird, so daß Klassen zusammenarbeiten könne,
die sonst wegen unverträglicher Schnittstellen nicht zusammenarbeiten
können,
* composite - repräsentiert Objekte in einer Baumstruktur, um
Aggregationen darzustellen. Damit können Klienten einzelne und
zusammengesetzte Objekte gleichförmig benutzen.
Verhaltensbeschreibende Muster sind z.B.
* iterator - beschreibt den sequentiellen Zugriff auf zusammengestzte
Objekte, ohne die zugrundeliegende Darstellung der Objekte zu benötigen,
* template method - defiiert das Skelett eines Algorithmus in einer
Operation, wobei einzelne Schritte an Unterklassen delegiert werden.
Es wird in einer Fallstudie gezeigt, wie sich solche Muster verwenden lassen,
danach werden die charakteristischen Eigenschaften der Muster herausgearbeitet.
Die Beschreibung der Muster erfolgt in einer Notation, die an OMT angelehnt
ist, Code wird in aller Regel in C++ formuliert.
Die Vorlesung ist für Studentinnen und Studenten im Hauptstudium geeignet,
die bereits über Grundkenntnisse der Softwaretechnik - insbesondere des
objekt-orientierten Entwurfs - verfügen.
Literatur:
E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patters -
Elements of Reusable Object-Oriented Software. Addison-Wesley, Bonn, 1995
Vorlesungen im Hauptstudium
_______________________________________________________________________
Information Retrieval
042446 2 V Mo, 10.15 - 12.00 Uhr HG I / HS 2 Fuhr
Beginn: 15. April 1996
Inhalt:
Information Retrieval (IR) beschäftigt sich mit Informationssystemen
für vage Anfragen und unsicheres Wissen. Neben der inhaltlichen Suche in
Textbeständen werden heute auch multimediale Daten und
technisch-wissenschaftliche Datensammlungen (mit unsicheren /
unvollständigen Daten) betrachtet, wobei in jedem Fall die Daten
zusätzlich im Netz verteilt sein können. Im Rahmen dieser
Spezialvorlesung sollen die in der Stammvorlesung "Informationssysteme" bereits
eingeführten IR-Konzepte vertieft und weitere Themen behandelt werden.
Gliederung:
1) Evaluierungsmethoden (Maße für Rangordnungen). 2)
Multimedia-Indexierung 3) Probabilistische Modelle (Indexierungs- und
Retrievalmodelle, Parameterschätzung) 4) Implementierung von IR-Systemen
(Architektur, Zugriffspfade, Algorithmen). 5) IR und Datenbanken
(DB-Konzepte für IR, vages Faktenretrieval, probabilistisches
Relationenmodell). 6) Interaktive IR-Systeme (Benutzungsoberflächen,
Hypertext). 7) IR in Netzen (web search, digital libraries).
Hörer:
Informatiker und Ingenieur-Informatiker im Hauptstudium
Voraussetzungen:
Vorheriger Besuch der Vorlesung "Informationssysteme"
Didaktik:
Es wird ein Skript herausgegeben.
Literatur:
wird in der Vorlesung bekanntgegebenVorlesungen im Hauptstudium
_______________________________________________________________________
Korrektheit und Zuverlässigkeit verteilter Systeme
042509 4 V Di, 14.15 - 16.00 Uhr HG I / HS 2 Krumm/Echtle
Do, 14.15 - 16.00 Uhr HG I / HS 2
Inhalt:
Die Vorlesung behandelt die beiden wichtigen Qualitätsaspekte großer
verteilter Systeme, "Korrektheit" und "Zuverlässigkeit":
- Modelle (Zustandstransitionssysteme, Kausalitätsstrukturen,
Zuverlässigkeitsmodelle),
- Spezifikation (Sprachen, Logik, Modellkonstruktionsmittel),
- Analyse (Erreichbarkeit, Invarianten, Verifikation,
Zuverlässigkeitsbewertung),
- Rechnerunterstützung (Werkzeugarchitekturen und Algorithmen).
Hörer:
Die Vorlesung findet im Rahmen des interdisziplinären Graduiertenkollegs
"Modellierung und modellbasierte Entwicklung komplexer technischer Systeme"
statt. Sie ist auch für Informatik-Studenten im Hauptstudium geeignet. Es
werden keine besonderen Vorkenntnisse vorausgesetzt.
Literatur:
Angaben im Verlauf der Vorlesung
Vorlesungen im Hauptstudium
_______________________________________________________________________
Mikrosystementwurf
042510 4 V Mo, 12.30 - 14.00 Uhr OH 16 / SR 205 Brück
Do, 8.30 - 10.00 Uhr OH 16 / SR 205
Beginn: Mo, 15. April 1996, 12.30 Uhr
Die Mikrotechnik beschäftigt sich mit der Erstellung höchstgradig
miniaturisierter Produkte auf der Basis verschiedenartiger physikalischer
Effekte und Wirkprinzipien. Dazu zählen neben der Mikroelektronik auch
Mikromechanik, Mikrooptik, Mikrofluidik, Mikrochemie, usw.. Sie stellt somit
heute einen der vielversprechendsten High-Tech+-Bereiche dar, der in den
nächsten Jahrzehnten stark an wirtschaftlicher Bedeutung gewinnen wird.
Im Rahmen dieser Spezialvorlesung sollen alle Aspekte der Mikrotechnik
ausführlich behandelt werden, die aus der Sicht der Informatik von
Interesse sind. Dies betrifft insbesondere die Rechnerunterstützung von
Entwurf und Fertigung von Mikrosystemen. Die Vorlesung wendet sich an alle
Studenten im Hauptstudium der Kern- und Ingenieurinformatik, die an technischen
Anwendungen der Informatik interessiert sind. Sie behandelt folgende
Themenbereiche:
1. Technische Grundlagen der Mikrotechnik
Dieser Teil der Vorlesung behandelt vorwiegend qualitativ die technischen
Grundlagen der Herstellung und Funktionsweise von Mikrosystemen (wie Sensoren
und Aktoren). Im einzelnen:
- Einführung
Anwendungsbereiche und Marktchancen von Mikrostrukturen und Mikrosystemen,
Grundlegende Begriffe
- Aktoren und Sensoren
Darstellung von Funktionsprinzipien, Aufbau und Einsatzfeldern der wichtigsten
Klassen von Mikrosystemen: Sensoren (z.B. Beschleunigungs-, Druck-, Kraft- und
Temperatursensoren) und Aktoren (z. B. Mikromotoren, Mikropumpen und Ventile)
anhand konkreter Beispiele.
- Fertigung in Silizium-Technik
Hier werden die einzelnen Techniken und Produktionsschritte von
Mikrostrukturen in der aus den Fertigungsverfahren für integrierte
Schaltkreise abgeleiteten Silizium-Mikro technik betrachtet.
- Fertigung in LIGA-Technik
Vor allem in Deutschland hat sich eine nicht auf elektronischen Schaltungen
basierende Technik zur Fertigung von Mikrostrukturen aus beliebigen Materialien
entwickelt: die LIGA-Technik. Ihre Eigenschaften und Besonderheiten werden
detailliert betrachtet.
Dieser Teil umfaßt etwa 1/3 der Vorlesung. Er liefert die Grundlagen
für die folgenden eingehenden Untersuchungen von Entwurfsmodellen und
CAD-Werkzeugen.
2. Rechnerunterstützung für Entwurf und Fertigung
Hier stehen Modelle und Methoden des Entwurfs, sowie Algorithmen und
Softwaresysteme für die Entwurfsunterstützung von Mikrosystemen im
Vordergrund. Dies umfaßt:
- Entwurfsmodelle und -methoden
Dieser Teil der Vorlesung beschäftigt sich mit den grundlegenden
Vorgehensweisen beim Entwerfen von Mikrostrukturen. Er beschäftigt sich
intensiv mit den Abhängigkeiten zwischen dem Entwurf und der
anschließenden Fertigung. Aus diesen Betrachtungen werden Aufgaben und
Einsatzbereiche für CAD-Werkzeuge abgeleitet.
- Simulationswerkzeuge
Ein Schwerpunkt der Rechnerunterstützung liegt auf der Prognose des
Verhaltens und der Eigenschaften der entworfenen Strukturen, ohne dazu eine
Prototypfertigung durchführen zu müssen. Zu diesem Zweck werden
Simulationswerkzeuge eingesetzt. In diesem Teil der Vorlesung werden Prinzipien
und Algorithmen der verbreiteten Simulationstechniken für Mikrosysteme
vorgestellt
- geometrische Layoutwerkzeuge
Am Ende des Entwurfsprozesses steht die Erzeugung der geometrischen Daten, die
den exakten dreidimensionalen Aufbau der entworfenen Mikrostruktur darstellen.
Hier werden vor allem CAD-Werkzeuge vorgestellt, die eine Validierung des
meistens manuell durchgeführten Entwurfs derartiger sogenannter Layouts
unterstützen.
- Fertigungsunterstützung
Der Fertigungsprozeß für Mikrostrukturen ist im allgemeinen sehr
komplex und hängt von vielfältigen Randbedingungen ab. Bis heute ist
es nur wenigen Technologieexperten vorbehalten, alle Eigenschaften eines
konkreten Fertigungsprozesses für Mikrostrukturen zu überblicken.
Hier werden Ansätze vorgestellt, wie dieser Prozeß durch geeignete
Werkzeuge unterstützt werden kann.
- Entwurfsumgebungen
Das Ziel der Rechnerunterstützung für Mikrosysteme ist eine
umfassende Entwurfsumgebung, die die Entwerfer in allen Phasen des Entwurfs
unterstützt, ihnen Routinetätigkeiten bei der Erstellung des Layouts
abnimmt, prüft, ob alle erforderlichen Randbedingungen für die
Fertigung eingehalten sind, und die notwendige Konfiguration der
Fertigungsanlage übernimmt. Solche Entwurfsumgebungen sind heute noch weit
von ihrer Fertigstellung entfernt.
In diesem Teil der Vorlesung werden aktuelle Forschungsarbeiten in diesem
Bereich dargestellt.
Dieser Teil umfaßt etwa 2/3 der Vorlesung.
Vorlesungen im Hauptstudium
_______________________________________________________________________