Vorlesung Einführung in die Praktische Informatik Wintersemester 2011/2012 Organistatorisches Vorlesung • Dozent Peter Bastian, INF 368, Raum 420, Sprechstunde: Do 13-14 • Übungen Jurgis Pods, INF 368, Raum 426, Ole Klein, INF 368, Raum 423 TutorInnen: Studierende höherer Semester • Webseite zur Vorlesung http://conan.iwr.uni-heidelberg.de/teaching/info1_ws2011/ Informationen, Unterlagen, Übungsblätter • Skript Basierend auf Bastian (2003), Neuss (2006) Überarbeitete Teile werden auf Webseite zur Verfügung gestellt Übungen • Sinn der Übungsgruppen Vertiefen Stoff der Vorlesung Jede Woche wird ein Blatt mit Aufgaben ausgegeben Besprechen der Aufgaben in den Übungsgruppen Fragen zur Vorlesung und den Übungen stellen • 12 Übungsgruppen, Abgabe in Gruppen je 2-3 Teilnehmer • Anmeldung über MÜSLI https://www.mathi.uni-heidelberg.de/muesli/lecture/view/152 Anmeldungszeitraum: Di, 11.10., 18 Uhr — Fr., 14.10., 14 Uhr System arbeitet mit Präferenzen und nicht first come first served • Beginn der Übungsgruppen ab Montag, 17.10. Ablauf der Übungen • Ausgabe der Übungsblätter Freitags, 16 Uhr auf der Webseite der Vorlesung • Abgabe der Lösungen Freitags, 14 Uhr ct (vor der Vorlesung) Abgabe in Zettelkästen Foyer INF 288 (reine Mathe) • Erstes Blatt Ausgabe: 14.10.11, 16 Uhr (diese Woche!) Abgabe: 21.10.11, 14 Uhr • Beginn der Übungsgruppen ab Montag, 17.10. Kennenlernen, Fragen zu den Aufgaben und der Vorlesung Übungszeiten 09 – 11 Mo PrBer 350/U012 Di Mi Do LA1 Vorl. ANA1 Vorl. 350/U013 ProgKurs 350/U013 350/U014 INFO1 Vorl. ProgBeratung 350/U013 LA1, 350/U014 TI, 368/532 350/U013 368/532 LA1 Vorl. TI 11 – 13 14 – 16 16 – 18 ProgKurs 350/U013 368/532 Vorzugsweise BA Informatik Vorzugsweise totale Anfänger TI Fr 350/U013 350/U014 ANA1 Vorl. TI Vorl. TI Vorl. INFO1 Vorl. Leistungsnachweis • Erfolgreiche Übungsteilnahme mindestens 50% der Punkte aus den Übungsaufgaben und mindestens 2 Präsentationen einer Lösung sind Voraussetzung zur Teilnahme an der Klausur! • Klausur 3. Februar 2012, 14-17 Uhr • Wer bereits die erfolgreiche Teilnahme an den Übungen zu dieser Vorlesung aus früheren Semestern nachweisen kann ist zur Klausur zugelassen. • Für BA Informatik, LA Informatik ist diese Klausur die Orientierungsprüfung Unterschiedliche Vorkenntnisse Angebote für totale Anfänger • Diese Woche: Grundlagen der Bedienung von UNIX-Systemen“ ” Ole Klein, Di 11.10. + Do 13.10., 18-20 Uhr, INF 350, CIP-Pool im UG • Spezielle Übungsgruppe Di 16-18 Uhr • Programmierberatung Möglichkeit 1: Mo 9-11 OMZ INF 350 U012 (zur Vorlesung) Möglichkeit 2: Mi 14-16 OMZ INF 350 U011 (Christian Sengstock) • Programmierkurs, vorzugsweise Mo 11-13 Uhr Sie dürfen gerne Fragen stellen. Es gibt keine dummen Fragen! Angebot für Fortgeschrittene • Alternativer Punkteerwerb: Ersetzen ausgewählter Übungsaufgaben durch Kleinprojekte • Details werden auf Übungsblatt/Webseite erklärt Programmierkurs • Einführung in C++ unabhängig von der Vorlesung von Ursula Rost und Daniel Kondermann • 2 st., Mo oder Di, 11-13 Uhr, INF 350, CIP-Pool, ab 17.10. • Pflichtveranstaltung für BA Informatik, LA Informatik + Mathe in Semester 1, LA Informatik + X in Semester 3, freiwillige Teilnahme möglich • Handschriftliche Anmeldung JETZT!: – – – – Zwei Listen: Pflichtteilnehmer, freiwillige Teilnahme Pflichtteilnehmer: Accountnummer merken! Freiwillige: Account Spalte leer lassen Deutlich schreiben! • Ablauf Montag: Vorzugsweise totale Anfänger Dienstag: jeder • Zusätzliche Anmeldung in Moodle erforderlich um an Unterlagen zu gelangen. Passwort: TurXX5 Praktisches Üben • Programmieren ist wesentlicher (nicht alleiniger) Inhalt der Vorlesung • Beim Programmieren gilt: Übung macht den Meister ! Programmieren ist eine Kunst. Eines der berühmtesten Bücher der Informatik von Donald E. Knuth heißt The Art of Computer Programming“ ” Nutzen Sie alle gebotenen Möglichkeiten zum Üben! • In der Vorlesung/Übung benutzen wir eine UNIX-Programmierumgebung. Sie sollten Zugang zu so einem System haben um die Übungen durchführen zu können. Geeignet sind LINUX, Mac oder ein WindowsSystem mit WUBI http://www.ubuntu.com/download/ubuntu/windows-installer • Falls Sie keinen Rechnerzugang haben, melden Sie sich! Weitere Ankündigungen • Einführungsveranstaltung für Bachelor Informatik Di 11.10., 16:00 Uhr, INF 288 HS 1, im Anschluss an diese Vorlesung! • Einführungsveranstaltung für Lehramt Informatik Mi 12.10., 14:00 Uhr, INF 350 (OMZ) U014 Dozent • Peter Bastian 1989 Diplom Informatik (U Erlangen) 1994 Promotion Mathematik (U Heidelberg) 1999 Habilitation Informatik (U Kiel) 2001 Professur Wissenschaftliches Rechnen (IWR, U Heidelberg) 2006 Lehrstuhl Simulation großer Systeme (Informatik, U Stuttgart) 2008 AG Paralleles Rechnen (IWR, U Heidelberg) • Arbeitsgebiete Wissenschaftliches Rechnen Höchstleistungsrechnen Anwendungen: Strömungsmechanik, poröse Medien Motivation Was ist Informatik Wissenschaft von der systematischen Verarbeitung von Information, besonders der automatischen Verarbeitung mit Hilfe von Digitalrechnern Wikipedia, Duden Informatik Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Michael R. Fellows and Ian Parberry, Computing Research News, January 1993 Inhalt der Vorlesung • Grundlegende Konzepte der Informatik kennenlernen z. B. Algorithmenbegriff, Komplexität, Abstraktion, . . . • Algorithmisches Denken schulen Problem → Algorithmus → Programm • Programmieren im Kleinen verschiedene Programmierstile, C++ • Grundlegende Algorithmen und Datenstrukturen Suchen, sortieren, . . . Liste, Feld, Heap, . . . Informatik als Wissenschaft • Wortschöpfung aus Information“ und Automatique“ erstmals benutzt ” ” von Philippe Dreyfus (1962, laut Wikipedia). • Grundlagen waren – Theorie der Berechenbarkeit (Turing, Church, 1937) – Entwicklung elektromechanischer/elektronischer Rechenmaschinen (Z3, 1941, ENIAC, 1946) – entsprechende Anwendungen (Kryptographie, ballistische Berechnungen, Differentialgleichungen lösen) • Erster deutscher Informatikstudiengang WS 1968/69 in Karlsruhe Teilgebiete der Informatik • Theoretische Informatik Logik und Berechenbarkeit, Automatentheorie und formale Sprachen, Semantik, Komplexitätstheorie • Technische Informatik Elektrotechnische Grundlagen, Architektur von Rechenanlagen, Chipentwurf, Netzwerkkomponenten, Fehlertoleranz, . . . • Praktische und Angewandte Informatik Betriebssysteme, Softwareengineering, Datenbanken, Programmiersprachen, Visualisierung, Mensch-Maschine-Interaktion Anwendungen, z. B. Wissenschaftliches Rechnen Wissenschaftliches Rechnen Anwendungsgebiet Physik, Chemie, Biologie, Modellierung Informatik Programmierung Parallelisierung Visualisierung Mathematik Modellierung Analysis Numerik Bodenradar Bestimme Strukturen im Boden durch Reflexion von Radarwellen (Makroskopische) Maxwell-Gleichungen beschreiben die Ausbreitung elektromagnetischer Wellen und wurden von James Clerk Maxwell im Jahr 1861 angegeben. System linearer partieller Differentialgleichungen erster Ordnung: ∇ × E = −∂tB (Faraday) ∇ × H = j + ∂t D (Ampère) ∇·D =ρ (Gauß) ∇·B =0 (Gauß für Magnetfeld) D = 0 E + P (elektrische Flussdichte) H = µ−1 0 B−M (magnetische Feldstärke) plus Rand- und Anfangsbedingungen Elektrisches (Vektor-) Feld Ex(x, y, z, t) E(x, y, z, t) = Ey (x, y, z, t) Ez (x, y, z, t) Analog für das magnetische Feld B(x, y, z, t) Partielle Ableitung: f (x + h, y, z) − f (x, y, z) h→0 h ∂xf (x, y, z) = lim Differentialoperatoren: z. B. ∇ · D = ∂xD + ∂y D + ∂z D Simulation des Bodenradars Jorrit Fahlke (IWR, 2011) Sternentstehung Cone nebula from http://www.spacetelescope.org/images/heic0206c/ Euler-Gleichungen Ein Modell zur Sternentstehung stellen die Euler-Gleichungen (Leonhard Euler, 1707-1783) der Gasdynamik mit Gravitation dar. Diese sind ein nichtlineares System partieller Differentialgleichungen: ∂tρ + ∇ · (ρv) = 0 ∂t(ρv) + ∇ · (ρvv T + pI) = −ρ∇Ψ ∂te + ∇ · ((e + p)v) = −ρ∇Ψ · v ∆Ψ = 4πGρ (Massenerhaltung) (Impulserhaltung) (Energieerhaltung) (Gravitationspotential) Bessere Modelle beinhalten innere Reibung (Navier-Stokes Gleichungen), erweiterte Zustandsgleichung und Strahlungstransport. Existenz und Regularität der inkompressiblen Navier-Stokes-Gleichungen ist eines der sieben Millenium Prize Problems. Numerische Simulation der Sternentstehung durchgeführt von Marvin Tegeler in seiner Diplomarbeit (2011). Eine Geothermieanlage Einlochanlage in einem tiefen Aquifer (Zweidimensionaler Schnitt) z 3700m warm kalt 4000m r Gekoppelte Wasser- und Wärmeströmung System nichtlinearer partieller DGL für Druck p und Temperatur T : ∂t(φρw ) + ∇ · {ρw u} = f k u = (∇p − ρw g) µ ∂t(ceρeT ) + ∇ · q = g q = cw ρw uT − λ∇T (Massenerhaltung) (Darcy-Gesetz) (Energieerhaltung) (Wärmefluss) Nichtlinearität: ρw (T ), ρe(T ), µ(T ) Permeabilität k(x) : 10−7 im kiesgefüllten Bohrloch, 10−16 im Verschluss Raum-/Zeitskalen: R=15 km, rb=14 cm, Sekunden (0.3 m/s im Bohrloch) bis Jahre Temperaturverlauf nach 30 Jahren Betrieb Detail am Einspeisebereich Temperatur im Bohrloch 1.2e+07 1.15e+07 Extracted Power / Watt 1.1e+07 1.05e+07 1e+07 9.5e+06 9e+06 8.5e+06 8e+06 7.5e+06 7e+06 0 2000 4000 6000 Time / days 8000 10000 12000 Entzugsleistung über 30 Jahre Viele weitere Anwendungen • Wetter und Klima • Ölreservoirsimulation, CO2 Sequestrierung, Lagerung radioaktiver Abfälle • Geophysikalische Strömungen im Erdinnern • Tsunamisimulation • Festigkeit von Materialien • Brennstoffzellen • ... Numerische Lösung partieller Differentialgleichungen Physik des 19. Jahrhunderts, aber Mathematik und Informatik des 20. Jahrhunderts! Treibende Kraft bei der Entwicklung des Computers, insbesondere Höchstleistungsrechner: An automatic computing system is a (usually highly composite) device, which can carry out instructions to perform calculations of a considerable order of complexity — e.g. to solve a non-linear partial differential equation in 2 or 3 independent variables numerically. John von Neumann, First Draft of a Report on the EDVAC, 30. Juni 1945 Verbindet Informatik, Physik und Mathematik Etwa Jugene (294.912 Cores, Nummer 2 in Europa) Ermöglicht derzeit die iterative Lösung von Gleichungssystemen mit 1011 Unbekannten in 4 Minuten. Erfordert komplexe Algorithmen und Datenstrukturen, z.B. zur adaptiven Triangulierung: Umfangreiches Softwareprojekt: http://www.dune-project.org Literatur H.-J. Appelrath, J. Ludewig: Skriptum Informatik – eine konventionelle Einführung. B. G. Teubner Verlag, 5. Auflage, 2000. H. Abelson, G. J. Sussman mit J. Sussman: Struktur und Interpretation von Computerprogrammen, Springer Verlag, 1998. B. Stroustrup: The C++ Programming Language, Addison-Wesley, 3. Auflage, 1997 (auch in deutscher Übersetzung erhältlich). C++ Programming, freies WikiBook http://en.wikibooks.org/wiki/ C%2B%2B_Programming U. Schöning: Ideen der Informatik. Oldenburg Verlag, 2002. D. R. Hofstatter: Gödel, Escher Bach: Ein Endloses Geflochtenes Band. dtv Taschenbuch, 11. Auflage, 2007.