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

Ähnliche Dokumente
Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

Informatikgrundlagen (WS 2015/2016)

Algorithmen und Datenstrukturen

Algorithmen und Berechnungskomplexität I

Algorithmen und Datenstrukturen CS1017

Einführung in die Informatik 1

Grundlagen der Informatik I (Studiengang Medieninformatik)

Algorithmen und Datenstrukturen

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Vorlesung Berechenbarkeit und Komplexität. Motivation, Übersicht und Organisatorisches

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

Programmieren I + II

Logik und diskrete Strukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Algorithmik - Kompaktkurs

Algorithmen und Programmierung

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Praktische Informatik I

Einführung in die Programmierung

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Berechenbarkeit und Komplexität

Webbasierte Programmierung

Algorithmen und Datenstrukturen Laufzeitabschätzung

Algorithmen und Datenstrukturen Einführung

Modulbeschreibung Fakultät Gebäudetechnik und Informatik gültig ab WS 2010/11. Niveaustufe: Bachelor

Grundlagen der Programmierung

Modellierung und Programmierung 1

Grundlagen: Algorithmen und Datenstrukturen

Programmierkurs II. C und Assembler

Datenstrukturen und Algorithmen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2013/14

Vorlesung: Montag 8:15-10:00 Donnerstag 8:15-10:00 Hörsaal: M 1 M 1

Einführung in die Informatik I

Digitale Bildverarbeitung

Programmieren I + II

Thomas Markwig. 23. Oktober 2013

VBA-Programmierung: Zusammenfassung

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Informatik für Ingenieure

Grundlagen des betriebswirtschaftlichen Rechnungswesens

Niedersächsisches Kultusministerium Juli 2015

Einführung in die Programmierung

Organisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008

Kapitel 0: Organisatorisches

Abstrakte Algorithmen und Sprachkonzepte

Einführung in die Informatik

Algorithmen und Datenstrukturen Kapitel 10

BERUFSPRAKTIKUM UND -VORBEREITUNG

Algorithmische Methoden zur Netzwerkanalyse

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Kontakt. Programmierkurs. Webseite. Ziel des Kurses

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Allgemeine Methodenlehre, Datenerhebung und Datenauswertung, deskriptive Statistik

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

Institut für Informatik

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Algorithmen und Programmierung

Algorithmen mit Python

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik Was ist Informatik? Teilgebiete der Informatik 8

Automaten und Formale Sprachen

Projekt Systementwicklung

1 Vom Problem zum Programm

Komplexität von Algorithmen

Einführung in die Informatik

Digitale Bildverarbeitung Organisation

Bioinformatik I (Einführung)

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

Einführung in die Programmierung

Zentralabitur 2017 Informatik

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Informatik in den Lehramtsstudiengängen

Praktische Informatik 1

Algorithmische Geometrie 1. Einführung

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4

Grundlagen des Software Engineering

Zentralabitur 2018 Informatik

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

4.Grundsätzliche Programmentwicklungsmethoden

Arithmetik und Algebra

Einführungsveranstaltung für alle Statistik Nebenfächer

Einführung Was ist Programmieren? Algorithmen Programmiersprachen Einführung in die objektorientierte Programmierung.

Vom Abitur zur Informatik (computer science)

Informatik I. Lutz Donnerhacke PGP:db c1c 6311 ef09 d819 e029 65be bfb6 c9cb

Repetitorium Informatik (Java)

Lernziele Ablauf Übungsaufgaben Formalitäten. Programmierpraktika. Einführung in das Programmieren und Weiterführendes Programmieren

Übersicht über die Einzelveranstaltungen im. B.Ed. Informatik 2+1. oder 2-stündige Klausur Rechnerstrukturen (V+Ü)

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Ziele beim Umformen von Gleichungen

I. Einführung. 1. Ziel und Motivation. Ingenieur, Programmieren?? Ingenieur, Programmieren?? Technische Informatik für Ingenieure (TIfI) WS 2005/2006

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Programmierung 2. Organisatorisches. Sebastian Hack. Klaas Boesche. Sommersemester

Inhaltsverzeichnis. Danksagungen... 11

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Transkript:

Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Organisation Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Einführung Ziele und Inhalt der Vorlesung Anwendungen von Algorithmen und Datenstrukturen Einführung Algorithmen Einführung Datenstrukturen Einordnung in Computer-Schema 2 Personen Termine Vorlesung: Dr. Tobias Lasser Akademischer Rat am Lehrstuhl Prof. Nassir Navab, I16 Computer Aided Medical Procedures Zentralübung: Matthias Wieczorek Wiss. Mitarbeiter I16 Tutoren: Markus Steppberger Benedict Simlinger Vorlesung Montag, 8:00-9:30, Raum 1200 Donnerstag 8:00-9:30, Raum 1200 Übung Zentralübung: Mittwoch, 9:45-11:15, Raum 1200 Tutorfragestunden: Dienstag nachmittags (Zeit und Raum: tba) Freitag vormittags (Zeit und Raum: tba) 3 4

Informationen online Vorlesungs-Website http://campar.in.tum.de/chair/teachingss15aud aktuelle Nachrichten Vorlesungs-Folien Übungsblätter zusätzliche Materialien Moodle https://www.moodle.tum.de/course/view.php?id=17994 Diskussions-Forum Kontakt und Feedback Für Fragen: Persönlich z.b. vor oder nach der Vorlesung/Übung in Tutorfragestunden Email algods@mailnavab.in.tum.de Diskussions-Forum Moodle: https: //www.moodle.tum.de/mod/forum/view.php?id=292073 Sprechstunde nach Vereinbarung Feedback Feedback zur Vorlesung/Übung ist jederzeit willkommen! 5 6 Ablauf: Vorlesung Ablauf: Übung Erste Zentralübung: Mittwoch, 15.04.2015 Folienvortrag mit gelegentlichen Annotationen / Tafelanschrieb kein Skript! Folien vor Vorlesung als PDF zum Download http://campar.in.tum.de/chair/teachingss15aud Eigene Notizen sind hilfreich! Jede Woche ein Übungsblatt 3-5 Aufgaben zur Anwendung und Vertiefung der Vorlesung In der Zentralübung Besprechung der Aufgaben Beantwortung von Fragen In den Tutorfragestunden Individuelle Beantwortung von Fragen Eigene Bearbeitung der Übungsblätter dringend empfohlen! z.b. auch in kleinen Gruppen 7 8

Leistungsnachweis Literatur Klausur am 29.07.2015 Schriftliche Prüfung Dauer: 120 Minuten erlaubte Hilfsmittel: handbeschriebenes DIN A4 Blatt Cormen, Leiserson, Rivest, Stein: Algorithmen - Eine Einführung Oldenbourg, 3. Auflage 2010 Vorbereitung durch aktive Teilnahme und Bearbeitung des Übungs-Programms Verfügbar in der Lehrbuchsammlung Zwei Probeklausuren Mitte und Ende des Semesters in Zentralübung 9 10 Ergänzende Literatur Fragen? Sedgewick: Algorithmen, Addison-Wesley, 2001 Ottmann, Widmayer: Algorithmen und Datenstrukturen, Spektrum, 2002 Knuth: The Art of Computer Programming Vol. 1-4A, Addison-Wesley, 1997/98, 2011 11 12

Programm heute Ziele der Vorlesung 1 Organisation 2 Einführung Ziele und Inhalt der Vorlesung Anwendungen von Algorithmen und Datenstrukturen Einführung Algorithmen Einführung Datenstrukturen Einordnung in Computer-Schema Wissen: Algorithmische Prinzipien verstehen und anwenden Grundlegende Algorithmen kennen lernen Grundlegende Datenstrukturen kennen lernen Bewertung von Effizienz und Korrektheit lernen Methodenkompetenz: für Entwurf von effizienten und korrekten Algorithmen zur Analyse von Algorithmen 13 14 Übersicht der Inhalte http://xkcd.com/835/ Grundlagen: 1 Einführung in Algorithmen und Datenstrukturen Motivation, Definitionen, Einordnung 2 Grundlagen von Algorithmen Darstellung, elementare Bausteine, Pseudocode 3 Grundlagen von Datenstrukturen Primitive Datentypen, Felder, abstrakte Datentypen 4 Grundlagen der Korrektheit von Algorithmen Verifikation, Testen, Sortieren 5 Grundlagen der Effizienz von Algorithmen Komplexitätsanalyse, Sortieren 6 Grundlagen des Algorithmen-Entwurfs Entwurfs-Prinzipien 15 16

Übersicht der Inhalte Übersicht der Inhalte Fortgeschrittene Algorithmen und Datenstrukturen: 7 Fortgeschrittene Datenstrukturen Bäume, Graphen, Priority-Queue 8 Such-Algorithmen Elementare Suchmethoden, Suchbäume 9 Graph-Algorithmen Elementare Algorithmen, kürzeste Pfade, Spannbaum 10 Numerische Algorithmen Matrizen-Operationen, Fast Fourier Transform Ausgewählte Themen (je nach verfügbarer Zeit, nicht Klausur-relevant!): 11 Datenkompression Huffmann-Codes, JPEG 12 Kryptographie symmetrische und asymmetrische Verschlüsselungsverfahren 17 18 Wo kommen Algorithmen und Datenstrukturen vor? Wo kommen Algorithmen und Datenstrukturen vor? 22 23

Was ist ein Algorithmus? Duden online: Rechenvorgang nach einem bestimmten (sich wiederholenden) Schema benannt nach dem Mathematiker Al Khwarizmi (ca. 780 850) aus Persien, tätig im Haus der Weisheit in Baghdad Beispiele für Algorithmen bereits in der Antike, etwa der Euklidsche Algorithmus zur Berechnung des ggt: Wenn CD aber AB nicht misst, und man nimmt bei AB, CD abwechselnd immer das kleinere vom größeren weg, dann muss (schließlich) eine Zahl übrig bleiben, die die vorangehende misst. aus Euklid: Die Elemente, Buch VII (Clemens Thaer) Was ist ein Algorithmus? H. Rogers: Theory of Recursive Functions and Effective Computability Ein Algorithmus ist eine deterministische Handlungsvorschrift, die auf eine bestimmte Klasse von Eingaben angewendet werden kann, und für jede dieser Eingaben eine korrespondierende Ausgabe liefert. Im weiteren Verlauf des Buches wird mathematische Theorie zur Berechenbarkeit entwickelt theoretische Informatik 24 25 Was ist ein Algorithmus? Was ist ein Algorithmus? Mathematische Definition Algorithmus Eine Berechnungsvorschrift zur Lösung eines Problems heißt Algorithmus genau dann, wenn eine zu dieser Berechnungsvorschrift äquivalente Turingmaschine exisitiert, die für jede Eingabe, die eine Lösung besitzt, terminiert. Alan Turing (1936): Turingmaschine als mathematisches Modell eines Computers theoretische Informatik M. Broy: Informatik: Eine grundlegende Einführung Ein Algorithmus ist ein Verfahren mit einer präzisen (d.h. in einer genau festgelegten Sprache abgefassten), endlichen Beschreibung, unter Verwendung effektiver (d.h. tatsächlich ausführbarer), elementarer (Verarbeitungs-) Schritte. Diese Beschreibung ist für unsere Zwecke ausreichend. 26 27

Beispiel Algorithmus Beispiel Kochrezept Euklidscher Algorithmus Input: natürliche Zahlen a, b Output: größter gemeinsamer Teiler von a, b 1 Setze m := a und n := b 2 Falls m < n vertausche m und n 3 Berechne r := m n 4 Setze m := n und n := r 5 Falls r > 0, gehe zu Schritt 2 6 Der Output ist m Rührei Input: Eier, Salz, Pfeffer Output: Rührei 1 Butter in Pfanne zerlaufen lassen 2 Eier in Pfanne hauen 3 Prise Salz und Pfeffer hinzufügen und gut durchrühren 4 In Pfanne brutzeln lassen und umrühren bis die Eier durch sind dies ist kein Algorithmus! 28 29 Eigenschaften von Algorithmen Beispiel Kochrezept Input (Eingabe): definiert eine Instanz des Algorithmus Output (Ausgabe): das Ergebnis Input Algorithmus Output Determiniertheit: Schrittfolge ist eindeutig festgelegt vorgegebener Input liefert immer eindeutigen Output Endlichkeit: der Algorithmus terminiert, d.h. er bricht bei jeder Eingabe nach endlich vielen Schritten ab Korrektheit: der Algorithmus produziert den richtigen Output Rührei Input: Eier, Salz, Pfeffer Output: Rührei 1 Butter in Pfanne zerlaufen lassen 2 Eier in Pfanne hauen 3 Prise Salz und Pfeffer hinzufügen und gut durchrühren 4 In Pfanne brutzeln lassen und umrühren bis die Eier durch sind 30 31

Beispiel Algorithmus Analyse von Algorithmen Euklidscher Algorithmus Input: natu rliche Zahlen a, b Output: gro ßter gemeinsamer Teiler von a, b Entscheidende Fragestellungen: Darstellung Kapitel 2 1 Setze m := a und n := b Robustheit und Korrektheit Kapitel 4 2 Falls m < n vertausche m und n Effizienz und Komplexita t Kapitel 5 3 Berechne r := m n Entwurfstechniken Kapitel 6 4 Setze m := n und n := r 5 Falls r > 0, gehe zu Schritt 2 6 Der Output ist m 32 Definition Datenstruktur 33 Beispiel Datenstruktur Stapel (oder Englisch: Stack), z.b. Pizza-Stapel Definition Datenstruktur (nach Prof. Eckert) neu e Eine Datenstruktur ist eine Piz Piz logische Anordnung von Datenobjekten, 3 za # 2 Piz die Informationen repra sentieren, Piz za # den Zugriff auf die repra sentierte Information u ber za za # 1 Operationen auf Daten ermo glichen und die Information verwalten. Operationen: Element auf Stapel legen push Element von Stapel nehmen pop Operationen jeweils nur auf oberstem Element! 34 35

Weitere Beispiele von Datenstrukturen Wie funktioniert ein Computer? Algorithmen und Algorithmus Datenstrukturen Hochsprache (z.b. C, C++) Felder, Listen, Stack, Queue Kapitel 3 Bäume, Graphen Kapitel 7, 8, 9 Computertechnik Betriebssystem Assembler Maschinensprache Software Digitaltechnik Mikroarchitektur Digitale Logik Transistoren, Verdrahtung Hardware Schaltungstechnik Masken-Layout, Halbleiter 36 Schema nach Prof. Diepold: Grundlagen der Informatik. 37 Einordnung Algorithmen und Datenstrukturen Beispiel-Problem Navigationssystem Auto: Finde kürzesten Weg von Berlin nach München. Berlin München Datenstruktur: gewichteter Graph ( Kapitel 7) Algorithmus: kürzester Pfad ( Kapitel 9) Algorithmus-Beschreibung: Programmiersprache (z.b. C) Übersetzung in Maschinensprache: Compiler (z.b. GCC) Aufruf des Programms: Betriebssystem (z.b. Linux) Einordnung Algorithmen und Datenstrukturen Algorithmen und Algorithmus Datenstrukturen Hochsprache (z.b. C) Betriebssystem Assembler Maschinensprache Mikroarchitektur Digitale Logik Transistoren, Verdrahtung Masken-Layout, Halbleiter Software Hardware Ausführung des Programms: Computer (z.b. Laptop) Schema nach Prof. Diepold: Grundlagen der Informatik. 38 39

Zusammenfassung 1 Organisation 2 Einführung Ziele und Inhalt der Vorlesung Anwendungen von Algorithmen und Datenstrukturen Einführung Algorithmen Einführung Datenstrukturen Einordnung in Computer-Schema 40