Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Anhang D: Zusammenfassung

Ähnliche Präsentationen


Präsentation zum Thema: "Anhang D: Zusammenfassung"—  Präsentation transkript:

1 Anhang D: Zusammenfassung
Wie jede Wissenschaft befasst sich die Informatik mit ihren eigenen „Objekten“. Was diese „Objekte“ sind und was man mit diesen Objekten machen kann - und wie - wird in dieser Vorlesung auf eher abstraktem Niveau, aber immer mit Beispielen aus der Realität eines Informatikers (oder einer Informatikerin), erläutert. Diese Vorlesung konzentriert sich auf den „Kern“ der Informatik. Vertieftere Einführungen in z.B die Bereiche der Programmierung, Rechnerarchitekturen, Betriebssysteme, etc. sollen daher bewusst den entsprechenden Veranstaltungen vorbehalten bleiben Inhalt Informatik Information und Codes Zeichen und Zahlen Datenstrukturen Algorithmenentwurf Algorithmentheorie Sprachen

2 Kapitel 1 Informatik 1962 wurde der Begriff „Informatique“(als Kombination der Begriffe „Information“ und „automatique“) von Philippe Dreyfus, einem französischen Ingenieur eingeführt und als „Informatik“ ins Deutsche übernommen. Als junge Wissenschaft ist die Informatik mittlerweile in viele Bereiche der älteren Wissenschaften eingezogen und hat viele eigene Bereiche neu erschlossen. Die Informatik ist damit mittlerweile wesentlich mehr, als der anglo-amerikanische Begriff „Computer-Science“ vermuten lässt. Dieses Kapitel möchte einen (kurzen) Überblick über exemplarische Inhalte, Struktur und Geschichte der Informatik geben Inhalt Motivation Definition Die Teilgebiete der Informatik Die Geschichte der Informatik Zusammenfassung des Kapitels

3 1.2 Was ist Informatik Jedes Lehrbuch der Informatik gibt seine Definition der „Informatik“. Auch der Duden beschreibt die Informatik als „Wissenschaft von der systematischen Verarbeitung von Informationen, besonders der automatischen Verarbeitung mit Hilfe von Digitalrechnern“. Durch die Beschränkung auf den Aspekt der „Verarbeitung“ geht diese Definition meines Erachtens nicht weit genug. Ich werde daher in diesem Unterkapitel eine eigene Definition wagen. Die dabei verwendeten Aspekte werden exemplarisch verdeutlicht, wobei bewusst in Grenzbereiche der Informatik gegangen wird . Was die Informatik wirklich ist, kann kein Lehrbuch erfassen. Sie werden - hoffentlich - am Ende Ihres Studiums eine sehr weitreichende Idee davon haben. Inhalt Definition Beispiele

4 1.3 Die Teilgebiete der Informatik
Wie viele Wissenschaften, ist die Informatik kein homogenes Gebilde, sondern lässt sich anhand unterschiedlicher Kriterien in Teilgebiete strukturieren. Dieses Kapitel beschreibt die wohl geläufigste Einteilung der Informatik in drei, bzw. vier Teilbereiche. Inhalte Technische Informatk Praktische Informatik Theoretische Informatik ( Angewandte Informatik )

5 1.4 Die Geschichte der Informatik
Die Informatik ist eine junge Wissenschaft, hat aber, ähnlich wie andere Natur- und Ingenieurwissenschaften Wurzeln, die weit in die Menschheitsgeschichte hineinragen, Wie keine andere Wissenschaft wurde die Informatik jedoch von der Erfindung eines Gerätes, dem programmgesteuerten Rechner (später „Computer“) beeinflusst. Dieses Unterkapitel wird die Wurzel in der Menschheitsgeschichte und auch die Entwicklung des Rechners vorstellen. Inhalt Information in der Geschichte Automaten und Steuerungen Erleichterung der Rechenarbeit Pioniere der Informatik - Praktiker Pioniere der Informatik - Theoretiker Die Generationen

6 1.5 Zusammenfassung des Kapitels
Die Informatik befasst sich mit der automatisierten Erfassung, dem Transport, der Speicherung, Verarbeitung und dem Umsetzen von Information Die Informatik ist eine „naturwissenschaftliche Ingenieurswissenschaft“ Die Informatik gliedert sich in Technische, Praktische, Theoretische und Angewandte Informatik Die Geschichte der Informatik beginnt im Altertum, besteht in Ihrer heutigen Form aber erst seit ca Zur Zeit befinden wir uns in der 4. Generation.

7 Kapitel 2 Information und Codes
Information ist der grundlegende Begriff in der Informatik - dieses Kapitel erläutert diesen Begriff: Zunächst wird Information in ihrer Repräsentation als „Nachricht“ betrachtet und damit einige Maßzahlen definiert. Danach wird auf die Repräsentation von Information in der Informatik und deren Maßzahlen eingegangen. Schließlich wird auf die Möglichkeiten zur Umsetzung - Kodierung - von Information eingegangen Inhalt Was ist Information Definition nach Shannon Definition in der Informatik Codes

8 2.2 Definition nach Shannon
Information hat vielfältige Repräsentationsformen. Noch vor Entstehen der Informatik als Wissenschaft hat Claude Elwood Shannon ( ) wichtige Maßzahlen zur Erfassung von Information definiert. Dabei geht er von der nachrichtentechnischen Repräsentation von Information, der „Nachricht“ aus. Dieses Unterkapitel stellt diese Maßzahlen und deren Grundlagen dar. Inhalt: Nachricht Informationsgehalt einer Nachricht Informationsgehalt eines Zeichens Mittlerer Informationsgehalt

9 2.3 Definition in der Informatik
Die Wurzeln der Informatik liegen weniger in der Nachrichtentechnik, als vielmehr in der Mathematik. Darum ist die Repräsemtation von Information als Nachricht weniger relevant als die Darstellung von Zahlen (in binärer Repräsentation) und algebraischen (bool‘schen) Objekten. In diesem Unterkapitel geht es um diese Repräsentationen. Inhalt Das Bit in der Informatik Die Darstellung des Bit Beispiel Das Byte und mehr

10 2.4 Codes Damit Information in einem Rechner verarbeitet werden kann, muss sie in eine für den Rechner verarbeitbare Form transformiert werden. Dabei kann man sich beliebig ungeschickt anstellen. Dieses Unterkapitel beschreibt, wie eine solche Transformation funktionieren kann, welche Möglichkeiten man dabei hat und gibt ein Maß für die Qualität einer Transformation an. Inhalt Was ist ein Code Willkürliche Codes Codes zur Optimierung der Codelänge Codes zur Fehlererkennung und –korrektur Redundanz

11 2.5 Zusammenfassung des Kapitels
Was ist Information Definition nach Shannon Nachricht Informationsgehalt einer Nachricht / Zeichens Mittlerer Informationsgehalt Definition in der Informatik Das Bit in der Informatik Die Darstellung des Bit Das Byte und mehr Codes Was ist ein Code Willkürliche Codes Huffman: Codes zur Datenkompression Hamming: Codes zur Fehlererkennung und –korrektur Redundanz

12 Kapitel 3 Zeichen und Zahlen
Auch wenn Objekte der realen Welt beliebig komplex in Zusammen-setzung uns Struktur sind, so werden sie in den meist auf zwei einfache Repräsentationen - als Abstraktion - abgebildet: Zeichen und Zahlen. Dieses Kapitel beschreibt, wie diese Objekte in eine für den Rechner verarbeitbare Form kodiert werden können. Inhalt Kodierung von Zeichen Darstellung von Zahlen

13 3.1 Kodierung von Zeichen Die Wurzeln der Informatik liegen in der Mathematik. Die ersten „Computer“ waren Rechner im wörtlichen Sinne, deren Aufgabe die Verarbeitung von Zahlen war. Mittlerweile hat sich der Aufgaben-schwerpunkt in Richtung „Elektronischer Datenverarbeitung“ ver-schoben, wobei als Datum immer weniger Zahlen im Mittelpunkt stehen, als vielmehr Texte. Dieses Unterkapitel beschreibt verschiedene Möglichkeiten die „Atome“ eines Textes, die Buchstaben, zu kodieren. Inhalt ASCII EBCDIC UNICODE

14 3.2 Darstellung von Zahlen
Die Darstellung von Zahlen spielt in der Informatik nach wie vor eine wichtige Rolle. Dabei gibt es unterschiedliche Mengen von Zahlen und auch unterschiedliche Operationen auf Zahlen. Dieses Unterkapitel beschreibt die Grundlagen der Zahlenkodierung, gibt für alle Mengen von Zahlen eine konkrete Kodierung an und führt in die Computerarithmetik ein. Inhalt Zahlensysteme Konvertierung Arithmetik Ganze positive Zahlen Ganze negative Zahlen Gebrochene Zahlen Gleitpunktzahlen Standards

15 3.3 Zusammenfassung des Kapitels
Kodierung von Zeichen ASCII EBCDIC UNICODE Darstellung von Zahlen Zahlensysteme Konvertierung Arithmetik Ganze positive Zahlen Ganze negative Zahlen Gebrochene Zahlen Gleitpunktzahlen Standards

16 Kapitel 4 Datenstrukturen
Information aus der realen Welt werden in einem informationsver-arbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte) Abstraktion der Wirklichkeit dar und spiegeln in vielen Fällen die Strukturen der Wirklichkeit wider. In diesem Kapitel wird ein Überblick über die wichtigsten abstrakten Datenstrukturen gegeben, wobei dieser Begriff zum Begriff des „Datentyps“ erweitert wird. Inhalt Datenstrukturen - Datentypen Datentypen: Ein Überblick Konkrete Datentypen Abstrakte Datentypen

17 4.1 Datenstrukturen - Datentypen
In der Literatur wird meist der Begriff „Datenstruktur“ verwendet. In diesem Unterkapitel soll der Unterschied ziwschen diesem Begriff und dem Begriff des „Datentyps“ erläutert werden. Inhalt Datenstrukturen Datentypen Variablen eines Datentyps

18 4.2 Datentypen: Überblick
Nachdem sich nun der Begriff des „Datentyps“ als Oberbegriff der „Datenstruktur“ erwiesen hat, konzentrieren wir uns im Rest des Kapitels auf wichtige Datentypen. In diesem Unterkapitel wird ein Klassifikationssystem für die in der Informatik verwendeten Datentypen aufgestellt und kurz erläutert Inhalt Klassifikation der Datentypen Erläuterung der Klassifikation

19 4.4 Abstrakte Datentypen Datenstrukturen
Grundsätzlich lassen sich alle Objekte der realen Welt ausschließlich mit Hilfe einfacher Datentypen abbilden. Diese Abbildung ist aber meist „unnatürlich“, weil sie die Struktur realer Objekte nicht ausrei-chend berücksichtigt. Abhilfe schaffen hier strukturierte Datentypen, die allerdings grundsätzlich nur endliche Objektmengen repräsen-tieren können. Hier schaffen Zeigertypen Abhilfe. Kann man nun mit diesen Mitteln Strukturen realer Objekt natürlich abbilden, so fehlen diesen Datentypen einige der Eigenschaften, die Datentypen von Datenstrukturen unterscheiden, dies sind insb. Operationen und Beziehungen zu anderen Typen. Einen vertieften Einblick in die bunte Welt abstrakter Datentypen bietet die Vorlesung des 2. Semesters Datenstrukturen

20 4.5 Zusammenfassung des Kapitels
Datentypen Idealisierte Abstrakte Konkrete Einfache Strukturierte Pointer(Zeiger) Boolean (Wahrheitswert) Integer (Ganzzahl) Char (Zeichen) Enumeration (Aufzählung) Ordinale Real (Fließkomma) Array (Feld) Record (Verbund) Union (Variantenverb.) ... Wir sind damit auch an die Grenzen dessen gelangt, was in dieser Vorlesung über die „Statik“ von Objekten gesagt werden soll und wenden uns einem noch spannenderem Themenbereich zu ;-)

21 Kapitel 5 Algorithmenentwurf
In den vorangegangenen Kapiteln wurde, aufbauend auf dem Begriff der Information, beschrieben, wie die statischen Objekte der Informatik aussehen und notiert werden können. In diesem Kapitel wird aufgezeigt, wie man die Verarbeitung dieser Objekte (also die Dynamik) beschreiben kann. Wesentlicher Begriff dabei ist der Begriff des Algorithmus Inhalt Ein Beispiel Definition Die Struktelemente Strukturierung Blockung Iteration und Rekursion Teile dieses Kapitels sind aus: R.Manthey: Vorlesung Informatik 1, Uni Bonn, 2001

22 5.1 Ein Beispiel Zunächst soll ein kleines Beispiel in eine mögliche Aufgabenstellung aus dem (bekannten) Bereich der Mathematik einführen und dadurch auch eine (eingeschränkte) Vorstellung über die Aufgaben und Elemente eines Algorithmuses geben. Inhalt Das Problem (Beispiel) Ein Algorithmus I Ein Algorithmus II Vergleich der Algorithmen Ein Algorithmus III Fragestellungen Ein weiterer Algorithmus

23 5.2 Definition Der Begriff des Algorithmus ist zentral in der Informatik und soll in diesem Unterkapitel formal definiert werden Inhalt Herkunft Der Algorithmus Beispiel: Algorithmenbeweis Weitere Prinzipien Algorithmen und Programme Ausflug: Algorithmus und WinOSe

24 5.3 Strukturelemente Um die Dynamik - also die Abfolge von Aktionen - eines Algorithmu-ses zu beschreiben, benötigt man formale Beschreibungsmittel, sowie eine Festlegung, wie diese Beschreibungmittel zu notieren und zu interpretieren sind. Dieses Unterkapitel stellt die formalen Beschreibungsmittel für Algorithmen vor. Diese Beschreibungsmittel sind dabei gleichzeitig Strukturierungselemente für Algorithmen, denn sie definieren die Struktur von Algorithmen. Inhalt: Die Elemente Folge Auswahl Wiederholung

25 5.4 Strukturierung Mit Hilfe atomarer Elemente und der Kontrollelemente lassen sich Algorithmen strukturieren. In diesem Kapitel sind einige Begriffe zur Strukturierung erläutert. Insbesondere wird ein weiteres - viertes - Kontrollelement vorgestellt (und auch gleich wieder verworfen) Inhalt Control Flow Strukturierung durch Sprung Strukturiert-iterative Beschreibungsform Strukturierungstypen

26 5.5 Blockung Mit Hilfe der bislang vorgestellten Kontrollelemente lassen sich die atomaren Elemente (Anweisungen) eines Algorithmus‘ zu einem Kontrolfluss strukturieren. Wie wir gesehen haben, kann dieser Kontrollfluss mehr oder weniger „wohlstrukturiert“ sein. In diesem Unterkapitel wird eine Element beschrieben, mit dem Aktionen statisch nochmals zusammengefasst werden können. Diese Zusammenfassung hat auch Einfluss auf das dynamische Verhalten von Verarbeitungsobjekten (Variable). Inhalt: Die Idee Notation Formale Parameter Beispiel: Ein einfacher Block Eigenschaften Beispiel: Seiteneffekte Vorzeitiges Verlassen Goldene Regeln

27 5.6 Iteration und Rekursion
Im Bereich der Datenstrukturen haben wir es oft mit rekursiven Strukturen z.B. Bäumen zu tun. Auch in der Mathematik sind rekursive Definition weit verbreitet.und finden über zugehörige Algorithmen Einzug in die Informatik. Das Konzept der Rekursion wird in der Informatik allerdings teilweise mit Skepsis umgesetzt, führt es doch, in ungeeigneten Fällen, zu inakzeptablen Laufzeiten. Hinzu kommt, dass einige Programmier-spachen (z.B. FORTRAN) Rekursion nicht unterstützen. In diesem Unterkapitel soll auf die Möglichkeiten der Verwendung von Rekursion bzw. Iteration eingegangen werden Inhalt Definition Beispiele Aufrufverwaltung Wo nicht Wo nicht und wo

28 5.7 Zusammenfassung des Kapitels
Ein Beispiel Drei Algorithmen im Vergleich zur Lösung einer quadratischen Gleichung Definition des Algorithmenbegriffes Definition und dessen Anwendung im Beispiel. Weitere Prinzipien und der Zusammenhang von Algorithmen und Programmen. Strukturelemente: Die „atomaren“ Elemente und die Konstruktionselemente Folge, Auswahl, Wiederholung Strukturierung Der Begriff des Control Flows und das Problem der Strukturierung mit Sprung Blockung Prinzip und Beispiele, Probleme und Regeln Iteration und Rekursion Definition, Realisierung, wo und wo nicht

29 Kapitel 6 Algorithmentheorie
Im vorangegangenen Kapitel wurde beschrieben, mit welchen Elementen Algorithmen aufgebaut werden, und was man dabei zu beachten hat. Dieses Kapitel geht nun darauf ein, ob ein Problem überhaupt algorithmisch fassbar ist, ob eine gefundener Algorithmus auch das tut was er soll und wieviel Zeit bzw. Platz er dafür benötigt. Inhalt Berechenbarkeit Korrektheit Komplexität Teile dieses Kapitels sind aus: R.Manthey: Vorlesung Informatik 1, Uni Bonn, 2001

30 6.1 Berechenbarkeit Wir haben den Begriff und die Elemente eines Algorithmus vorgestellt und Algorithmen zur Lösung von Problemen verwendet. In diesem Unterkapitel werden nun einige Fragen zur Anwendbar- und Sinnhaftigkeit von Algorithmen gestellt und beantwortet. Inhalt: Einige Fragen Das Entscheidungsproblem Die Turing-Maschine Berechenbarkeit Rekursive Funktionen Church‘sche These H. Ernst:“Grundlagen und Konzepte der Informatik“,Vieweg-Verlag,2000

31 6.2 Korrektheit Wir haben diskutiert, ob man jede (mathematische) Funktion berechnen kann und haben dabei die Äquivalenz eines Algorithmus‘ mit berechenbaren Funktionen gesehen. In diesem Unterkapitel geht es nicht mehr nur darum, ob eine Funktion berechenbar ist, bzw. ein Algorithmus für deren Berechnung existiert, sondern ob der gegebene Algorithmus tatsächlich das macht, was er machen soll Inhalt Ansatz Definition Logik zur Verifikation (C.A.R. Hoare) Regeln Terminierung Beispiele Beweis des Euklid‘schen Algorithmus Kritische Anmerkungen U.Kastens:“Modellierung“, Vorlesung WS‘00/‘01, Uni Paderborn

32 6.3 Komplexität In diesem Kapitel haben wir den Begriff „Berechenbarkeit“ definiert als all das, was algorithmisch beschreibbar ist. Wir haben eine Methode vorgestellt, mit der man (meist) zeigen kann, dass ein Algorithmus das tut was er soll. Was noch fehlt - und hier behandelt werden soll - ist die Frage nach dem Zeit- und Platzbedarf eines Algorithmus. Inhalt Wie „gut“ ist ein Algorithmus Die O-Notation Häufige O-Ausdrücke Einige Regeln Quantitatives Platzbedarf

33 6.4 Zusammenfassung des Kapitels
Berechenbarkeit: Einige Fragen und das Entscheidungsproblem Die Turing-Maschine und der Begriff der Berechenbarkeit Rekursive Funktionen und die Church‘sche These Korrektheit Ansatz und Definition Logik zur Verifikation: Die Hoare‘schen Regeln Beispiele und Beweis des Euklid‘schen Algorithmus Kritische Anmerkungen Komplexität Wie „gut“ ist ein Algorithmus und die O-Notation Häufige O-Ausdrücke und einige Regeln bei deren Anwendung Quantitatives Platzbedarf

34 Kapitel 7 Sprachen Wir haben Information als grundlegenden Begriff der Informatik eingeführt und über Codes und Datenstruktur abstrahiert. Andererseits haben wir den Umgang mit Information, zunächst am einfachen Beispiel (Rechnen mit Zahlen in beliebigen Zahlensystemen), dann abstrakter und mächtiger mit Hilfe von Algorithmen kennengelernt. Dieses Kapitel führt nun in die wesentliche Anwendung dieser grundlegenden Überlegungen ein. Es beschreibt die fundamentalen theoretischen Grundlagen von Sprachen im Allgemeinen und Programmiersprachen im Besonderen. Inhalt Programmiersprachen Syntax und Semantik Reguläre Ausdrücke Endliche Automaten Grammatiken

35 7.1 Programmiersprache Programmiersprachen sind das Mittel der Informatik, Algorithmen problemorientiert zu formulieren. Die wichtigen Begriffe „Programmiersprache“ und „Programm“ sind dabei - zumindest was den zweiteren betrifft - nicht ganz klar und sollen zunächst kurz eingeführt werden. Danach soll ein sehr kurzer Überblick über die Entwicklung von Programmiersprachen gegeben werden, der mit einem Resumée abschließt. Inhalt Was ist eine Programmiersprache Was ist ein Programm Generationen von Programmiersprachen Programmiersprachen heute

36 7.2 Syntax und Semantik Im vorangegangenen Unterkapitel haben wir Programmiersprachen als präzise, vollständig und eindeutig beschrieben. Diese Beschreibung trifft tatsächlich aber nicht auf alle Aspekte der Sprache zu. In diesem Unterkapitel sollen nun die Aspekte einer Programmier-sprache beschrieben werden, sowie die Möglichkeiten, diese Aspekte zu beschreiben. Inhalt Syntax vs. Semantik Syntax Semantik

37 7.3 Reguläre Ausdrücke Im vorangegangenen Unterkapitel haben wir gesehen, dass die lexikalische Analyse auf einer formalen Beschreibung der lexikalischen Strukturen einer Programmiersprache aufbaut. Diese formale Beschreibung ist die der „regulären Ausdrücke“. Dieses Unterkapitel führt nun in die regulären Ausdrücke ein. Inhalt Beispiel Definition: reguläre Ausdrücke Definition: reguläre Sprachen UNIX-Notation Beispiele

38 7.4 Endliche Automaten Wie wir gesehen haben, lassen sich die Grundelemente einer Programmiersprache, die Token, durch reguläre Ausdrücke formal beschreiben. Es gibt nun eine zweite äquivalente Beschreibungsart, die zudem der Ausgangspunkt für eine maschinelle Überprüfung von Wörtern bezüglich gegebener regulärer Ausdrücke ist: Endliche Automaten. Diese sind Gegenstand dieses Unterkapitels Inhalt Definition Graphische Darstellung Funktionsweise Beispiel: NEA, DEA Automaten und reguläre Ausdrücke

39 7.5 Grammatiken Die Grundsymbole einer Programmiersprache, die deren lexikalische Struktur definieren, lassen sich mit Hilfe regulärer Ausdrücke beschreiben und mit endlichen Automaten überprüfen. Reguläre Sprachen bzw. endl. Automaten sind aber nicht mächtig genug, komplexere Strukturen wie z.B. syntaktische Strukturen einer Programmiersprache zu beschreiben. Dieses Unterkapitel stellt nun eine Beschreibungsform vor, die auch (bestimmte) komplexere Strukturen, wie sie typisch für Programmiersprachen sind, zu beschreiben vermag: Grammatiken. Inhalt Beispiel aus der deutschen Sprache Definitionen Notationen Chomsky Hierarchie

40 7.6 Zusammenfassung des Kapitels
Programmiersprache Was ist eine Programmiersprache / ein Programm Generationen von Programmiersprachen / Programmiersprachen heute Syntax und Semantik Syntax vs. Semantik Syntax / Semantik Reguläre Ausdrücke Definitionen: reguläre Ausdrücke und reguläre Sprachen UNIX-Notation Endliche Automaten Definition, Graphische Darstellung und Funktionsweise Automaten und reguläre Ausdrücke Beispiel aus der deutschen Sprache Definition und Notationen Chomsky Hierarchie


Herunterladen ppt "Anhang D: Zusammenfassung"

Ähnliche Präsentationen


Google-Anzeigen