programmierung und - userpages.uni-koblenz.delaemmel/oopm/slides/intro.pdf · (c) ralf lämmel,...
Post on 07-Sep-2019
4 Views
Preview:
TRANSCRIPT
EinführungRalf Lämmel
Objektorientierte Programmierung und
Modellierung
http://twitter.com/oopm
Do you really need to print these slides?
Please help saving trees!
Mechanik dieser Lehrveranstaltung
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Was ist OOPM?
Einführungsveranstaltung Informatik
Besucher aus den Curricula Inf/WI/CV u.a.
Monströse Veranstaltung mit 11 ECTS
4
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Zentrale Herausforderungen
Eigenverantwortlichkeit bei der Studienorganisation
Wertschätzung der Inhalte eines Universitätsstudiums
Konstruktive, positive Herangehensweise
5
BlaBlaBla ...
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Empfehlungen
Kontinuierliche ArbeitTeamarbeitMitarbeit in Übungen und PraktikaKeine Computerspiele o.ä. in den VorlesungenKommunikation und Information
6
Willkommen an der Uni! Vorsicht keine Verschulung!
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 7
Ausstieg aus dem (Informatik-) Studium ist kein Versagen!(siehe Beispiel)
Quelle: http://money.cnn.com/2014/10/16/technology/theranos-elizabeth-holmes/
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Struktur OOPM
8
!!!
8 LP Präsenzstudium: 90 Stunden Eigenstudium: 150 Stunden
Vorlesung4 SWS
Übung2 SWS
Programmierpraktikum2 SWS
Präsenzstudium: 30 Stunden Eigenstudium: 60 Stunden
3 LP
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Kommunikationskanäle
Vor Ort bei Vorlesung, Übung, Praktikum
http://twitter.com/oopm
Private Facebook-Gruppe
(Newsgroup infko.oopm)
Persönliche / sehr dringende Dinge per email
9
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Informationsquellen
siehe Kommunikation Webseite(n) Lehrveranstaltung und KLIPS http://softlang.wikidot.com/course:oopmEvtl. empfohlenes Lehrbuch (siehe Webseite)Modulhandbuch und StudienordnungFachschaft, Prüfungsamt, Mentor, ...(Suchmaschinen, Wikipedia, …)
10
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
http://softlang.wikidot.com/course:oopm
11
- Was ist das Team für den Kurs? - Was sind die Vorlesungstermine? - Was sind die Übungsaufgaben? - Was sind die Prüfungsmodalitäten? - ...
Die Informatik als Wissenschaft
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 13
Informatik ist die „Wissenschaft der systematischen Verarbeitung von Informationen“.
[Duden Informatik. Ein Sachlexikon für Studium und Praxis, ISBN 3-411-05232-5, wie zitiert auf Wikipedia http://de.wikipedia.org/wiki/Informatik am 14.4.2014]
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Wofür steht der Begriff Informatik?
Ein Kunstwort:
Information + Mathematik
Abweichende englische Sicht:
Computer Science
14
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Was ist denn dann Information?
15
Abstrakte Sichtweise aus der Informationstheorie: “Information ist die durch Empfang einer Nachricht beim Empfänger eingetretene Verringerung der Unbestimmtheit.” [Shannon1948]
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Was ist denn dann Information?
16
Konkretere Sichtweise: Informationen werden als Daten repräsentiert und diese Daten wiederum werden als Nachrichten versendet und beim Empfänger schließlich wieder als Informationen interpretiert.
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Daten (Repräsentationen)
Bits, Bitfolgen, Bytes
Zeichen in ASCII Code / Unicode
Binäre Darstellung von Zahlen
jpeg für Bilder
mpeg für Musik
17
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Daten versus Information
Betrachte 4 Himmelsrichtungen: N, S, O, W.
Dies sind die möglichen Informationen.
Betrachte Bitfolgen der Länge 2.
Solche Daten dienen der Darstellung -- Struktur.
Betrachte Interpretationen von Bitfolgen.
00 = N, 01 = S, 10 = O, 11 = W -- Semantik.
18
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Einordnung der Informatik als Wissenschaft
Vergleiche Kategorien von Wissenschaften
Gesellschaftswissenschaften
Geschichte, Jura, Philospohie
Naturwissenschaften
Chemie, Physik, Biologie
Ingenieurwissenschaften
Elektronik, Maschinenbau, Informatik?
19
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Einordnung der Informatik als Wissenschaft
Carl Friedrich von Weizsäcker
Strukturwissenschaften
Informatik, Mathematik
20
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Interdisziplinäre Einbettung der Informatik
21
theoretische technische
praktische angewandte
Informatik
Mathematik
Datenverarbeitung
Physik/Elektrotechnik
Andere Disziplinen (Anwendungen)
1. Algorithmen!2. Datenstrukturen!3. Betriebssysteme!4. Datenbanken!5. Programmiersprachen!6. Softwaretechnik
Objekt-orientierte Programmierung und Modellierung
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
OOPM Veranstaltung = eine Art von Einführung in die Informatik
OOPM
Objektorientierte
Programmierung und
Modellierung
23
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Was ist das Programmieren in OOPM?
24
Programmieren = Programmerstellung
Was ist also ein Programm?
Eine mögliche Definition: Ein Programm ist eine Repräsentation einer Eingabe/Ausgabe-Funktion, welche durch einen Rechner interpretiert werden kann.
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
ggT als eine E/A-Funktion in der Programmiersprache Java
25
! public static int ggT(int x, int y) { while (x != y) { if (x > y) x = x - y; else y = y - x; } return x; }
Eingabe
Ausgabe
ggT(6,5) = 1 ggT(6,4) = 2 ggT(9,6) = 3
ggT(12,8) = 4 ...
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Vom Begriff des Programms zum Begriff der Sprache
Sprache = Menge von Programmen einschl. Interpretation
Maschinensprache: Programme sind direkt interpretierbar durch Hardware bzw. (virtuelle) Maschine.
Programmiersprache: Interpretation muss eine extra Abstraktionsstufe überbrücken -- etwa durch Kompilation.
26
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 27ht
tp://
peop
le.ma
ndriv
a.com
/~pr
igaux
/lang
uage
-stu
dy/d
iagra
m-lig
ht.pn
g
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Abstraktionsstufen bei Java
28
http://www.javaworld.com/javaworld
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
ggT in JVM (Java Virtual Machine)
29
public static int ggT(int, int); ! 0: iload_0 1: iload_1 2: if_icmpeq 24 5: iload_0 6: iload_1 7: if_icmple 17 10: iload_0 11: iload_1 12: isub 13: istore_0 14: goto 0
!! 17: iload_1 18: iload_0 19: isub 20: istore_1 21: goto 0 24: iload_0 25: ireturn
kellerbasiert, nicht-strukturiert,
...
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Was ist Objektorientierung in OOPM?
OO ist ein Programmierparadigma.
Andere Programmierparadigmen:
Imperative Programmierung
Deklarative Programmierung
Funktionale Programmierung
Logische Programmierung
30
Zugrundeliegende Prinzipien charakterisieren Programmierparadigmen.
Variablen mit Zuweisung
Funktionen
Logik
Objekte?
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
OO-Paradigma
Objekte = Datenkapseln = Zustand + Verhalten Objekte werden in Klassen klassifiziert.
Personen, Konten, Lehrveranstaltungen, ... Objekte können miteinander verbunden sein.Klassen können in Beziehungen stehen.
31
Nachricht
Daten
Methode
Methoden- auswahl
Methode
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Wo kommen die Programme her?
Probleme: Kontenverwaltung, Videokompression, ...
Programme: (Effektive) Problemlösungen
Spezifikationen: (“Gute”) Problembeschreibungen
Modelle: Abstraktionen von Problemlösungen u.a.
32
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Spezifikationen bzw.
ProblembeschreibungenEigenschaften
unzweideutig vollständigdetailliert
Beispiel: ggTEingabe: x, y positive ganze ZahlenAusgabe: z positive ganze ZahlSpezifikation über x, y, z: z ist ein Teiler von x und y, wobei für jeden anderen solchen Teiler z’ gellten muss dass z’ < z.
33
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Einschub: Begriff des Algorithmus (vergl. Programm)
Ein Algorithmus ist eine detaillierte, endliche Beschreibung zur schrittweisen Lösung eines Problems in endlich vielen Schritten.
Ein abstrakterer Begriff für Programm; Algorithmen sind eventuell in Pseudocode notiert und Konventionen kommen zur Anwendung für die Definition von Ausführbarkeit.
Vergl.: Programme mögen eventuell ...... nicht terminieren,... das gegebene Problem nicht lösen.
34
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Algorithmus für “!” (Fakultät)
Eingabe: natürliche ZahlAusgabe: natürliche ZahlVerfahren:1. Weise Eingabe an Variable n zu.2. Initialisiere r mit 1.3. Wenn n = 0 dann gehe nach 7.4. Weise n * r an r zu.5. Dekrementiere n.6. Gehe nach 3.7. Gib r als Ausgabe aus.
35
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Algorithmische Lösbarkeit
Ein Problem ist algorithmisch lösbar, wenn ein Algorithmus existiert der für beliebige Eingaben die korrekte Ausgabe in endlicher Zeit liefert, vorausgesetzt man gibt dem Algorithmus genug Zeit und Speicher.
Ein Problem ist algorithmisch nicht lösbar, wenn kein solcher Algorithmus existiert. Z.B. das Halteproblem (Entscheidung über die Terminierung eines Programmes in einer Turing-vollständigen Sprache) ist algorithmisch nicht lösbar.
36
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Was machen wir mit komplexen Programmen?
Probleme: Kontenverwaltung, Videokompression, ...
Programme: (Effektive) Problemlösungen
Spezifikationen: (“Gute”) Problembeschreibungen
Modelle: Abstraktionen von Problemlösungen u.a.
37
OO ist ein Paradigma für Programme und Modelle. Damit ist OOPM erklärt!
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Modelle
Ein Modell abstrahiert von einer Problemlösung.
Beispiel:
Die wesentlichen Arten von Objekten (Klassen) in einer Bankanwendung zusammen mit den Beziehungen zwischen den Klassen.
38
Mit Modellen verschwimmt (im positiven Sinne) die starre Grenze zwischen Problembeschreibungen und -lösungen.
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Ein Klassendiagramm (UML-Modell) für eine Bankanwendung
39
Attribute eines Kontos
Verhalten eines Kontos
Eine Klasse für das grundlegende “Konzept”
eines Kontos
Eine Klasse für fortgeschrittene Konten
mit Kredit
Beziehung zwischen den Konzepten:
Klassenvererbung
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Beispielproblem: CAD (Computer Aided Design)
Formen (“shapes”)
Rechtecke
Kreise
Verhalten
Bewegen
Zeichnen
40
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Ein Klassendiagramm (UML-Modell) für die CAD-Anwendung
41
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Sprache = Menge von Programmen oder Modellen (einschliesslich der Interpretation)
Maschinensprache: Programme sind direkt interpretierbar durch Hardware bzw. (virtuelle) Maschine.
Programmiersprache: Interpretation muss eine extra Abstraktionsstufe überbrücken, etwa durch Kompilation.
Modellierungsprache: Ausführbarkeit nicht mehr notwendig gegeben. Interpretation kann “anders” definiert sein.
42
(C) Ralf Lämmel, OOPM, Universität Koblenz-Landau
Zusammenfassung Mechanik dieser LehrveranstaltungDie Informatik als Wissenschaft Objekt-orientierte Programmierung und Modellierung
Java als ProgrammierspracheUML als ModellierungspracheWir werden auch spezifizieren, analysieren, verifizieren.
Ausblick Strukturierte ProgrammierungTesten von ProgrammenNumerische AlgorithmenProgrammierung mit Feldern…
top related