Informatik II (Studiengang Informationstechnologie und Elektrotechnik) Vorlesung FS 2019 Friedemann Mattern, Vlad Coroamă Departement Informatik ...
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Version vom 19. Februar 2019 Informatik II (Studiengang Informationstechnologie und Elektrotechnik) Vorlesung FS 2019 Friedemann Mattern, Vlad Coroamă Departement Informatik, ETH Zürich © F. Mattern, 2019 1
Inhalt dieser Präsentationskopie Anklickbare Hyperlinks: Informatik II (Alternativ: Bookmarks einblenden oder von nachfolgender Slide nutzen Index mit über 100 Hyperlinks) (Studiengang 1. Ein AlgorithmusInformationstechnologie und seine und Elektrotechnik) 9. Binärbäume & Suchbäume Implementierung in Java Vorlesung FS10. 2019Backtracking 2. Java: Elementare AspekteMattern,11. Friedemann VladSpielbäume Coroamă 3. Klassen undDepartement Referenzen Informatik, 12. Rekursives ETH ZürichProblemlösen 4. Syntaxanalyse und Compiler 13. Komplexität von 5. Pakete in Java Algorithmen 6. Objektorientierung 14. Modellierung und Simulation 7. Weitere Java-Sprachelemente 15. Heaps 8. Binärsuche auf Arrays 16. Parallele Prozesse / Threads Relevant für die Prüfung ist der gesamte Inhalt der Vorlesung und Übungen, nicht nur diese Präsentationskopie – sie stellt auch keinen Ersatz für das genannte Lehrbuch dar. Seiten mit Zusatz- und Hintergrundmaterial (wie z.B. historische Anmerkungen) sind am unteren Rand violett markiert: (Diese können „weggeklickt“ werden) 2
Inhaltsverzeichnis Euler, Königsb. Brückenproblem Tic-Tac (Davies, Kates, DEUCE) Wetterprognose ohne Computer Bookmarks 1. EIN ALGORITHMUS IN JAVA Postfix NIM, NIMROD Wetterprognose mit Computer Zum Begriff „Algorithmus“ Rechenschemata Computerschach, Schachtürke ENIAC Al-Chwarizmi Adam Ries, Abakus Schach: Babbage, Torres Quevedo Supercomputer für numerische Informatik II Altägyptische Multiplikation Codegenerierung, Automat Norbert Wiener, Kybernetik Wetterprognosen Leibniz (Dualsystem, Re- Stackmaschine (Codeerzeugung, 1950er-Jahre: Machine Age, Satellitenwetter chenmaschine,Mechani- Interpreter) Bewusstsein der Maschinen Chaos und Ensembles sierung des Intellekts) ETH 1950: Z4, ERMETH, Kybernetik im Sozialismus Heutige Wetter- und Klimamodelle Überlauf als (Studiengang Fehler H.Informationstechnologie Rutishauser, A. Speiser Heinz Zemanek und Elektrotechnik) Zeitgesteuerte Simulation Korrektheit, Verifikation Elektronenröhren Automatisches Schachspiel: Weizen-Mäuse-Katzen-Beispiel Induktion, Russell, Frege ERMETH Alan Turing, Claude Shannon, Grenzen des Wachstums (1972) (Schleifen)invarianten Wer erfand das Vorlesung Programmieren? FS 2019 Dietrich Prinz Ereignisgesteuerte Simulation Babbage, Menabrea, Ada Schachprogramme, Schachcomputer Hoare-Kalkül Hyperlink- Bytecode, Java-VM Priority Queue Go Proof-Carrying Code, Validierung Friedemann 5. PAKETE IN JAVA Mattern, Vlad Begriffsrelevanz Automatisierung: Coroamă 15. HEAPS Heapsort Aufwand, Effizienz Bruchrechnen in den 1950er- / 1960er-Jahren Vergleich von Sortierverfahren Kryptographie, Sicherheit Departement Informatik, Euklidischer Algorithmus, ggT Spieltheorie ETH John von Neumann und Zürich 16. PARALLELE PROZESSE 2. ELEMENTARES JAVA 6. OBJEKTORIENTIERUNG UND THREADS Arrays Oskar Morgenstern Konzepthierarchie, Kategorien, Spielstrategien, Minimax Prozess- / Threadzustände Typkonversion, Hüllenklassen Instanzen Thread-Erzeugung, start George Boole, Claude Shannon Ein- / Ausgabe, Strings Vererbung, Polymorphie Moore‘s Law Spielbaum-Auswertung 3. KLASSEN UND REFERENZEN 7. WEITERE JAVA- Alpha-Beta Thread-Steuerung (yield, wait, Class „Datum“ SPRACHELEMENTE Reversi sleep, suspend, resume, stop) Getter-, Setter-Methoden Interfaces join, Rendezvous-Synchronisation Exceptions 12. REKURSIVES Thread-Scheduling, Prioritäten this PROBLEMLÖSEN static (Variablen) ArrayList, Generics Hilbert-Kurve, Turtle-Grafik Parallele Threads auf dem Mars static (Klassenmethoden) 8. BINÄRSUCHE AUF ARRAYS Divide et impera Race condition, lost update Lineare Interpolationssuche Türme von Hanoi Atomarität, Inkonsistenz, kritische Osterdatum Abschnitte Komputistik Lukas 11,9-1 Mergesort, Quicksort 9. BINÄRE SUCHBÄUME Ors eirt, beis eilp! E.W. Dijkstra 4. SYNTAXANALYSE Referenzen: Parameterübergabe Dijkstra-Algorithmus (kürzeste Wege) UND COMPILER 13. KOMPLEXITÄT VON Bäume, Wurzelbäume immer „by value“! ALGORITHMEN synchronized Inorder-Traversierung O-Notation Deadlock Beispiele für Bäume Binary tree sort 14. MODELLIERUNG UND RESÜMEE DER VORLESUNG Baumdarstellungen Abstraktion Zeichen, Bedeutung 10. BACKTRACKING SIMULATION Labyrinth, edge-matching puzzle Modelle, Modellierung Bonus-Slides: Geschichte, Kontext Binärbäume n-Damen-Problem Simulationsanwendungen (Beispiele) Wozu wurden Computer erfunden? Syntaxanalyse Wettermodelle: Simulation, Prognose Astronomie und Schusstabellen 11. SPIELBÄUME, Rekursiver Abstieg COMPUTERSPIELE, Richardson’s Forecast Factory Prüfungsvorbereitung Operatorbäume, inorder, postorder SPIELTHEORIE Menschliche Computer Nachdenkliches zum Schluss
Effizientes Suchen in der pdf-Datei (mit Acrobat etc.) Informatik II Diese Präsentationskopie enthält einen eingebetteten Suchindex (Studiengang Informationstechnologie und Elektrotechnik) Dieser beschleunigt wesentlich die Suche nach Wörtern im Text Vorlesung FS 2019 Erstellen Sie den Suchindex erneut, wenn Sie die Datei nach Ände- rungen (z.B. Friedemann Kommentare Mattern, anfügen, Vlad Seiten löschen etc.) speichern Coroamă In wenigen Sekunden mit Acrobat: Werkzeuge Dokumentenverarbeitung Departement „Eingebetteten Index verwalten“;Informatik, ETH klicken; „Index einbetten“ ZürichFertigstellung abwar- ten; „OK“ klicken; danach nicht nochmals explizit (mit „save“ etc.) abspeichern! Ohne (aktuellen) Index funktioniert die Suche zwar, dauert aber deutlich länger Leider unterstützen nicht alle anderen pdf-Reader schnelles indexbasiertes Suchen Um Kontext zum Suchbe- griff (hier: Wurzelbaum) angezeigt zu bekommen, können Sie die „erweiter- te Suche“ nutzen: Ctrl + Shift + F oder ähnlich 4
Wer sind wir? Fachgebiet „Verteilte Systeme“ im Departement Informatik Vlad Coroamă Friedemann Mattern Vincent Becker (Übungsbetrieb und organisato- rische Aspekte) 5
Mit was beschäftigen wir uns sonst? Interaction Smart Environment Communication Context Awareness Web Technologies Internet of Things Service Discovery Cyber-Physical Systems Sensor Networks Privacy Ubiquitous Computing Security Augmented Reality Social Impact Smart Energy Web of Things Mehr zu uns: www.vs.inf.ethz.ch Distributed Systems 6
Themen der Vorlesung 1. Ein Algorithmus und seine 9. Binärbäume & Suchbäume Implementierung in Java 10. Backtracking 2. Java: Elementare Aspekte 11. Spielbäume 3. Klassen und Referenzen 12. Rekursives Problemlösen 4. Syntaxanalyse und Compiler 13. Komplexität von 5. Pakete in Java Algorithmen 6. Objektorientierung 14. Modellierung und Simulation 7. Weitere Java-Sprachelemente 15. Heaps 8. Binärsuche auf Arrays 16. Parallele Prozesse / Threads 7
Um was geht es in der Vorlesung? (Text im Vorlesungsverzeichnis) Kurzbeschreibung (Diploma Supplement) Algorithmen und Datenstrukturen Die Vorlesung vermittelt die gebräuchlichsten Pro- blemlösungsverfahren, Algorithmen und Datenstruk- Fortgeschrittenes Programmieren turen. Themen sind u.a.: Divide & Conquer-Prinzip, Java, Objektorientierung Rekursion, Sortieralgorithmen, Backtracking, Suche in Spielbäumen, Datenstrukturen (Listen, Stacks, Prinzipielle Grundlagen Binärbäume etc.) zeitdiskrete Simulation, Neben- Abstraktion, Modellbildung, läufigkeit, Komplexität, Verifikation. Bei den Übung- Formalisierung, Korrektheit,… en wird die Programmiersprache Java verwendet. Lernziel Teilaspekte aus Anwendungen Einführung in die Methoden der Informatik sowie Simulation, Multitasking Vermittlung von Grundlagen zur selbständigen Be- „praktische Informatik“ wältigung von anspruchsvolleren Übungen und Studienarbeiten mit Informatikkomponente im nach- Inhalt folgenden Bachelor- und Masterstudium. Die Vorlesung vermittelt die gebräuchlichsten Problemlösungsverfahren, Algorithmen und Datenstrukturen. Der Stoff umfasst auch grundlegende Konzepte und Mechanismen der Programmstrukturierung. Darüber hinaus wird generell das Denken in formalen Systemen, die Notwendigkeit zur Abstraktion, sowie die Be- deutung geeigneter Modellbildungen für die Informatik motiviert. Der Schwerpunkt der Vorlesung liegt auf der praktischen Informatik; konkrete Themen sind u.a.: Komplexität und Korrektheit von Algorithmen, Di- vide and Conquer-Prinzip, Rekursion, Sortieralgorithmen, Backtracking, Suche in Spielbäumen, Datenstruk- turen (Listen, Stacks, binäre Bäume etc.), zeitdiskrete Simulation, Nebenläufigkeit, Verifikation. Bei den praktischen Übungen wird die Programmiersprache Java verwendet, dabei werden auch Aspekte wie Modularisierung, Abstraktion und Objektkapselung behandelt. Gelegentlich werden auch kurze Hinweise zum geschichtlichen Kontext der jeweiligen Konzepte gegeben. In den Übungen wird u.a. in Gruppen ein Spielprogramm für „Reversi“ programmiert, am Ende des Semesters findet dazu ein Turnier statt. 8
Um was geht es NICHT in der Vorlesung? Sie ist KEIN umfassender Java-Programmierkurs! Programmieren mit Java eher Thema in praktischen Übungs- aufgaben und der Tutorien Vorlesungsthema sind aber einige relevante Programmier- konzepte am Beispiel von Java Nötig auch für die Prüfungsklausur Bezüglich Java sind Vorlesung / Tutorien komplementär Programmierpraxis mittels Übungsaufgaben trainieren (Klavierspielen lernt man auch nicht durch Zuhören eines Pianisten!) Zu Java wird hier vorausgesetzt, dass man C++ beherrscht (auf dem Niveau von „Informatik I“: darauf bauen wir auf) 9
Programmieren vs. Konzepte Programmieren Wichtig, da Voraussetzung für viele Berufe Faktenorientiert Erfordert Training Muss selbst praktiziert werden Üben und lernen aus Fehlern Kostet relativ viel Zeit Tutorien, Übungsaufgaben Vorlesung und Übungen sind Konzepte komplementär, nicht disjunkt Erkenntnisorientiert Verallgemeinerbares Wissen Langlebigeres, bedeutsameres Wissen Auch das praktische Programmieren fundiert auf Konzepten Vorlesung (Abklärung und Festigung Tutorien, Übungsaufgaben) 10
Organisatorisches Vorlesungswebseite für weitere Informationen www.vs.inf.ethz.ch/edu/I2/ (bzw. auch via http://lec.inf.ethz.ch) Folienkopien zum Herunterladen dort Diverse Formate (auch zum Ausdrucken) – update Semesterende Empfehlung: Einmalig herunterladen und lokal speichern (> 250 MB) 50% Zusatz- / Hintergrundmaterial: Fussleiste in hellem Violett: Klick darauf Sprung zur nächsten „echten“ Vorlesungsfolie: Inhalts- angabe Bookmark1 Bookmark2 Diese pdf-Version der slides ist zum Betrachten unter Acro- bat getestet; andere pdf-Viewer Wenn man die violetten Bonus-Slides überhaupt nicht sehen will: Auf (z.B. in Browsern) könnten evtl. eigene Verantwortung alle aus dem pdf-Dokument entfernen (z.B. unerwartete Effekte aufweisen in der Seitenminiaturansicht die violetten markieren und löschen) „Bonus-Slides“ so markiert (dortige weiterführende Themen sind kein Prüfungsstoff) 11
Organisatorisches (2) Übungsbetrieb beginnt nächste Woche! Baldmöglichst Anmeldung via CodeExpert für Übungsgruppen! Anmeldungslink: https://expert.ethz.ch/enroll/SS19/ifee2 Das Echo-System wird nicht mehr verwendet! Gleiche Gruppe während des Semesters ( zusammengehöriges Team) Aufgabenblatt jede Woche via CodeExpert Prüfung: Sessionsprüfung schriftlich als Klausur Prüfungsstoff: Inhalt der Vorlesung + Übungsaufgaben / -stunden Bonus: ¼-Note (max.) bei Lösung speziell gekennzeichneter Übungen Dabei nur selbständig verfasste Lösungen abgeben; wir prüfen (z.T. automatisiert) auf Plagiate etc. ggf. disziplinarische Massnahmen Kompliziertere Fragen zur Vorlesung: Am besten in den Pausen Oder in den Übungen an den Tutor oder per E-Mail an uns 12
Materialien und ergänzende Literatur 1) Folienkopien Evtl. aus- drucken? Zum Herunterladen als pdf auf der Vorlesungswebseite 2) Lehrbuch ! Mark Allen Weiss: Data Structures & Problem Sol- ving Using Java, Addison Wesley, 4th Ed., 2010, ISBN-13: 978-0321541406 Achtung: Es gibt diverse „international editions“, bei denen Wie einTeile Autofehlen, z.B. das Kapitel ohne Rückspiegel, über Simulation Scheibenwischer, Licht, Seitenfenster... (Originalversion hat 985 Seiten) Falls man überhaupt wohlbehalten ankommt, dann war man zwar etwas schneller, hat aber von der schönen Umgebung nichts mitbekommen... 13
Materialien und ergänzende Literatur (2) Viele Grundalgorithmen der Informatik (Sortieren, Suchen etc.) werden hier besonders anschaulich erläutert: Berthold Vöcking, Helmut Alt, Martin Dietzfel- binger, Rüdiger Reischuk, Christian Scheideler, Heribert Vollmer, Dorothea Wagner (Hg.): Taschenbuch der Algorithmen, Springer 2008 Aus dem Vorwort: „Dieses Buch unternimmt einen umfangreichen Streifzug durch die faszi- nierende Welt der Algorithmen. Es verlangt keine besonderen Vorkenntnisse, so dass Schü- lerinnen und Schüler ab der Mittelstufe und auch Informatik-interessierte Laien neue und überraschende Einblicke gewinnen können. In 43 Artikeln von Informatikern, die an Univer- sitäten im In- und Ausland lehren, werden wichtige und besonders elegante Algorithmen anschaulich und verständlich erklärt.“ Dagegen A. Kreye in einem Artikel „Bedeutung von Algorithmen – Neue Weltsprache“ in der Süddeutschen Zeitung vom 22. Juli 2014: „Kurzer Selbstversuch - das «Taschenbuch der Algorithmen», ein Lehrbuch [...]. Die Frustration kommt ähnlich rasch, wie bei Versuchen, Arabisch zu lernen, Chinesisch oder was einen sonst für Flausen reiten, sich aus dem indogermanischen Sprachraum zu entfernen. Da muss man offensichtlich erst einmal die nötigen Hirnwindungen zurechtbiegen, um nur eine Ahnung zu bekommen.“ 14
Materialien...? Aus: Visionen 3/2018, Verein der Informatik- Studierenden an der ETH Zürich, S. 6 - 9 15
FAQ Wieso werden in Informatik I / Informatik II verschiedene Programmiersprachen verwendet? Was unterscheidet Teil 2 von Teil 1 der Vorlesung? Wieso gibt es zunächst keine Beispiellösungen? Wären die Konzerte von Beethoven nicht viel weniger chaotisch, wenn erst das Klavier alleine seinen Teil spielen würde und dann der Reihe nach...? Der rote Faden 16
Der rote Faden zur Orientierung Welt am Sonntag (9.9.12), Art Glazer 17
Die „Komposition“ Konzepte der Vorlesung Java Korrektheitsnachweis (Invarianten und vollst. Indukt.) Kryptographie Java: Basics Java-Klassen als Datenstrukturen Dynamische Klassen und Referenzen Bäume Syntaxdiagramme Rekursiver Abstieg Der rote Faden Infix, Postfix, Operatorbaum, Stack Codegenerierung, Compiler, Interpreter Java-VM als Bytecode-Interpreter Verzahnte und verwobene Einführung konzeptionel- Pakete ler Aspekte und programmiersprachlicher Konstrukte Klassenhierarchie Polymorphie Abstrakte Klassen Exceptions Suchbäume, Sortieren Backtracking Spieltheorie, Minimax, Alpha-Beta Programmbeispiele dienen gleichzeitig der Rekursives Problemlösen Einführung programmiersprachlicher Konstrukte Effizienz, O-Notation und der Illustration von Informatikkonzepten Modellierung und Simulation Heap, Heapsort Pseudoparallelität Threads in Java 18
Laptops, Tablets, Smartphones, Wearables...? Notizen machen? Web? Ihre Google, Mitstu- Wikipedia,… dieren- den Kommunikation? Whatsapp, Facebook, E-Mail, Twitter,… Games? Mit Laptop etc. bitte möglichst Plätze am Rand nutzen; Tablets sind bzgl. Ablenkung Anderer weniger kritisch … 19
Laptops, Tablets, Smartphones, Wearables...? Notizen machen “… Recent … studies … investigating the differ- ences between note- taking on a laptop and note-taking by hand. While more words were recorded, with more precision, by laptop typists, more ended up being less: regardless of whether a quiz on the material immediately followed the lecture or took place after a week, the pen-and-paper stu- Mit Laptop etc. bitte möglichst Plätze am Rand nutzen; dents performed better. Tablets sind bzgl. Ablenkung Anderer weniger kritisch The act of typing effectively turns the note-taker into a transcription zombie.” (The Case for Banning Laptops in the Classroom, by Dan Rockmore, The New Yorker, June 6, 2014, www.newyorker.com/tech/elements/the-case-for-banning-laptops-in-the-classroom) 20
Henricus de Alemannia hält eine Vorlesung in Bologna Laptops,deTablets, (Laurentius Smartphones, Voltolina, 14. Jhd.) Wearables... Henricus de Alemannia hält eine Vorlesung in Bologna “…haben wir “…haben wir studentische studentische Medien- Medien- nutzung anonym nutzung anonym und und verdeckt verdeckt be- be- obachtet. ...Fokussieren obachtet. ...Fokussieren Studieren- Studieren- de überwiegend de überwiegend auf auf vorlesungsfer- vorlesungsfer- ne Inhalte ne Inhalte auf auf sozialen sozialen Webseiten Webseiten ...Einzelne Studierende ...Einzelne Studierende verwenden verwenden die gesamte die gesamte Vorlesungszeit Vorlesungszeit darauf, darauf, auf dem auf dem Laptop Laptop zuzu spielen spielenoder odermit mit Kopfhörer sich Kopfhörer sich Filme Filme und undSerien Serienan- an- zusehen. Der zusehen. Der Vergleich Vergleich mit mit Selbst- Selbst- berichtsdaten zeigt, berichtsdaten zeigt, dass dassStudieren- Studieren- de dabei de dabei unterschätzen, unterschätzen, wie wiehäufig häufig sie sich sie sich von von vorlesungsfernen vorlesungsfernen In- In- halten ablenken halten ablenken lassen lassen und und wie wieun- un- günstig sich günstig sich diese diese Ablenkungen Ablenkungen auf auf ihren Lernerfolg ihren Lernerfolg auswirken. auswirken. Verschiedene Motive Verschiedene Motive existieren existieren für für den ablenkenden den ablenkenden und und daher dahernach- nach- teil teiligen Gebrauch teiligen Gebrauch mobiler mobiler Geräte Geräte in in Vorlesungen. Vorlesungen. Eines Eines davon davon ist ist die die Angst, Angst, etwas etwas zu zu versäumen, versäumen, was sich was sich freilich freilich nicht nicht auf auf die die Vorlesungsinhalte Vorlesungsinhalte sondern sondern auf auf soziale soziale Online-Informationen Online-Informationen bezieht. bezieht. Die stets Die stets verfügbaren verfügbaren Online-Ablenkungen Online-Ablenkungen scheinen scheinen kleine kleine Belohnungen Belohnungen darzustellen, darzustellen, und und viele viele Studierende haben Studierende haben eses sich sich zur zur Gewohnheit Gewohnheit gemacht, gemacht, hochfrequent hochfrequent Online-Informationen Online-Informationen abzurufen. abzurufen. Armin Weinberger: Armin Weinberger: Vorlesung Vorlesung und und Ablenkung. Ablenkung. Forschung Forschung und und Lehre Lehre 10, 10, Oktober Oktober 2014, 2014, S. S. 838-839 838-839 21
Wissenschaftliches Ethos auch bei den Übungen Alle Quellen / Ko-Autoren zitieren Web, Bücher Studierende anderer Übungsgruppen (z.B. bei Lerngruppen) Studierende früherer Jahrgängen … Nur Eigenbeitrag wird bewertet Unehrliches Handeln führt zumin- http://geek-and-poke.com dest zur Annullierung des gesam- ten Übungsblatts Vgl. auch Zitierhinweise bei www.ethz.ch/studierende/de/studium/ leistungskontrollen/plagiate.html 22
Sie können auch lesen