Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

EINI Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido

Ähnliche Präsentationen


Präsentation zum Thema: "EINI Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido"—  Präsentation transkript:

1 EINI Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido

2 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Gliederung Prolog Teil II Anmerkungen zur "Informatik" Ziel der Veranstaltung Schwerpunkte Aufbau der Veranstaltung Literatur

3 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik" Ziel: –Knappen Überblick über die Informatik geben, damit der Stoff dieser Vorlesung eingeordnet werden kann. Kernaspekt der Informatik –Erster Ansatz: (Wie später zu sehen, nur ein Aspekt!) Informatik ist die Wissenschaft, die die methodische Beherrschung algorithmisch lösbarer Probleme behandelt. Wesentlich: algorithmisch lösbares Problem und damit Begriff des Algorithmus.

4 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik" –Hier nur intuitive Begriffsbestimmung. –"Definition" (korrekt: informelle Umschreibung) : Ein Algorithmus ist ein Verfahren zur Lösung von Einzelproblemen einer definierten Problemklasse. Dieses Verfahren ist formal so präzise definiert, daß es im Prinzip von einer Maschine (rein mechanisch) ausgeführt werden kann.

5 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik" Beispiel: –Wir sagen: eine Zahl n N ist gerade, gdw. es eine Zahl m N gibt, so daß gilt: n = m + m. –Diese Eigenschaft kann rein mechanisch an ihrer Dezimaldarstellung entschieden werden: Algorithmus: Test auf Geradheit –gegeben: Ziffernfolge z –gesucht: Ist die dargestellte Zahl gerade? –Damit ist die Problemklasse definiert: Jede Ziffernfolge ist ein Einzelproblem der Klasse –Lösung: z stellt gerade Zahl dar letzte Ziffer {0,2,4,6,8}.

6 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik" Algorithmus: Test auf Geradheit Fortsetzung –Die Lösung des vorgelegten Einzelproblems ist die (korrekte) Antwort auf die –Frage: Stellt die Ziffernfolge eine gerade Zahl dar oder nicht? Mathematisch korrekt ? (Übung) –Diese Antwort lautet: ja oder nein.

7 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik" Ableitung typischer Fragestellungen und damit Teilgebiete der Informatik –Spezifikation Wie werden Problemklassen und Einzelprobleme genügend exakt formuliert? – Verifikation Eine Problemklasse läßt sich häufig durch eine Funktion, d.h. durch eine Abbildung f: I -> 0 (I: Inputs; O: Outputs) beschreiben. Ein Algorithmus A stellt zwischen den Eingaben und Ausgaben ebenfalls eine solche Abbildung dar f A : I -> 0, wobei I die Eingabemenge und 0 die Aus- gabemenge ist.

8 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik – Verifikation (Fortsetzung) Man sagt: Der Algorithmus A ist korrekt bezüglich f, wenn gilt: f A = f, d.h. wenn A die spezifizierte Ein- Ausgabefunktion f realisiert. Der Nachweis dieser Korrektheit ist i.a. ein schwieriges Problem und wird mit Verifikation bezeichnet. –Programmierung: Wie wird das Verfahren beschrieben? Welche sprachlichen Mittel stehen zur Verfügung? Diese Fragen führen auf sehr unterschiedliche Rechenmodelle, die man zur Berechnung der Ein- Ausgabefunktion benutzen kann.

9 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik –Datenstrukturen: Objekte, auf denen unsere Algorithmen operieren. Die Objekte, die durch Algorithmen manipuliert werden, können strukturiert sein. Die Strukturierung dieser Objekte ist auf das engste mit der Darstellung des Algorithmus verbunden. --> !! Algorithmus und Datenstruktur hängen somit untrennbar zusammen.!! Jede Formulierung eines Algorithmus enthält eine Beschreibung der Daten, auf denen der Algorithmus operiert.

10 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik –Effizienz: Frage: Wenn verschiedene Algorithmen, etwa A und B, die gleiche Funktion zwischen Eingaben und Ausgaben herstellen (realisieren), wie kann man beurteilen, ob einer von ihnen besser ist als der andere? Zwei wichtige Maße zur Beurteilung von Algorithmen: Zeitkomplexität Raumkomplexität Diese Maße können zum Vergleichen von Algorithmen verwendet werden.

11 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik –Entwurfsmethodik (--> Software Engineering): Wie entwickelt man komplexe Algorithmen/Systeme ? Behandlung von Fehlern? Wiederverwendbarkeit Modifizierbarkeit Projektmanagement –Syntax-Semantik: Beispiel: ROM Informatik ist nicht: akademischer Programmierkurs Einweihung in die letzten noch offenen Geheimnisse eines konkreten Rechners.

12 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik Weitere Versuche, den Begriff "Informatik" zu erfassen: – "Informatik" nach Informatik Spektrum (1985) Informatik ist die Wissenschaft von der systematischen und automatisierten Verarbeitung von Informationen. Sie erforscht grundsätzliche Verfahrensweisen der Informationsverarbeitung und allgemeine Methoden ihrer Anwendung in den verschiedensten Bereichen. Für diese Aufgabe wendet die Informatik vorwiegend formale und ingenieurmäßig orientierte Techniken an. Durch Verfahren der Modellbildung sieht sie beispielsweise von den Besonderheiten spezieller

13 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik Datenverarbeitungssysteme ab; sie entwickelt Standardlösungen für die Aufgaben der Praxis. –Diese Umschreibung sagt wenig über Inhalte, jedoch viel über die Methodik dieser Wissenschaft. Formale Methoden Modellbildung: Modelle = Abstraktionen von realen Sachverhalten –Die Themen in diesen Gebieten umfassen u.a.:

14 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik –Theoretische Informatik Mathematische Maschinen Automatentheorie Formale Sprachen (Syntax Theorie) Semantik von Programmiersprachen Berechenbarkeit Komplexität von Algorithmen Schaltwerktheorie/Theorie des Logikentwurfs Abstrakte Datentypen Theorie paralleler Prozesse Künstliche Intelligenz

15 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik –Praktische Informatik Programmiersprachen (Anwendung, Methodik) Datenstrukturen und ihre Implementationen Compilerbau Betriebssysteme Datenbanken und Informationssysteme Software Engineering Computer Grafik und CAD Kommunikations-Software, Rechnernetze Expertensysteme Bildverarbeitung Mensch-Maschine-Interaktion

16 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik –Technische Informatik Rechnerarchitektur Speicherorganisation und -Technologie Schaltnetzwerke und Mikroprogrammierung Mikroprozessoren VLSI Entwurf Telekommunikation, Rechnerverbund (--> Internet, WWW) Peripheriegeräte Spracheingabe Bildabtastung

17 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik – Angewandte Informatik z.B. Medizinische Informatik (d.h. Informatik (resp. Geräte der Informatik), eingesetzt in der oder für die Medizin) --> Praktisch alle Lebensbereiche werden heute von der Informatik berührt/ durchsetzt –Informatik und Gesellschaft v.a. gesellschaftliche Auswirkungen der Informatik

18 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik "Informatik" nach "Brauer-Münch: Studien- und Forschungsführer Informatik, 3. Auflage, Springer 1996" –" Das Gebiet der Informatik läßt sich wegen ihres universellen Charakters nicht einfach eingrenzen; der Begriff Informatik kann nicht knapp definiert werden, er hat sich in den letzten Jahren stark erweitert und wird sich schnell weiterentwickeln." –Dennoch: –" Informatik läßt sich... kennzeichnen durch die drei Begriffe Intelligenz-Formalismen-Technik

19 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik Etwas allgemeiner: –" Informatik ist die (Ingenieur-) Wissenschaft von der theoretischen Analyse und Konzeption der organisatorischen und technischen Gestaltung sowie konkreten Realisierung von (komplexen) Systemen aus miteinander und mit ihrer Umwelt kommuni- zierenden (in gewissem Maß intelligenten und autono- men) Agenten oder Akteuren, die als Unterstützungs- systeme für den Menschen in unsere Zivilisation eingebettet werden müssen.

20 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Anmerkungen zur "Informatik (Mit Agenten/Akteuren sind Softwaremodule, Maschinen (zum Beispiel Staubsauger) oder roboterartige Geräte gemeint.)"(Interpunktion geändert) – Geht also deutlich über die Sichtweise von "Informatik" als "Computerwissenschaft" hinaus !! –Informatik hat Bezug zu fast allen Bereichen !!!

21 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Vorbemerkung zu "Sprache" –Denken Sprache –Fachsprachen: für komplexe Sachverhalte mit akzeptablem Aufwand für Fachleute –Programmiersprache: syntaktische Form, um Problemlösungen zu beschrei- ben muß von Maschine interpretiert werden können –>Der Programmierer muß genau wissen, wie die Maschine die vereinbarte Sprache interpretiert.

22 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Weniges zur Historie –in den 30er Jahren: Präzisierung von - berechenbare Funktion - Algorithmus –(Turing-Maschine, -rekursive Funktion, -Kalkül) –in den 40er Jahren: Reale technische Entwicklung von Rechenmaschinen: K. Zuse, J. v. Neumann,.... –Auf Maschinen bezogene Programmiersprachen: Maschinensprache: nutzt direkt Registerstruktur, ALU der konkreten Maschine. Assemblersprache: symbolische Namen, mnemonische Bezeichnungen für Operationen ("Add")

23 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen "Höhere" Programmiersprachen: abstrakter, verwenden komplexe "Formeln" Geeignete Übersetzungsalgorithmen (Compiler, Assem- bler,..) erlauben (automatische) Rückführung auf "niedere" Sprachen. –Unterschiedlich ausgeprägte Sprachen gestatten unterschiedlich gut, gewisse Denkweisen (siehe unten) zu unterstützen.

24 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Klassifikation nach "Denkweisen" (Paradigmen) –"Problemorientiert": Erlaubt, eine abstrakte Maschine zu definieren mit: –Speicherplätze für Datenobjekte, beschrieben durch (Programm-)Variable –Wertzuweisung (Assignment) – Expliziter Kontrollfluß (GOTO, FOR-Schleife,....) (Jedoch abstrakt an Maschine (- nach "unten" -) orientiert) Diese Sprachen werden auch imperative/prozedurale Sprachen genannt. Beispielsprachen: –FORTRAN - BASIC - PASCAL - C

25 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Klassifikation nach "Denkweisen (Forts.) –Funktionsbezogene Programmiersprachen: Spezifikation des Eingabe - Ausgabeverhaltens für ein Problem als Funktion –f : I -->O Black-Box: Beispielsprachen: –LISP (List Processing, Datenstruktur: Listen (MacCarthy seit 1960) –Abkömmlinge/Dialekte:.. SCHEME(am MIT entwickelt) –Möglich, hierin rein funktional zu programmieren Syntax sehr einfach Konzentration auf die Semantik –Programme werden i. d. R. mit Hilfe eines Interpreters ausgeführt.

26 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Klassifikation nach "Denkweisen (Forts.) –Relationen- (Logik-)bezogene Programmiersprachen: Relation auffaßbar als Menge von Beziehungen zwischen Objekten. Beispiel: - ist Kind von -: Peter ist Kind von Ursula Ursula ist Kind von Ute Relationen mit Mitteln der Prädikatenlogik formalisier- bar.

27 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Klassifikation nach "Denkweisen (Forts.) Logisches Programm: –Datenbasis (Menge von vorgegebenen Relationen) –Menge von Regeln –Goal (Anfrage): Behauptung, daß eine Beziehung besteht. Interpreter versucht hier, mit Hilfe der Methoden des formalen Beweisens der Prädikatenlogik Goals zu beweisen. Beispielsprache: PROLOG

28 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Klassifikation nach "Denkweisen (Forts.) –Objektorientierte Programmiersprachen - Zentraler Begriff: Objekt: Größe/Entität beschrieben durch: Eigenschaften, die einem Objekt eigen sind. –Z.B. Punkt "hat" die Koordinaten (x,y) Operationen, die daran ausgeführt werden können. –Z.B.: - Verschieben eines Punktes um (x,y) - Abfrage, in welchem Quadranten ein Punkt liegt. - Zentrales Vorgehen: Operationen an Objekten ausführen --> Message passing

29 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Programmiersprachen und Denkweisen Klassifikation nach "Denkweisen (Forts.) –Zentrales Anliegen: Effizientes Strukturieren der Beschreibung von Objekten --> Klassen, Klassenhierarchie (--> Vererbung) "Objektorientiertes" Programm beschreibt i.a. Kommunikation zwischen Objekten –Beispielsprachen: Smalltalk, Eiffel, BETA (Vorläufer: Simula), C++, weitere Erweiterungen imperativer Sprachen (z.B. Objective C, Object Pascal,...) Java

30 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Ziel der Veranstaltung Praktische Einführung in einige Methoden der Informatik, insbesondere in die Programmie- rung. Einführung in eine Programmiersprache [C++] Einblick in wichtige Algorithmen [Sortieren, Suchen, Numerik,...] Überlegungen zur systematischen Konstruktion von Programmen

31 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Schwerpunkte Erlernen einer Programmiersprache Studium wichtiger Grundalgorithmen In diesem Semester: prozedurale Programmierung mit C und einer Hinwendung zu C++ Im nächsten Semester: objektorientierte Programmierung mit C++

32 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich VorlesungÜbungenPraktikum Aufbau der Veranstaltung

33 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Literatur A. E. Aho, J. D. Ullman: Foundations of Computer Science. Computer Science Press, Rockville, MD, 1992/1996 (Teil I) A. E. Aho, J.E. Hopcroft, J.D. Ullman: Data Structures and Algorithms. Addison-Wesley, Reading, MA, 1982 (II) T. H. Corman, C.E. Leiserson, R. L. Rivest: Introduction to Algorithms. The MIT Press, Cambridge, MA, 1990 (II) N. Josuttis: Objektorientiertes Programmieren Addison- Wesley, Bonn, 1994 (I)

34 Kapitel 0: PrologVorl EINI-I"Prof. Dr. G. Dittrich Literatur N. Josuttis: Die C++-Standardbibliothek. Addison- Wesley, Bonn, 1996 (I/II) Kernighan, B., Ritchie, D.: Programmieren in C, Hanser Verlag, München, (I) Prinz, P., Kirch-Prinz, U.: Objektorientiert programmie- ren mit ANSI C++, Prentice Hall, München, 1998 (II) Ellis,M., Stroustrup, B.: The annotated C++ Reference Manual, Addison-Wesley, Reading MA, 1990 M. Schader, S. Kuhlins: Programmieren in C++. Springer-Verlag, Berlin, 1993 (I)


Herunterladen ppt "EINI Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido"

Ähnliche Präsentationen


Google-Anzeigen