View
1
Download
0
Category
Preview:
Citation preview
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 1 2
Prof. Bernd Brügge, Ph.DInstitut für Informatik
Technische Universität München
Sommersemester 2004
22. Juli 2004
Einführung in die Informatik IIVergleich von Programmierstilen
und Abschluss-Besprechung
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 2
Überblick für Heute
Vergleich von Programmierstilen
Allerlei
– Kurzfristiges Jobangebot
– Interaktives Antwortsystem
– Preisinformationen
Evaluierung der Vorlesung
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 3
Programmierstile
Funktionale Programmierung
Imperative Programmierung
Objekt-basierte Programmierung
Objekt-orientierte Programmierung
Ereignis-basierte Programmierung
Regel-basierte Programmierung (in Info I/II nicht behandelt,Vorlesung Wissensbasierte Systeme)
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 4
System-Kategorien und Sprachniveaus
Der Programmierstil ist nur eine von vielen Dimensionen, umAspekte eines Informatik-Systems zu berurteilen. Andere Aspekte:
– System-Kategorie
– Sprachniveau
System-Kategorie1. Berechnung von Funktionen2. Interaktive Systeme3. Prozeßüberwachung4. Eingebettete Systeme5. Adaptive Systeme
SprachniveauModellierungsspracheHöhere ProgrammierspracheMaschinennahe SpracheMaschinensprache
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 5
Modellierungs-sprache
(UML, OMT,E/R...)
!HöhereProgrammier-
sprache(Java, C++, C,...)
Maschinen-nahe Sprache
(Intel Assembler,PMI Assembler)
Maschinen-Sprache
(PMI, Java-Bytecode)
Sprach-Niveau
System-Klasse
Berechnungvon Funk-
tionen
InteraktiveSysteme
Prozess-überwachung
EingebetteteSysteme
Adaptive Systeme
Programmierstil
Funk-tional
Impe-rativ
Objekt-Basiert
Objekt-Orientiert
Ereignis-Orientiert
Regel-basiert
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 6
Modellierungs-sprache
(UML, OMT,E/R...)
!HöhereProgrammier-
sprache(Java, C++, C,...)
Maschinen-nahe Sprache
(Intel Assembler,PMI Assembler)
Maschinen-Sprache
(PMI, Java-Bytecode)
Sprach-Niveau
System-Klasse
Berechnungvon Funk-
tionen
InteraktiveSysteme
Prozess-überwachung
EingebetteteSysteme
Adaptive Systeme
Programmierstil
Funk-tional
Impe-rativ
Objekt-Basiert
Objekt-Orientiert
Ereignis-Orientiert
Regel-basiert
PMIBumpers
Fibo-nacci
Kon-trol
-Struk-turen
Such-Sortier-
Algorith-men
Fibo-nacci
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 7
Dimensionen von Programmierstilen
Elemente: Was sind die wesentlichen Bestandteile des Stils? Sicherheit: Sind Seiteneffekte möglich?
Effizienz: Wie hoch ist die Laufzeiteffizienz?
Nachweis der Korrektheit: Wie leicht ist es zu beweisen, dass ein im Stilgeschriebenes Programm das Spezifikationsmodell korrekt implementiert?
Nachweis der Terminierung: Wie leicht ist es, zu beweisen, dass dasProgramm anhält?
Enkapsulierbarkeit: Erlaubt der Stil Zugriffsschutz (z.b. durchSichtbarkeitsregeln)
Erweiterbarkeit: Unterstützt der Stil die Einführung von neuen Typen?
Lesbarkeit: Wieweit kann man das Programm durch Lesen des Quelltextesverstehen?
Wiederverwendbarkeit: Wie leicht kann man existierende Programme beider Lösung anderer Probleme einsetzen?
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 8
Funktionaler Programmierstil
Wesentliche Elemente: Funktionsanwendung, Fallunterscheidung,Rekursion
Sicherheit: hoch, keine Seiteneffekte
Effizienz: für jeden Aufruf wird eine Inkarnation (Aktivierungssegment) angelegt
Nachweis Korrektheit : partielle Korrektheit durch strukturelle Induktion
Nachweise Terminierung: Terminierungsfunktion
Enkapsulierung: Gering
Erweiterbarkeit: Schwierig
Lesbarkeit OK
Wiederverwendbarkeit: Gering
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 9
Imperativer Programmierstil
Wesentliche Elemente: Zuweisung, Kontrollstrukturen,Anweisungssequenzen, Programmzustand
Sicherheit: nicht sehr hoch, weil Seiteneffekte aufVariablen/Zustand möglich
Effizienz: in Schleifen wird auf eine Variable mehrfach zugewiesen, Zwischenergebnisse können
gespeichert werden (i.A.höhere Effizienz)
Nachweis Korrektheit: Durch Zusicherungen (Hoare Kalkül) Sehr aufwendig schon für kleine Programme
Nachweis Terminierung: Schwierig
Enkapsulierbarkeit: Gering
Erweiterbarkeit: Schwierig
Lesbarkeit OK
Wiederverwendbarkeit: Gering
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 10
Objekt-basierter Programmierstil
Wesentliche Elemente: Imperativer Programmierstil + Klassenkonzept
Sicherheit: Seiteneffekte durch Klassenkonzept auflokale Variablen/Zustand einschränkbar
Effizienz: in Schleifen wird auf eine Variable mehrfach zugewiesen, Zwischenergebnisse können
gespeichert werden (i.A.höhere Effizienz)
Nachweis Korrektheit: Entwurf durch Verträge, aufwendig
Nachweis Terminierung: Schwierig
Enkapsulierbarkeit: Hoch
Erweiterbarkeit: Schwierig
Lesbarkeit OK
Wiederverwendbarkeit: Nicht sehr hoch
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 11
Objekt-Orientierter Programmierstil
Wesentliche Elemente Objekt-basierter Programmierstil + Vererbung und Polymorphismus
Sicherheit: Seiteneffekte durch Klassenkonzept auflokale Variablen/Zustand einschränkbar
Effizienz: mittelmäßig (i.A. geringere Effizienz alsbeim imperativen Stil, insbesondere durch
dynamischen Polymorphismus)
Nachweis Korrektheit: Entwurf durch Verträge, aufwendig
Nachweis Terminierung: Schwierig
Enkapsulierbarkeit: Hoch
Erweiterbarkeit: Sehr gut
Lesbarkeit OK
Wiederverwendbarkeit: Sehr gut
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 12
Ereignis-Orientierter Programmierstil
Wesentliche Elemente Kontrollfluss durch Ereignisse,kein Hauptprogramm
Sicherheit: gefährdet, weil Seiteneffekte aufVariablen/Zustand möglich
Effizienz: hoch (wie beim imperativen Stil)
Nachweis Korrektheit: Sehr schwierig wegen fehlendem Kontrollfluss
Nachweis Terminierung: Äusserst schwierig (aber im allgemeinengarnicht erwünscht:-)
Enkapsulierbarkeit: Gering
Erweiterbarkeit: Sehr gut
Lesbarkeit Schlecht
Wiederverwendbarkeit: Mittelmäßig
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 13
Übersichtstabelle
Sicherheit
Effizienz
Nachweisder Korrektheit
Nachweisder Terminierung
Enkapsulierung
Erweiterbarkeit
Lesbarkeit
Wiederverwend-barkeit
Funktional ImperativObjekt-basiert
Ereignis-orientiert
Objekt-orientiert
+ - - 00
- + 0 + 0
+ - 0 - 0
+ - - -- -
- - + - +
- - 0 - +
0 0 0 - 0
- - 0 - +
Legende: + (hoch), 0 (mittel), - (gering/schwierig)
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 14
Überblick für Heute
Vergleich von Programmierstilen
Allerlei
– Kurzfristiges Jobangebot
– Interaktives Antwortsystem
– Preisinformationen
Evaluierung der Vorlesung
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 15
Software-Entwickler gesucht!
Projekt: Logistiktool für die chemische Industrie
Was wir benötigen:– Informatikstudenten für 2-3 monatige Hiwi-Anstellung– MS Access - Kenntnisse wünschenswert
Wann:– Semesterferien (ab Anfang August)
Was wir anbieten:– Echte Projekterfahrung, richtiger Kunde (Fortführung eines aktuellen
Softwareprojekts)– Extreme Programming– Erfahrung sammeln in Visual Basic und Datenbanken
Kontakt: bruegge@in.tum.de
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 17
Evaluierung
Stoff
Werkzeuge
Folien
Vorlesungsbetrieb
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 18
Stoff
Bemühung um Modernisierung der VL
GUI Benutzung (könnte auch schon ins 1. Semester)
Java, nur eine Programmiersprache, nicht 3 auf einmal
Moderne Beispiele
Bumpers
Erklärung mit UML
Aufbau der Vorlesung insgesamt
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 19
Stoff
Mehr Hintergrundwissen zur eigentlichen Informatik
Weniger Themen anschneiden, dafür gründlicher
Inhalt nicht redundant aufschreiben, sondern nur Stichpunkte
Im Skript nur Sachliches, nicht “Heute fällt die ZU aus”
Zuviele abstrakte Konzepte, die im Raum rumgeistern
Kein OCL im Grundstudium
“Bitte mehr Praxisbezug”, “Bitte mehr Theorie”
Gewisses logisches/mathematisches Grundverständnisvoraussetzen
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 20
Vorlesungsbetrieb
Skript im Netz
Unterstützung der TUM-BWL Übung in der Innenstadt
2x Tutorübung in der Woche!
Pause zwischen langen Vorlesungen
Zentralübung nur bei Bedarf
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 21
Werkzeuge
Wahlfreiheit lassen bei Entwicklungsumgebungen,Betriebssystemen, Programmiersprachen
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 22
Folien
Folien sind deutlich überfrachtet.
Die letzten Folien länger stehen lassen.
Das Konzept der Folien funktioniert einfach nicht, Tafelanschriebwäre deutlich hilfreicher
Prof. Brügge wirkte oft unvorbereitet, als ob er die Folien nichtkennen würde
– Powerpoint und Animationen
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 23
Sonstiges
Keine Experimente
– Wirklich nicht? Warum haben Sie Informatik gewählt?
Weniger gequälte Übersetzung englischer Begriffe, Englisch istnun einmal die Sprache der Informatik
Das Problem ist nicht Englisch vs Deutsch, sondern “Denglisch”
Es ist nicht Sinn einer Vorlesung, für eine Firma zu werben
Ziel war Werbung für die Ferienakademie
Manchmal könnte das Mikro lauter sein, da im (vollen) Saal eingewisser Lärmpegel herrscht.
Der Lärmpegel war besonders hoch, als das Mikro gut war.
Prof. etwas freundlicher, Überreaktion bei erhöhtem Lärmpegel
Schwätzen ist unfair bezüglich der anderen Studierenden
Keine Vorlesung um 8:30
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 24
Ein weiteres Experiment
Interaktives Fragesystem iVote– Erstellt von Studierenden im Webobjects Praktikum
URL fuer Endbenutzer– http://macbruegge27.informatik.tu-muenchen.de/cgi-
bin/WebObjects/iVote
Fragen– Hat es Ihnen geholfen, dass wir die PPS Folien ins Netz gestellt
haben? Ja, Nein
– Sollen wir die Vorlesung interaktiver machen?
– Ja, Nein, nur die Zentralübung
– Möchten Sie die Animation für die Huffmann-Codierung sehen?
– Ja, Nein
– Haben Sie Interesse an Angeboten wie dem Ferienjob? Ja, Nein
– Haben Sie Interesse, an der Weiterentwicklung von iVotemitzumachen?
Copyright 2004 Bernd Brügge Einführung in die Informatik II: TUM Sommersemester 2004 25
Ein letzter Tip: Prüfungsvorbereitung
Ein Skript ist Rohmaterial, kein Kondensat, für die Prüfung. Destillieren Sie die wesentlichen Punkte aus dem Skript
– Erarbeiten Sie eine Zusammenstellung der Konzepte Üben Sie nochmals möglichst viele Übungsaufgaben Gehen Sie mental durch eine Prüfung durch
– Was kann passieren? Arbeiten Sie mit anderen zusammen!
Viel Glück im weiteren Studium!
Recommended