Algorithmen und Programmierung

Ähnliche Dokumente
Algorithmen und Programmierung

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Algorithmen und Programmierung

Algorithmen & Datenstrukturen

Einführung in die Informatik

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Übersicht. Thematik dieser Vorlesung Algorithmische Grundkonzepte. 2 Algorithmische Grundkonzepte

Informatik II Algorithmen & Datenstrukturen

Algorithmen & Komplexität

Algorithmen und Datenstrukturen

Informations- und Kommunikationssysteme

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

Algorithmen und Datenstrukturen

Informatik für Chemieingenieurwesen Sommersemester 2018

Datenstrukturen und Algorithmen

Einführung in die Programmierung

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

Algorithmen und Datenstrukturen

Einführung in die Programmierung

Einführung in die Programmierung Wintersemester 2016/17

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Inhaltsverzeichnis. I Grundlegende Konzepte 1. xiii

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser. 1 Organisation

Algorithmen & Komplexität

1 Algorithmische Grundlagen

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Informatik 1 für Studiengang Elektrotechnik/Kommunikationstechnik

2. Hausübung Algorithmen und Datenstrukturen

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Das Studium im Fach Informatik

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Personen. Termine. Vorlesung. Sommersemester Dr. Tobias Lasser

Angewandte Mathematik am Rechner 1

Einführung in die Informatik

Vorlesung Programmieren

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Einführung in die Informatik

Informatik 1 (WS 2018/2019)

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

Informatikgrundlagen (WS 2016/2017)

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik

Theoretische Informatik

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Logik und Beweisbarkeit

Einführung in die Informatik

Algorithmen und Datenstrukturen 1 Kapitel 5

Datenstrukturen, Algorithmen und Programmierung 2

Informatik II: Algorithmen und Datenstrukturen SS 2013

Einführung in die Informatik

Algorithmen und Datenstrukturen

1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te

Algorithmen und Datenstrukturen

Praktische Informatik I

Grundlagen der Programmierung (Vorlesung 24)

Einführung in die Informatik für Nebenfach. Einleitung

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus

Einführung in die Informatik

Algorithmen und Datenstrukturen

Informatik I: Einführung in die Programmierung

Ingenieurinformatik. Einführung in die Programmiersprache C

Abschnitt 11: Korrektheit von imperativen Programmen

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

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor

Anwesenheit bei den Übungen. Aktive Teilnahme an den Übungen (Vorrechnen) Benotete Klausur am 4. April 2007, Uhr

Algorithmen und Datenstrukturen (für ET/IT)

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

Programmieren 2 - Java

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Kapitel 1: Informationsverarbeitung durch Programme

Informatik Teil 1. für Fernstudiengang der Fakultät Elektrotechnik. Sommersemester 2017

Algorithmen und Datenstrukturen (für ET/IT)

Transkript:

Algorithmen und Programmierung Kapitel 1 Einführung http://www.tu-ilmenau.de/telematik/aup A&P (WS 13/14): 01 Einführung 1 Wer sind wir? Fachgebiet Telematik/Rechnernetze Prof. Dr.-Ing. Günter Schäfer, Raum Zusebau 3042 guenter.schaefer@tu-ilmenau.de Dr. rer. nat. Sascha Grau, Raum Zusebau 3081 sascha.grau@tu-ilmenau.de In dieser Lehrveranstaltung tatkräftig unterstützt von: Martin Backhaus Michael Pfeiffer Web-Adressen: Fachgebiet: http://www.tu-ilmenau.de/telematik Sprechstunde: Montags, 13:00-14:00 Uhr A&P (WS 13/14): 01 Einführung 2

Unsere Forschungsgebiete Allgemein: Architekturen und Protokolle für Kommunikationssysteme Struktur, Entwurf, Leistungsbewertung, Implementierung, Für alle Arten von Kommunikation: Rechnernetze, Sprachkommunikation, Daten und Multimedia-Inhalte, technische Kommunikation (Steuerung) Besonderer Fokus auf Sicherheitsaspekte Spezifische Aspekte: Sicherheitsanforderungen von Diensten Authentizität, Integrität, Vertraulichkeit von Partnerinstanzen und ausgetauschten Daten Sicherheitsaspekte von Protokollmechanismen Welche sicherheitsrelevanten Seiteneffekte implizieren einzelne/mehrere Mechanismen? Schutz von Kommunikationsinfrastrukturen Hauptaspekt: Gewährleistung der Verfügbarkeit von Systemen und angebotenen Diensten A&P (WS 13/14): 01 Einführung 3 Unser weiteres Lehrangebot Sommersemester: VL Informations- und Kommunikationssysteme (AMW) VL Advanced Networking Technologies VL Telematik I (Inf., Ing.Inf., WI, Math) VL Schutz von Kommunikationsinfrastrukturen Hauptseminar Telematik Projektseminar Simulative Bewertung von Internet-Protokollfunktionen Wintersemester: VL Telematik II VL Network Security VL Netzalgorithmen VL Leistungsbewertung Hauptseminar Telematik Projektseminar Simulative Bewertung von Internet-Protokollfunktionen A&P (WS 13/14): 01 Einführung 4

Zum Inhalt dieser Vorlesung 1. Einführung: Historie, Grundbegriffe 2. Algorithmische Grundkonzepte: Sprachen, Grammatiken, Datentypen, Terme 3. Java: Einführung, Programmiergrundlagen 4. Algorithmenparadigmen 5. Algorithmenmodelle 6. Eigenschaften von Algorithmen 7. Ausgewählte Algorithmen 8. Abstrakte Datentypen 9. Objektorientierung 10. Datenstrukturen A&P (WS 13/14): 01 Einführung 5 Zugrundeliegendes Lehrbuch Saake, G.; Sattler, K.: Algorithmen und Datenstrukturen: Eine Einführung mit Java. 3. Auflage, dpunkt-verlag, 2006 512 Seiten, 44.- Website: http://wwwiti.cs.uni-magdeburg.de/iti_db/algoj A&P (WS 13/14): 01 Einführung 6

Zusätzliches Lehrbuch für Ausgewählte Aspekte Manber, Udi: Introduction to Algorithms A Creative Approach. Addison Wesley 1989 478 Seiten, 77.50 (in Bibliothek erhältlich) A&P (WS 13/14): 01 Einführung 7 Weitere Literaturhinweise M.T. Goodrich, R. Tamassia. Data Structures and Algorithms in Java. 3. Auflage, Wiley, 2003. R. Sedgewick. Algorithmen in Java, Teil 1-4. 3. Auflage, Pearson Studium, München, 2002. T. Ottmann, P. Widmayer. Algorithmen und Datenstrukturen. Spektrum Akademischer Verlag, 2000. H. Mössenböck. Sprechen Sie Java? 2. Auflage, dpunkt-verlag, 2003 A&P (WS 13/14): 01 Einführung 8

Zum Ablauf... Alle Infos & Folienkopien unter http://www.tu-ilmenau.de/telematik/aup Veranstaltung besteht aus: 1.5 Vorlesungen pro Woche (da 1 Termin 14-täglich) 1 Kleingruppenübung pro Woche Selbständige Bearbeitung der Übungsblätter (wichtig!) Theorie- & Programmieraufgaben Abgabe jeweils Mittwoch morgen Es müssen in beiden Hälften des Semesters jeweils 50% der Punkte erreicht werden, um die Zulassung zur Modulprüfung zu erlangen (Schein) Klausur A&P (WS 13/14): 01 Einführung 9 Bevor es losgeht... A&P (WS 13/14): 01 Einführung 10

... ein paar Fragen Wer hat im Abi einen Informatik-Kurs belegt? Wer besitzt einen Computer oder hat regelmäßigen Zugang? Wer hat schon mal programmiert? Wer kennt Java (nicht den Kaffee oder die Insel)?... oder Pascal, BASIC, C, etc.? A&P (WS 13/14): 01 Einführung 11 Jetzt geht s los! A&P (WS 13/14): 01 Einführung 12

Teil I Einführung A&P (WS 13/14): 01 Einführung 13 Überblick Vorbemerkungen Grundbegriffe Algorithmen Eigenschaften von Algorithmen Historischer Überblick A&P (WS 13/14): 01 Einführung 14

Worum geht es hier überhaupt? Programmieren als wichtige Tätigkeit von *-Informatikern Anwendungssysteme, Abläufe, Steuerungen / Geräte,... Strukturiertes Denken : systematische und strukturierte Analyse und Lösung von Aufgaben Eindeutige Beschreibung von durch Rechner bearbeitbaren Aufgaben (Algorithmen) A&P (WS 13/14): 01 Einführung 15 Was ist Informatik? (1) Kunstwort aus den 60ern Informatik Information + Technik oder Informatik Information + Mathematik Beabsichtigt: Gegensatz zur amerikanischen Computer Science: nicht nur auf Computer beschränkt Bereiche: Theoretische Informatik: mathematische Modelle, theoretische Konzepte (Logik, Spezifikation, Komplexität) Praktische Informatik: Techniken der Programmierung und Realisierung von Softwaresystemen Technische Informatik: Struktur und Aufbau von Computern Angewandte Informatik: Anwendungen von Informatiksystemen Bindestrich-Informatiken A&P (WS 13/14): 01 Einführung 16

Was ist Informatik? (2) Informatik hat zentral zu tun mit: Systematischer Verarbeitung von Informationen Maschinen, die diese Verarbeitung automatisch leisten ( Computer) Hier: maschinenunabhängige Darstellung Die systematische Verarbeitung wird durch den Begriff Algorithmus präzisiert, Information durch den Begriff Daten A&P (WS 13/14): 01 Einführung 17 Was ist ein Algorithmus? Allgemein: Ein Algorithmus ist eine eindeutige Beschreibung eines in mehreren Schritten durchgeführten (Bearbeitungs-)Vorganges. In der Informatik speziell: Berechnungsvorgänge statt Bearbeitungsvorgänge, Schwerpunkt auf Ausführbarkeit durch (abstrakte) Maschinen. Ein Prozessor führt einen Prozess (Arbeitsvorgang) auf Basis einer eindeutig interpretierbaren Beschreibung (dem Algorithmus) aus. A&P (WS 13/14): 01 Einführung 18

Typische algorithmisierbare Prozesse Kochrezepte Pizza aufwärmen Seeteufel mit Kräuterkruste auf Lauch Bedienungsanleitungen Suchen eines Telefonbucheintrags Herausgeben von Wechselgeld Sortieren von Spielkarten Berechnungsvorschriften Schriftliches Addieren Berechnung der Fakultät (x! = x (x -1) 3 2 1) Berechnung des größten gemeinsamen Teilers A&P (WS 13/14): 01 Einführung 19 Aspekte Notation für Beschreibung Ausdrucksfähigkeit Berechenbarkeit Korrektheit / Genauigkeit / Eindeutigkeit Zeitbedarf / Geschwindigkeit In dieser Vorlesung: Algorithmen für Computer A&P (WS 13/14): 01 Einführung 20

Notation 0! = 1 x! = x (x 1)! X = 20; y = 1; while (x > 1) { y = y * x; x = x 1; } return y; A&P (WS 13/14): 01 Einführung 21 Ausdrucksfähigkeit Verschiedene Notationen = gleiche Ausdrucksfähigkeit? Wahl der Programmiersprache universelle Programmiersprache? Aber, man vergleiche z. B. Bienensprache vs. Sprache zur Wegfindungsprogrammierung für Roboter Hundesprache vs. menschliche Sprache A&P (WS 13/14): 01 Einführung 22

Berechenbarkeit Kann man alles programmieren (berechnen)? Antwort: Nein! Nichtentscheidbare Probleme: Halteproblem: Entscheide, ob ein (beliebiger) gegebener Algorithmus terminiert Semantische Eigenschaften von Algorithmen, z. B.: Berechnen zwei Algorithmen dieselbe Funktion? Ist ein gegebener Algorithmus korrekt, d. h. berechnet er die gegebene (gewünschte) Funktion? Die Beweise hierfür werden in Vorlesungen zur theoretischen Informatik behandelt A&P (WS 13/14): 01 Einführung 23 Korrektheit Algorithmen (Programme) sollen sich wie beabsichtigt verhalten Korrektheit Beispiele für Programmfehler (de.wikipedia.org/wiki/programmfehler) 1962: Verlust der Venus-Sonde Mariner 1 durch fehlenden Bindestrich in einem Fortran-Programm (80 Mill. Dollar) 1996: Zerstörung der Ariane 5-Rakete kurz nach dem Start durch übernommenen und nicht korrekt spezifizierten Programmcode 1999: Verlust der Mars-Sonde Climate Orbiter durch falsches Maßsystem (Yard statt Meter) bei Programmierung A&P (WS 13/14): 01 Einführung 24

Zeitbedarf Wie aufwändig ist ein gegebener Algorithmus? Abschätzung des Aufwands: Unabhängig von konkreter Hardwareleistung (Mooresches Gesetz: Komplexität von integrierten Schaltungen / Rechenleistung verdoppelt sich alle 18 Monate ) In Abhängigkeit von der Problemgröße Für den schlechtesten Fall (worst case) und im Mittel Beispiel: Operation Aufwand n = 2 n = 2 10 n = 2 20 sequenzielle Suche n 2 1024 1048576 Baum-Suche log n 1 10 20 A&P (WS 13/14): 01 Einführung 25 Historischer Überblick: Algorithmen 300 v. Chr.: Euklids Algorithmus zur Bestimmung des ggt, (7. Buch der Elemente): ggt(300, 200) = 100 800 n. Chr.: Muhammed ibn Musa abu Djafar alchoresmi: Aufgabensammlung für Kaufleute und Testamentsvollstrecker (lat.: Liber Algorithmi, Kunstwort aus dem Namen und griechisch arithmos für Zahl) 1574: Adam Rieses Rechenbuch 1614: Logarithmentafeln (30 Jahre für Berechnung!) 1703: Binäres Zahlensystem (Leibnitz) 1931: Gödels Unvollständigkeitssatz 1936: Church sche These A&P (WS 13/14): 01 Einführung 26

Fragen? A&P (WS 13/14): 01 Einführung 27