!"#$"%&&'()*+,-./($ 0123'-)#"+'()+'")'4!"#$"%&&+'"/($5
|
|
- Christel Haupt
- vor 5 Jahren
- Abrufe
Transkript
1 !"#$"%&&'()*+,-./($ 0123'-)#"+'()+'")'4!"#$"%&&+'"/($5 $%&'()*&+,-.)/ A3.B-%C-9-CB-%)D!!8ED!!9 F3-C-)/-,%G-%7.CB7<B0.4)23%1)47.H)I:-% )G&. 6()8+,931:-%4-%)0.1);()6=1-%)10%+,4-'I,%BJ!"#!"#$%#&'()* $%&'(&)*+&*,-./,0/1-2'34'.500'6%&'78*&*'%-'6%&'(,2&'+&*.&/9&-: 6&*'M5*B&*&%/1-2',1G'6,.'L53*,'1-6'6%&'L/16%&->*5C&?/&I !"# <T!'UDI
2 1 Programming in the Large versus Programming in the Small (Titel einer bekannten Publikation von DeRemer und Kron, 1974) Programming in the Large ist die Entwicklung von Software(-Systemen), d.h. die Lösung der organisatorischen Probleme, die Analyse und Spezifikation, die Festlegung der Architektur, die Prüfung der Resultate, die Qualitätssicherung Programming in the Small ist die Programmierung (wobei es eine erhebliche Überlappung gibt, vor allem bei der Architektur und bei der Prüfung). Beides ist wichtig! 3 Die Abstraktion von führt zu Binärzahlen und -Codes Assembler-Sprachen speziellen Rechnerstrukturen Hochsprachen speziellen Operationen Funktionsprozeduren X Typen Generische Einheiten X der Datenimplementierung Kapselung, Information Hiding X der Typimplementierung ADTen X ähnlicher Datentypen Varianten-Records X ähnlicher Operationen Overloading X In der objektorientierten Programmierung werden einige dieser Konzepte zusammengefasst (X) und durch ein neues Konzept, die sogenannte Vererbung, ergänzt. Die Vererbung dient dazu, eine neue Klasse (einen neuen ADT) auf der Basis einer bereits definierten Klasse (eines bereits definierten ADTs) zu definieren. Konzepte der objektorientierten Programmierung Zu Beginn der Informatik (d.h. etwa 1950) war die Programmierung dann gut, wenn sie möglichst effizienten Gebrauch von der (sehr schwachen) Rechnerleistung machte. Im Laufe der Zeit wuchs die Leistung der Rechner dramatisch. Damit war es möglich und sinnvoll, die Belastung des Rechners zu Gunsten des Programmierers zu erhöhen. Die Programmierer erhielten durch die Entwicklung neuer Konstrukte immer mächtigere Konzepte, um komplexe Sachverhalte knapp und (relativ) sicher auszudrücken. Ahnentafel der objektorientierten PSn (extrem vereinfacht) FORTRAN LISP Assembler -Sprachen ADA 83 ALGOL60 PASCAL SIMULA 67 MODULA ALGOL68 BCPL C EIFFEL OBERON SMALLTALK-80 C++ ADA 95 JAVA C#
3 5 Der Paradigmen-Wechsel von der imperativen zur objektorientierten Programmierung Zu Beginn der Entwicklung waren die Programme imperativ, d.h. sie bestanden vor allem aus Befehlen (aus dem Befehlssatz des Rechners). Die Daten spielten eine untergeordnete Rolle. Und sie waren völlig passiv: Datenverarbeitung, d.h. die Daten werden verarbeitet. Im Laufe der Entwicklung verschob sich die Aufmerksamkeit hin zu den Daten. Die Daten wurden als die eigentlichen Gegenstände der Programmierung erkannt, als Objekte. Diese Veränderung löste einen Paradigmenwechsel aus: Das Bild vom Programm schlug um. Heute dominiert das objektorientierte Paradigma, weil es einige Vorteile hat. 7 Objektorientierung: Terminologie und Bewertung Merkmale der Objektorientierung Objekte, Botschaften, Klassen, Vererbung Differenzierungen des Begriffs objektorientierte Programmiersprache Objekte Klassen Vererb. Beispiele Objekt-basiert X ADA, MODULA Klassen-basiert X X CLU objektorientiert X X X SMALLTALK nach: Wegner, P. (1987): Dimensions of object-based language design.oopsla'87 Proceedings, afcet, Paris, Der Paradigmenwechsel zur objektorientierten Programmierung Assemblerprogramm: Imperativ, Daten passiv, unauffällig Pascal-Programm:Daten und Datenstrukturen sind deklariert Ada-Package: Mehrere Prozeduren verwalten eine Datenstruktur Smalltalk-80-Klasse: Die Objekte (Daten) treten in den Vordergrund, Methoden (Prozeduren) sind den Objekten untergeordnet 8 Vorteile der objektorientierten Programmierung Imperative Programmierung: Befehlen + Ausführen = zentralistisches Konzept (Kopf und Glieder) oo Programmierung: Dezentrale Entscheidung und Ausführung (Termitenhaufen) Typisch: Simulation komplexer, nicht zentral gesteuerter Systeme Beispiel: Transportsysteme mit vielen und verschiedenen Transportmitteln, die unabhängig voneinander agieren, aber Waren austauschen.
4 Die objektorientierte Programmierung bringt als Vorteile mit sich: durch Objekte! Kapselung sehr leicht gemacht, praktisch erzwungen. durch Botschaften! Autonomie der Objekte (nicht die Botschaft bestimmt die spezielle Methode, sondern das Objekt durch seine Klasse) durch Klassen! wie beim ADT die Verallgem. des Information Hiding auf Typen Die Bedeutung der Vererbung Die Vererbung ist faktisch ein technisches Konzept: Y erbt von X bedeutet: Klasse Y wird auf der Basis der Klasse X definiert. In Y gilt also alles, was in X gilt (und was nicht in Y widerrufen wurde). Achtung: Mit den beiden üblichen Bedeutungen des Vererbens hat die Vererbung nichts zu tun, das Wort ist irreführend. Die Vererbung kann unterschiedlich eingesetzt werden; die beiden wichtigsten Verwendungen sind: rein technisch: als elegante Form der Code-Wiederverwendung abstrakt: als Ausdruck der Verfeinerung, Spezialisierung 9 durch Vererbung! Übernahme statt Neuschöpfung od. Ausklammern gleicher Teile 11 Die rein technische Interpretation führt zu schwer verständlichen Programmstrukturen. Sinnvoll ist darum nur die abstrakte Interpretation: Ein Objekt der Klasse Y ist auch ein Objekt der Klasse X. In der Terminologie der Syntax begegnen uns die Begriffe Subjekt und Objekt: Satzteil Subjekt Prädikat Objekt Funktion aktiv Handlung passiv Beispiele Maus / Prozessor frisst / verarbeitet den Käse / Daten Das Subjekt ist also jeweils der handelnde Teil, das Objekt ist der betroffene Teil. Daten waren in der imperativen Programmierung passiv, also Objekte. Das ändert sich in der objektorientierten Programmierung. Das Wort oo ist also paradox, denn indem die Objekte Autonomie erlangen, werden sie selbst Subjekte, d.h. das Zugrundeliegende. Ding und Begriff Ding Gegenstand (Objekt) Dieses Stück Kreide Dieser Raum Stuttgart, BRD Rainer Schmidberger Die Beispiele zeigen: Begriff Art, Gattung, Typ (Class) Kreide, ein Stück Kreide Hörsaal Großstadt, Landeshauptstadt Mitarbeiter, Mann, Deutscher, Europäer Ein Ding braucht einen Namen oder muss gezeigt werden. Der Übergang Ding Begriff ist fließend. z.b.: " genau 1 Ding! Ding = Begriff, oder pars pro toto (Repräsentant): Der Hund hat wieder gebellt. Der Hund stammt vom Wolf ab Das Auto hat die Welt verändert.
5 13 Aussagen über Dinge Ding: ist eindeutig (im Sinne der Identität), hat unveränderliche und veränderliche Merkmale, hat eine (i.a. begrenzte) Existenzdauer, steht in Beziehungen und Wechselwirkungen mit anderen Dingen, kann aktiv sein (oder nur passiv). Zu den Merkmalen (i.d.r. den unveränderlichen) zählt die Fähigkeit des Objekts, auf Botschaften einer bestimmten Art zu reagieren. (Zugrundeliegendes Modell: diskrete, d.h. klar abgegrenzte Dinge, charakterisiert durch ebensolche Merkmale. Beziehungen # Dinge) Wenn mehrere Dinge in den (oder den wesentlichen) unveränderlichen Merkmalen übereinstimmen, entsteht durch Abstraktion von der Identität, allgemeiner: von den variablen Merkmalen, ein Begriff. 15 Beispiel konkret Motor Nr.... >> Auto mit Kennz. S-... Auto mit Kennz. S-... >=> Tankstelle XY Auto S-... > > Auto KA-... auf Begriffe übertragen Motor >> Auto Auto >=> Tankstelle Auto > > Auto Beziehungen lassen sich auf die Begriffe verallgemeinern. Motor >> Auto bedeutet: M 1 $ Motor % A 1 $ Auto! M 1» A 1 ist möglich! Folgerungen für die OOP und ihre Terminologie Aus historischen Gründen (Smalltalk) sind folgende Bezeichnungen üblich: Ding = Object & Begriff = Class inherits ( erbt ) >> = >=> uses ( benutzt ) > > sends message to ( schickt Botschaft an ) 14 Beziehungen zwischen Dingen und zwischen Begriffen Begriff kann bedeuten: Abstraktion: Holz arbeitet. (Aussage über alle Dinge $ Holz) Unbestimmtheit: Der Griff ist aus Holz. (Satz über 1 Ding $ Holz) Umschreibung: Er fällte eine Eiche und schnitt das Holz in Bretter. Gegenstand: Holz steht im Lexikon vor Metall. Begriffe können in Beziehung stehen: B2 & B1 Eichenholz & Holz d.h. B2 ist Teilmenge (Spezialisierung) von B1. d.h. Eichenholz ( Holz Dinge können in Beziehung stehen: a) D1 >> D2 D1 ist Teil von D2 b) D1 >=> D2 D1 benutzt D2 c) D1 > > D2 D1 kommuniziert mit D2, wirkt auf D2 ein 16 Beispiel für eine Klassenhierarchie, Mehrfachvererbung Druckerzeugnis ' Buch ' Fachbuch ' ' Informatik-Buch Tagungsband ' ' Mehrfachvererbung Informatik-Tagungsband Nicht-strenge Vererbung: Form kann nur bei Druckerzeugnis frei gewählt werden. Autor kann beim Tagungsband nicht gesetzt werden. Mehrfachvererbung darf nicht zu inkonsistenten Aussagen führen. In JAVA ist sie eingeschränkt durch die sog. Interfaces.
6 17 Beispiel : Verwaltung von Kunden und Lieferanten Imperative Programmierung Beim 2. Versuch, die Ausgabe der Adressen zu schreiben, fällt die Ähnlichkeit der beiden Programmteile auf.! Datenstruktur Adresse vereinheitlichen, die Ausgabeprozedur dazu ausklammern. oop Gemeinsames frühzeitig identifizieren, Klassenhierarchie bilden (Deduktion statt Induktion). z.b. Adressat hier ist die Adresse zugeordnet ' ' Kunde Lieferant Wesentliche Unterschiede zur imperativen Programmierung: ) Gemeinsames kommt vor dem Speziellen ) Die Lösung bleibt für weitere Spezialisierungen offen. Das erfordert auch ein anderes Vorgehen bei der Analyse! 19 Beispiel: Wir betrachten als Klassen A: n-ecke (alle Punkte verschieden) B: 4-Ecke C: Rechtecke D: Quadrate E: Strecken (mit verschiedenen Endpunkten) F: Punkte a) (Spezialfall) D! C! B! A b) (Teilmenge) wie a c) (kann mindestens so viel wie) keine Unterschiede zwischen A, B, C, D bzgl. sich zeichnen, Fläche oder Umfang angeben. aber: D + C können Mittelpunkt angeben, B können Seiten auf verschiedene Werte gesetzt werden. außerdem: D! E! F (nicht umgekehrt) d) (alle oder mehr Merkmale) A! B! C! D! E! F e) (enthält) A! E! F " B! E " C! E " D! E Verwendungen des Vererbungsbegriffs Zwischen B1 und B2 bestehe die Vererbungsbeziehung: B1! B2 Achtung, nach gängiger Praxis erbt hier B1 von B2, nicht umgekehrt! Mögliche Interpretationen dafür sind: a) B1 ist Spezialfall von B2 b) B1 ist Teilmenge von B2 c) Objekte "B1 können soviel wie Objekte " B2 können, und noch mehr. d) Objekte "B1 haben mehr Merkmale als Objekte " B2 e) Objekte " B1 enthalten Objekte " B2 Welche Interpretation für Vererbung ist sinnvoll? Antwort 1: Das ist Geschmackssache Antwort 2: Wir sind zusammen mit vielen anderen Leuten der Meinung, dass die Beziehung erbt von am sinnvollsten zu beschreiben ist durch die Begriffsbeziehung is a (ist ein oder ist eine). Das bedeutet: Wir verwenden die Definition a (= b) Probleme bei der Umsetzung in Programme: Die Programmiersprachen bieten tatsächlich die Beziehungen c und d an (Typerweiterung). Damit lässt sich sehr gut darstellen: Aber nicht: Ein Student ist eine Person. Ein Quadrat ist ein Rechteck
III.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
Mehr1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -
1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von
Mehrn 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -
n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen l
MehrProgrammiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen
Organisation und Einführung Studiengang Informatik Universität Bremen Sommersemester 2010 (Vorlesung am Montag, der 12. April 2010) (Montag, der 12. April 2008) 1 Vorstellung 2 Organisation 3 Einführung
Mehr1.3 Geschichte der Programmiersprachen
50er Jahre erste Definition höherer Programmiersprachen Effizienz maßgebliches Designziel FORTRAN (Backus) als Sprache für wissenschaftliches Rechnen (komplexe Berechnungen, einfachen Daten), Arrays, Schleifen,
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrProgrammierparadigmen
Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich
MehrObjektorientiertes Programmieren
JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist
MehrFunktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
MehrFACHHOCHSCHULE MANNHEIM
Objektorientierte Programmierung 3. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Wiederholung: Begriffsübersicht Strukturierte vs. objektorientierte Programmierung
MehrProgrammierparadigmen A01 OOP. Programmierparadigmen
2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische
Mehr7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
Mehr7. Zusammenfassung (1)
Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering TIT99BPE/TIT99CPE BA Mannheim WS 2001/2 F. Schönleber Organisatorisches Kurs 1: TIT99BPE 6.Studienhalbjahr Termin Mo. 13.00 14.30 Raum: 037B Kurs 1: TIT99CPE 6.Studienhalbjahr
Mehr2. JAVA-Programmierung. Informatik II für Verkehrsingenieure
2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie
MehrObjektorientierte Modellierung (1)
Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist
Mehr10. Programmierungs-Phase: Objektorientierung Software Engineering
10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext
MehrGrundlagen 1: Modelle & Mengen
Michael Wand Institut für Informatik. Angewandte Mathematik am Rechner 1 SOMMERSEMESTER 2017 > Kapitel 2 Grundlagen 1: Modelle & Mengen 2.1 Modelle Grundlagen der Modellierung
MehrProgrammieren in JAVA. Kapitel 0
FG TECHNISCHE INFORMATIK V JV 000 00 TH 01 Programmieren in JAVA Kapitel 0 0. Grundkonzepte der Objektorientierten Programmierung 0.1. Objekte und Klassen 0.2. Kapselung 0.3. Vererbung 0.4. Polymorphie
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
Mehr1 Programmiersprachen 1.1 1
1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Objektorientierte Programmierung Ronja Düffel WS2018/19 09. Oktober 2018 Objektorientierte Programmierung Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das?
MehrObjekte und Objekttypen in 10 Konzepten
in 10 Konzepten Jürgen F H Winkler Friedrich-Schiller-Universität Jena Institut für Informatik psc.informatik.uni-jena.de Carl-Zeiss-Gymnasium, Jena, 5. März 2007 http://psc.informatik.uni-jena.de/themen/pap-talk/obj-types.pdf
Mehrwenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken
1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Mehr1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
Mehr15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595
Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified
MehrProgrammiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -
Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =
MehrEvelin Kofler SE aus Fachdidaktik / Dr. Hubwieser / SS 2002 Seite 1
Wie schülergerecht ist Objektorientierung wirklich? Evelin Kofler SE aus Fachdidaktik / Dr. Hubwieser / SS 2002 Seite 1 Themenschwerpunkte Entwicklungspsychologie: Formen des Denkens Altersstufen Objektorientiertes
MehrHistorischer Abriss Fortran Backus (IBM) Formula Translator Algol 60 Naur et al. Algorithmic Language
Vorbemerkungen Dozent Veranstaltung Inhalt Spann (Rechenzentrum des Mathematischen Instituts) Systemadministration der Linux-Netze der Mathematik wissenschaftl. Arbeitsgebiet: Numerische Mathematik 1.
MehrObjekt-Funktionale Programmierung. am Beispiel von SCALA. Thorsten Jolitz
Objekt-Funktionale Programmierung am Beispiel von SCALA Thorsten Jolitz 1. Auflage 2012 Inhaltsverzeichnis 1. Einleitung 1 1. Ausgangspunkt Imperative Programmierung 5 2. Elemente der Imperativen Programmierung
MehrPrinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
MehrObjektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen
Agenda für heute, 1. April, 2010 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative
MehrALGOL 68 im Aspekt einer modernen Programmiersprache???
ALGOL 68 im Aspekt einer modernen Programmiersprache??? General-purpose-Programmiersprache: Ein sehr wichtiges Kriterium ist die Möglichkeit, alle Algorithmen (=Lösungsverfahren) in einer Programmiersprache
MehrProf. Dr. Jürgen Giesl Lehr- und Forschungsgebiet Informatik 2. Proseminar - 1 -
Prof. Dr. Jürgen Giesl Lehr- und Forschungsgebiet Informatik 2 Proseminar - 1 - Lernziele des Proseminars Wie komme ich zu gesicherten Ergebnissen? Stimmen Angaben? Andere Quellen? Neuere Entwicklungen?
MehrObjektorientierte Konzepte
Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen
MehrEinführung in die objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.
MehrProgrammiersprachen Proseminar
Programmiersprachen Proseminar Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz/Softwaretechnologie Programmiersprachen Proseminar SS 2005 p.1/25 Personen Prof. Dr. Manfred Schmidt-Schauß, Zimmer
MehrObjektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen
Agenda für heute, 26. März, 2009 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Übungsbesprechung (Wiederholung) Wie
Mehr8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure
8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:
Mehrmonika.heiner@informatik.tu-cottbus.de SS 2013 1.4-1 / 16 schrittweise Verfeinerung -> Wirth, 1971, Programm Development by Stepwise Refinement
IMPLEMENTIERUNGSSTRATEGIE bis jetzt: Programmstruktur für Programmieren im Kleinen jetzt: Programmstruktur für Programmieren im Großen zunächst allgemein, d. h. sprachunabhängig monika.heiner@informatik.tu-cottbus.de
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
MehrHistorische Innovationen von Niklaus Wirth
Historische Innovationen von Niklaus Wirth Romain Schmitz 26. Januar 2006 Biografie 1934 geboren am 15. Februar, Schweiz 1959 Abschluss als Elektroingenieur 1963 Promotion, Berekley 1968 Professor an der
MehrProgrammierung Paradigmen und Konzepte
Programmierung Paradigmen und Konzepte Mit 79 Bildern, 85 Beispielen, 130 Aufgaben und Kontrollfragen und 19 Referatsthemen Fachbuchverlag Leipzig im Carl Hanser Verlag 1 Einführung und Überblick 11 1.1
MehrObjektorientierte Softwareentwicklung
Objektorientierte Softwareentwicklung Analyse- und Designmethoden Analyse- & Designmethoden Strukturierte, traditionelle Methoden Objektorientierte Methoden Funktionsorientierte Methoden Datenorientierte
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Objektorientierung Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
MehrFunktionale Programmierung (in Clojure)
Funktionale Programmierung (in Clojure) Einführung Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Wintersemester 2014/15 Übersicht Paradigmen von Programmiersprachen Paradigmen von Programmiersprachen
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrGrundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN
Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:
MehrAngewandte Mathematik am Rechner 1 SOMMERSEMESTER Kapitel 4. Algebra. Michael Wand Institut für Informatik.
Michael Wand Institut für Informatik. Angewandte Mathematik am echner 1 SOMMESEMESTE 2017 Kapitel 4 Algebra Wiederholung Kapitel 3 Funktionen Informatik Algorithmus / Berechnung Mathematik Wohldefinierte
MehrObjektorientierte Programmierung. Kapitel 3: Syntaxdiagramme
Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrObjektorientierung. Objekte
Eine Einführung G. Futschek Objekte Objekte Fragen: Wie unterscheiden sich Objekte? Wie sind Objekte einander ähnlich? Was können Objekte? Wie stehen Objekte zueinander in Beziehung? Objekte Im täglichen
MehrJava Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Prof. Dr. Nikolaus Wulff Agenda: Objektorientierung Grundbegriffe Klasse, Objekt, Attribut, Methode, Nachricht Graphische Darstellung mit UML Die
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrProgrammiersprachen Pascal, Modula-2, Oberon. Charlotte Prieß
Programmiersprachen Pascal, Modula-2, Oberon Charlotte Prieß Überblick Leben Historische Einordung Pascal Modula-2 Oberon Vorteile von Pascal gegenüber C Warum sich C durchgesetzt ist? Leben 1934 geboren
MehrWiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
Organisatorisches VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Nächste Vorlesung: Mittwoch, November 29, 14:15 15:45 Uhr, Roter Hörsaal Webseite: http://algo.rwth-aachen.de/lehre/ws1718/buk.php
MehrSoftware Engineering
Software Engineering Gustav Pomberger, Wolfgang Pree Architektur-Design und Prozessorientierung ISBN 3-446-22429-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22429-7 sowie
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrVL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 Organisatorisches Nächste Vorlesung: Mittwoch,
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrFACHHOCHSCHULE MANNHEIM
Objektorientierte Programmierung 2. Vorlesung Prof. Dr. Peter Knauber Email: P.Knauber@fh-mannheim.de FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Kurzer Vor der Objektorientierung Programmierstile
Mehr2. Einführung. Informatik II für Verkehrsingenieure
2. Einführung Informatik II für Verkehrsingenieure Überblick ZIEL DER EINFÜHRUNG Was ist Informatik Historische Entwicklung von Programmiersprachen 2 Was ist Informatik? 3 Was ist Informatik? FRANZÖSISCH
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
MehrWESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER. Advanced Matlab. living knowledge WWU Münster. Mario Ohlberger, Martin Drohmann, Stefan Girke 10/05/2012
MÜNSTER Advanced Matlab Mario Ohlberger Martin Drohmann Stefan Girke 10/05/2012 Cell Array MÜNSTER 2 /12 Datentyp der beliebige Werte (nicht nur Zahlen) in Zellen speichert die wie einer Matrix oder einem
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 2017/18 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrKapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren
Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik
MehrEinführung in die Programmierung
Einleitung Gliederung Einführung in die Programmierung Wintersemester 08/09 Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrSprachen und Programmiersprachen
Sprachen und Programmiersprachen Natürliche Sprachen versus Programmiersprachen / Spezifikationssprachen Syntax legt die grammatikalische Korrektheit fest. Semantik legt die Bedeutung von syntaktisch korrekten
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Lehrstuhl Prof. Plödereder Eduard Wiebe Institut für Softwaretechnologie Abteilung Programmiersprachen und Übersetzerbau Sommersemester 2007 Programm-Ausführung Programmiersprachen
MehrGrundlagen der Programmierung in C Klassen
Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MehrPraktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl
Praktikum SEP: Java-Programmierung WS 2018/19 Modularisierung Thomas Lemberger und Martin Spießl Basierend auf Folien von Matthias Dangl und Karlheinz Friedberger 1 / 10 Modularisierung Module gliedern
MehrAufgabenblatt 9. Die Abgabe muss bis Sonntag, 21. Juni 2009, 24 Uhr, erfolgen. Verspätet eingereichte Lösungen werden nicht berücksichtigt.
Fachbereich Informatik Prof. Dr. Peter Becker Programmiersprache Java Objektorientierte Programmierung II Sommersemester 2009 8. Juni 2009 Aufgabenblatt 9 Vorbemerkungen Mit diesem Aufgabenblatt können
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
Mehr9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in die
Mehr1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in
MehrSystemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -
Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 5 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 6. Templates
Mehr