Grundlagen der Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
Automation and Drives SIMATIC Software STEP 7 V5.4 Highlights der neuen STEP 7 Version SIMATIC Software.
Advertisements

Das Studium der Informatik
Einführung in die Informatik: Programmierung und Software-Entwicklung
Anwendungen des OODM auf die ADB / NDB
Zusammenfassung des Kapitels 8
„Such-Algorithmen“ Zusammenfassung des Kapitels 11
Design by Contract with JML - Teil 2
Java: Objektorientierte Programmierung
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Proactivity for nomadic devices
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 3 Claudio Moraga, Gisbert Dittrich FBI Unido
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Kapitel 19 Astronomie Autor: Bennett et al. Unsere Galaxis, die Milchstraße Kapitel 19 Unsere Galaxis, die Milchstraße © Pearson Studium 2010 Folie: 1.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 Model View Controller Pattern.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Seminar SE: MDE 1 FG Software Engineering Software Engineering Seminar Model Driven Engineering Seminar des Fachgebiet Software Engineering Ruben Jubeh,
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
? Was ist Informatik? Was ist Informatik? Alexander Lange
Grundlagen der Programmierung
Gerne will ich euch einladen zu feierlichen Rituale - Rituale haben das Besondere, die ursächlich Kraft in sich - wurden stets zur Förderung des menschlichen.
Infotronik/Mechatronik-Programm. Warum Infotronik studieren? INFOrmatik und ElekTRONIK bestimmen immer mehr unser tägliches Leben!
Die Denkweise der Kinder, das Lernen und Lehren.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 0: Einführung Prof.
Intelligente selbständige Roboter Science Fiction oder Science
Proseminar zu Schellings „Vom Ich als Prinzip der Philosophie“
Einleitung.
OOD – Object Oriented Design II
VS one Veranstalter: VSone Feb. 08 Folie 1 Copyright by XML-Serialisierung zur Persistierung von Objekten Thomas Schissler
Gesellschaft und Bildung im Wandel: Und die Schule?
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Hauptgebiete der Informatik
- Untersuchung von Realitätsnahen Problemen mit Funktionen
Anwendungsentwicklung. … überlegen sie mal… Wir beschäftigen uns mit dem Aufbau der Arbeitsweise und der Gestaltung von betrieblichen Informationssystemen.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Warum verschwand die Antimaterie?
Betriebliche Aufgaben effizient erfüllen
Inhalt Was ist A-Plan? Einsatzgebiete Organisation der Daten
Diplom-Wirtschaftsinformatiker Certified Information Systems Auditor
Michael Lukas, Beate Wallner
Transdisziplinarität Balance zwischen Spezialisierung und Vernetzung Herbert Pietschmann Emeritus der Fakultät für Physik Universität Wien.
AUS DER SICHT DES HIMMELS IST WEIHNACHTEN IMMER EIN FEST DER LIEBE
OpenSource Loadbalancer im Vergleich zu kommerziellen systemem Thomas stahl Diplomarbeit SS 2002.
Problemen beim Managen von Projekten:
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 37 Version 1.0a Datenmodellierung Modell –Abbild eines Wirklichkeitsausschnittes –Abstraktion – Reduktion auf.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Grundlagen der Programmierung
Gameplay Systems I Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2012 Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Ressourcen in Process-Aware Information Systems Paul Hübner | | DBIS Seminar Betreuer : Andreas Lanz Quelle : Seven Fallacies.
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Algorithmen und Datenstrukturen Übungsmodul 6
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer
Aufbau der IDES-Modellunternehmung und deren Abbildung in SAP CRM
Ressourcen in Process-Aware Information Systems Paul Hübner | | DBIS Seminar Betreuer : Andreas Lanz.
Ressourcen in Process-Aware Information Systems Paul Hübner | | DBIS Seminar Betreuer : Andreas Lanz Quelle : Seven Fallacies.
Ressourcen in Process-Aware Information Systems Paul Hübner | | DBIS Seminar Betreuer : Andreas Lanz.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Objektorientierte (OO) Programmierung
Fachrichtung Theoretische Informatik
Systemanalyse BA Heidenheim 2002.
Methodische Grundlagen des Software-Engineering
 Präsentation transkript:

Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2009/2010 Kapitel 1: Einführung 2

Ziel der Vorlesung Grundlagen der Programmierung Aktive Beherrschung von Modellierungsmethoden Modellierung von Problemen aus der Realität Konstruktion von Lösungen mit Hilfe der Informatik Systematisches Entwickeln einer Lösung in Form eines Informatik-Systems mit Hilfe von Programmiersprachen Aktive Beherrschung einiger theoretischer Grundlagen Algorithmus, Algebra, Verifikation, Automaten Aktive Beherrschung verschiedener Programmierparadigmen Funktionale, objektbasierte/imperative und objektorientierte Programmierung Aktive Beherrschung der Programmiersprache Java Die Vorlesung ist aber kein Programmierkurs für Java Aktive Beherrschung von Abstraktion

Überblick über das Einführungs-Kapitel Was ist Informatik? Was sind die Aufgaben der Informatik? Realität und Modell Beispiele von Informatik-Systemen

Was ist Informatik? Informatik ist die Wissenschaft von der theoretischen Analyse und Konzeption von Informatiksystemen (Theoretische Informatik) der organisatorischen und technischen Gestaltung von Informatiksystemen (Systembezogene Informatik) der Realisierung von Informatiksystemen, insbesondere der technischen Komponenten (Hardware) (Technische Informatik)

Aufgabe des Informatikers Analyse: Das Verständnis von Problemen aus der Realität Realität ist dabei ein soziales System (z.B. eine Firma, eine Versicherungsgesellschaft), ein physikalisches System (z.B. die Erde, das Universum), oder ein künstliches System (z.B. ein System das von Informatikern geschaffen wurde). Synthese (Design): Die systematische Entwicklung einer Lösung des Problems Die Evaluierung und Verwendung von (existierenden/neuen) Hardware-und Softwarebausteinen Implementation: Die Konstruktion der Lösung Mit Hilfe eines Informatik-Systems (auch Datenverarbeitungssystem genannt) Wartung: Die Bereitstellung und Betreuung des Informatik-Systems

Welche Fähigkeiten benötigt der heutige Informatiker? Lösungen von Problemen aus der Wirklichkeit Modellierung mit statischen und dynamischen Strukturen (Subsysteme, Klassen, Datenstrukturen und Algorithmen, Automaten) Formale Spezifikation von solchen Modellen Wiederverwendung von Wissen (Entwurfsmuster) Analyse und Synthese von Datenstrukturen und Algorithmen Beherrschung von Methoden (z.B. Rekursion) Werkzeugen (z.B. Compiler) Sprachen (z.B. Java) Ein gutes Verständnis der theoretischen Grundlagen Fähigkeit zur Gruppenarbeit Interaktion mit Kunden (Reden, Schreiben, Verhandeln)

Wirklichkeit und Modell Wirklichkeit W: Dinge, Personen, Abläufe in der Zeit, Beziehungen zwischen diesen Gegenständen Modell M: Begriffe von (real existierenden oder nur gedachten) Dingen, Begriffe von Personen, Begriffe von Abläufen in der Zeit, Beziehungen zwischen diesen Begriffen. Wirklichkeit nennen wir im folgenden auch oft Realität.

Warum Modelle? Der Mensch nutzt Modelle um Details in der Wirklichkeit wegzulassen, so dass man mit einfacheren Schritten zu Schlüssen kommen kann. Wir nennen das Abstraktion. um Einsichten in Vergangenes und Bestehendes zu gewinnen; um Vorhersagen über zukünftiges Verhalten zu bekommen.

Was ist ein “gutes” Modell? I: W M : Abbildung, die Gegenstände der Wirklichkeit W auf ihre Begriffe im Modell M abbildet (Interpretation) mit folgender Eigenschaft: Ist fM : M  M eine beliebige Beziehung zwischen Begriffen in M, dann soll es auch in W eine Beziehung fW : W W geben, so dass folgendes Diagramm gilt: Das Bild der Interpretation ist dasselbe wie die Interpretation des Bildes (kommutierendes Diagramm) fM fW M W I Beziehungen, die im Modell M gelten, haben ihre Entsprechung in der Wirklichkeit W.

Modelle sind falsifizierbar Der Wahrheitsgehalt eines Modells ist niemals völlig sicher “nach menschlichem Ermessen” “nach dem heutigen Stand der Erkenntnis” Popper (“Objective Knowledge): Es gibt keine absolute Wahrheit bei der Modellierung der Wirklichkeit. Wir können nur Modelle von der Wirklichkeit bauen, die solange “wahr” sind, bis ein Gegenbeispiel gefunden wird (“Falsifizierung”).

Modelle von Modellen von Modellen... Modellierung ist ein relativer Begriff. Man kann auch ein Modell wieder als reale Welt auffassen und davon ein weiteres Modell (mit noch mehr Abstraktionen) erstellen. Die Erstellung von Informatik-Systemen kann als Transformation von Modellen gesehen werden: Analyse, Entwurf, Implementation,Testen …. I2 M2 fM2 M1 W I1 fM1 fW

Systemarten Wissenschaften die sich mit Systemen beschäftigen: Naturwissenschaften (Physik, Chemie, Biologie): Beschäftigen sich mit natürlichen Systemen (Kosmos, Mensch, Bienenstock). Ziel ist das Verständnis der Natur. Humanwissenschaften (Psychologie, Soziologie): Beschäftigen sich mit sozialen Systemen (Nation, Gemeinde, Gruppe, Studentenschaft, Unternehmen, Markt). Ziel ist das Verständnis des Menschen. Wissenschaften der künstlichen Systeme (Elektrotechnik, Maschinenbau, Informatik): Beschäftigen sich mit künstlichen Systemen (Regelkreise, Eisenbahnen, Informatik-Systeme). Ziel ist das Verständnis des Verhaltens von künstlichen Systemen.

Was ist ein System? Ein System ist eine gedankliche Konstruktion. Ein System kann in vielerlei Hinsicht gesehen werden. 2 wichtige Ansichtsarten: Statische Sicht: Ein System ist eine komplexe Ansammlung von Elementen zusammen mit den Beziehungen zwischen den Elementen. Dynamische Sicht: Ein System ist eine Folge von Zustandsübergängen. Ein Informatik-System ist ein System, das auf einem Rechner ausgeführt wird.

Informatik-Systeme Diese Vorlesung beschäftigt sich mit Informatik-Systemen Informatik-Systeme werden oft auch Datenverarbeitungs-systeme genannt. Was ist ein Informatik System? Wir kategorisieren Informatik-Systeme in 4 Typen, die wir im folgenden vorstellen: Typ 1: Berechnung von Funktionen Typ 2: Prozessüberwachung Typ 3: Eingebettete Systeme Typ 4: Adaptive Systeme

Typ 1: Berechnung von Funktionen Ein System, das eine Funktion f: A  B berechnet, die einen Definitionsbereich A in einen Wertebereich B abbildet. Beispiel: Umrechnung zwischen Fahrenheit und Celsius : C = 5.0 * (F - 32.0) / 9.0 oder F = 9.0 * C / 5.0 + 32.0 public class Temperature { public Temperature() {} public double FahrenheitToCelsius( double temp ) { return 5.0 * (temp - 32.0) / 9.0; } public double CelsiusToFahrenheit( double temp ) { return 9.0 * temp / 5.0 + 32.0;

Weitere Beispiele für die Berechnung von Funktionen Übersetzer (Compiler), Assembler Klimavorhersage, Wettervorhersage Wolkenbewegung: Neues Satellitenbild = f (Altes Satellitenbild, Wind, Ort, Höhe)

Typ 2: Prozessüberwachung Ein endlos laufendes System, das Eingangsdaten von anderen Systemen (Prozessen, Menschen) empfängt und Ausgangsdaten an solche Systeme sendet. Die Ausgangsdaten können den Start oder den Halt anderer Systeme (Prozesse, Menschen) bewirken. Die Ausgangsdaten sind eine Funktion der Eingabedaten und der Systemgeschichte. Systeme, die während der Laufzeit Daten einlesen und ausgeben, so dass diese noch während der Laufzeit des Systems extern weiterverarbeitet werden können, nennen wir interaktive Systeme.

Beispiele für Prozessüberwachung System zur Beeinflussung des Verkehrsflusses an einer Straßenkreuzung Beispiel aus der Informatik: Betriebssystem (Windows 2000, Linux, MacOS)

Typ 3: Eingebettetes System Ein System, das im Verbund mit Komponenten, die nicht der Datenverarbeitung dienen, eine Aufgabe löst. Die anderen Komponenten können technische Aparaturen, aber auch Menschen oder betriebliche Organisationen umfassen. Beispiele: Elektronischer Bremskraftverstärker in einem Auto Space Shuttle Kontrollsystem Steuerung eines Mobiltelefons oder einer Digitalkamera

Adaptives System Ein (eventuell eingebettetes) System, das sich Veränderungen der Wirklichkeit anpasst, insbesondere auch solchen, die das System selbst hervorruft. Das ursprüngliche Modell ist nicht auf Dauer gültig. Beispiele: Regelkreis Soziales System: Ökosystem Intelligentes Tutorsystem

Inhalte der Vorlesung Grundlagen der Programmierung Informatik-Systeme statische Sicht auf Systeme dynamische Sicht auf Systeme Algorithmen und Datenstrukturen Information und Repräsentation Textersetzungs-Systeme Funktionale Programmierung Objektbasierte (imperative) Programmierung Objektorientierte Programmierung Automaten und formale Sprachen …

Zusammenfassung Informatik ist Problemlösung Modellierung ist dabei sehr wichtig. Das zu lösende Problem kann aus der Realität wie auch aus den Anforderungen eines Kunden kommen. Informatiker ist Optimist: Das Modell beschreibt die Wirklichkeit (das Problem). Ziel der Informatik ist das Verständnis von künstlichen Systemen. 4 Arten von Informatik-Systemen: Berechnung von Funktionen, Prozessüberwachung, Eingebettete Systeme, Adaptive Systeme

In der Vorlesung verwendete Literatur Broy: Informatik: Eine grundlegende Einführung Band 1: Programmierung und Rechnerstrukturen Springer Verlag, ISBN 3-540-63234-4 Goos: Vorlesungen über Informatik Band 1: Grundlagen und funktionales Programmieren Springer Verlag, ISBN 3-540-62880-0 Band 2: Objektorientiertes Programmieren und Algorithmen Springer Verlag, ISBN 3-540-64340-0 Bernd Brügge: Vorlesungen „Einführung in die Informatik I und II“, Studienjahr 2003/04, Weiterführende Literatur: Bernd Bruegge, Allen Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java, 3rd Edition. Prentice Hall, NJ, 2009; ISBN: 0-13-606125-7