! Aktive Beherrschung von Modellierungsmethoden. ! Aktive Beherrschung einiger theoretischer Grundlagen



Ähnliche Dokumente
Grundlagen der Programmierung! Kapitel 1: Einführung! Ziel der Vorlesung Grundlagen der Programmierung! Überblick über das Einführungs-Kapitel!

!" Aktive Beherrschung von Modellierungsmethoden! !" Aktive Beherrschung einiger theoretischer Grundlagen!

! Der Begriff des Systems!! Definition eines Informatik-Systems! ! Wie entwickeln wir Informatik-Systeme?!

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

!"Der Begriff des Systems!!"Definition eines Informatik-Systems!!"Wie entwickeln wir Informatik-Systeme?!

Inhalte des Moduls Programmieren 1

Kapitel 2 - Die Definitionsphase

Praktische Informatik I

Universität Karlsruhe (TH)

Was ist Informatik? Alexander Lange

Vorlesungsinhalte. Programmiersprachen: Haskell 98: funktional, höherer Ordnung, polymorph typisiert, Interpreter

Informatik I. Einführung in Java. Begrüßung. Zusatzveranstaltung

28/37 Anlage zur Studienordnung des Studienganges Bachelor of Science Informatik Studienablaufplan/ Modulübersichtstabelle

III.1 Prinzipien der funktionalen Programmierung - 1 -

Informatik Allgemeines Einführung

Programmieren 2 - Java

Gibt es eine eigenen Didaktik für das Hauptund das Nebenfach sowie weitere Differenzierungen?

Vorlesung Programmieren

Das Praktikum mit Seminar vertieft die in der Vorlesung erworbenen Fähigkeiten in theoretischer und praktischer Hinsicht:

Java-Programmierung mit NetBeans

! Der Begriff des Systems! Definition eines Informatik-Systems! Wie entwickeln wir Informatik-Systeme?

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Einführung in die Programmierung Wintersemester 2016/17

Umbuchungen im Bachelor-Studiengang Technische Informatik für den Wechsel von der PO 2010 zur PO 2017

Abschnitt 10: Datenstrukturen

Zwei-Fächer- und Fachbachelor Informatik Studium an der Universität Oldenburg. Dr. Ute Vogel Fachstudienberaterin Informatik

Informatik I: Einführung in die Programmierung

Einführung in die Programmierung

Einführung in die Programmierung

Einführung in die Programmierung

Programmierparadigmen A01 OOP. Programmierparadigmen

Einführung in die Programmierung

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Programmierparadigmen

Formale Entwicklung objektorientierter Software

Algorithmische Mathematik und Programmieren

Umbuchungen im Bachelor-Studiengang Technische Informatik für den Wechsel von der PO 2010 zur PO 2017

Das Doppelpack für die Informatik

Intensivübung zu Algorithmen und Datenstrukturen

Umbuchungen im Bachelor-Studiengang Informatik für den Wechsel von der PO 2009 zur PO 2017

Informatik 1 (WS 2018/2019)

Algorithmik. Vorkurs Informatik WS 2016/2017. Dennis Aumiller

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

Zum Buch Hinweise Handhabung des Buchs Website In eigener Sache... 19

Analyse und Entwurf von Softwaresystemen mit der UML

Liste MI / Liste I Programmieren in C++

Aufgaben zum Skriptum Informatik

allgemeine Übersicht / Struktur

(in der Fassung vom 27. Juli 2017)

Informatik 2-stündig

Objektorientiertes Programmieren

ORGANISATORISCHES. So#ware Technik Prof. Dr. Wolfgang Schramm

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Fachgruppe Informatik. Anwendungsfächer. im Bachelor-Studiengang Informatik. Fachstudienberatung Bachelor Informatik Dr.

Algorithmik. Vorkurs Informatik WS 2018/2019. Dennis Aumiller

Das Studium im Fach Informatik

Praktische Informatik I

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Vorlesung Programmierung

Umbuchungen im Bachelor-Studiengang Informatik für den Wechsel von der PO 2009 zur PO 2017

Vorlesung Programmierung

Erste Änderungssatzung zur Studienordnung für den Bachelorstudiengang Informatik an der Universität Leipzig

Objektorientierte Softwaretechnik

Einführung in die Modellierung

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Polyvalenter Bachelor Lehramt Informatik

Programmiersprache. Emily & rica

Informatik-Seminar. Auftakt. Informatik. Grundlagen

Informatik 1. für Kommunikationstechniker, Mechatroniker. Teil 1 - Wintersemester 2012/13

Definitionen/Vorarbeit zum Thema Java

Informatikgrundlagen (WS 2016/2017)

Die Technische Universität München und die Fakultät für Informatik. Julie Mäding

Objektorientierte Programmierung (OOP)

I.1. Organisatorisches - 1 -

2. Einführung. Informatik II für Verkehrsingenieure

Achtjähriges Gymnasium. Informatik

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Unified Modelling Language

C++ Templates - eine kleine Einführung. Funktionstemplates. Fabian Scheler, Peter Ulbrich, Niko Böhm. 20. Oktober 2008

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany

Vorkurs Informatik WiSe 17/18

Programmierung Paradigmen und Konzepte

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Grundlagen der Informatik I (Studiengang Medieninformatik)

Angewandte Mathematik und Programmierung

Abschnitt 11: Korrektheit von imperativen Programmen

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Security - 04 Cryptology #1

Studiengang Bachelor Informatik

Übersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,

Transkript:

Ziel der Vorlesung Grundlagen der Programmierung Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München intersemester 2008/2009 Kapitel 1: Einführung! 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 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 1 2 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 2 Überblick über das Einführungs-Kapitel as ist Informatik?! as ist Informatik?! as sind die Aufgaben der Informatik?! Realität und Modell! Beispiele von Informatik-Systemen Informatik ist die issenschaft 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) Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 3 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 4

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)! artung: Die Bereitstellung und Betreuung des Informatik-Systems elche Fähigkeiten benötigt der heutige Informatiker?! Lösungen von Problemen aus der irklichkeit! Modellierung mit statischen und dynamischen Strukturen (Subsysteme, Klassen, Datenstrukturen und Algorithmen, Automaten)! Formale Spezifikation von solchen Modellen! iederverwendung von issen (Entwurfsmuster)! Analyse und Synthese von Datenstrukturen und Algorithmen! Beherrschung von Methoden (z.b. Rekursion) erkzeugen (z.b. Compiler) Sprachen (z.b. Java)! Ein gutes Verständnis der theoretischen Grundlagen! Fähigkeit zur Gruppenarbeit! Interaktion mit Kunden (Reden, Schreiben, Verhandeln) Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 5 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 6 irklichkeit und Modell arum Modelle?! irklichkeit : 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.! irklichkeit nennen wir im folgenden auch oft Realität.! Der Mensch nutzt Modelle um Details in der irklichkeit wegzulassen, so dass man mit einfacheren Schritten zu Schlüssen kommen kann. ir nennen das Abstraktion.! Der Mensch nutzt Modelle um Einsichten in Vergangenes und Bestehendes zu gewinnen; um Vorhersagen über zukünftiges Verhalten zu bekommen. Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 7 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 8

as ist ein gutes Modell?! I:! M : Abbildung, die Gegenstände der irklichkeit auf ihre Begriffe im Modell M abbildet (Interpretation) mit folgender Eigenschaft: Ist f M : M! M eine beliebige Beziehung zwischen Begriffen in M, dann soll es auch in eine Beziehung f :! geben, so dass folgendes Diagramm gilt: I M f M f M I Das Bild der Interpretation ist dasselbe wie die Interpretation des Bildes (kommutierendes Diagramm) Modelle sind falsifizierbar! Der ahrheitsgehalt eines Modells ist niemals völlig sicher nach menschlichem Ermessen nach dem heutigen Stand der Erkenntnis! Popper ( Objective Knowledge): Es gibt keine absolute ahrheit bei der Modellierung der irklichkeit. ir können nur Modelle von der irklichkeit bauen, die solange wahr sind, bis ein Gegenbeispiel gefunden wird ( Falsifizierung ).! Beziehungen, die im Modell M gelten, haben ihre Entsprechung in der irklichkeit. Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 9 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 10 Modelle von Modellen von Modellen...! Modellierung ist ein relativer Begriff. Man kann auch ein Modell wieder als reale elt auffassen und davon ein weiteres Modell (mit noch mehr Abstraktionen) erstellen. I 2 I 1 M 2 M 1. f M2 f M1 f M 2 M 1 I 2 I 1 Die Erstellung von Informatik-Systemen kann als Transformation von Modellen gesehen werden: Analyse, Entwurf, Implementation,Testen Systemarten! issenschaften 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.! issenschaften 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. Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 11 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 12

as ist ein System? Informatik-Systeme! 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.! Diese Vorlesung beschäftigt sich mit Informatik-Systemen Informatik-Systeme werden oft auch Datenverarbeitungssysteme genannt.! as ist ein Informatik System? ir 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 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 13 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 14 Typ 1: Berechnung von Funktionen! Ein System, das eine Funktion f: A! B berechnet, die einen Definitionsbereich A in einen ertebereich 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 eitere Beispiele für die Berechnung von Funktionen! Übersetzer (Compiler), Assembler! Klimavorhersage, ettervorhersage! olkenbewegung: Neues Satellitenbild = f (Altes Satellitenbild, ind, Ort, Höhe) 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; } Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 15 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 16

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. Beispiele für Prozessüberwachung! System zur Beeinflussung des Verkehrsflusses an einer Straßenkreuzung! Beispiel aus der Informatik: Betriebssystem! 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. Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 17 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 18 Typ 3: Eingebettetes System Adaptives 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! Ein (eventuell eingebettetes) System, das sich Veränderungen der irklichkeit 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 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 19 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 20

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 irklichkeit (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 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 21 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 22 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, http://wwwbruegge.in.tum.de/lehrstuhl/informatik1ise2003 http://wwwbruegge.in.tum.de/lehrstuhl/informatik2sose2004! eiterführende Literatur: Bernd Bruegge, Allen Dutoit: Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java, Pearson Studium, 2004, ISBN 3-8273-7082-5 Copyright 2008 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM intersemester 2008/09 Kapitel 1, Folie 23