Numerisches Programmieren - Summer 17
- Term
- Summer 2017
- Lecturer
- Univ.-Prof. Dr. Thomas Huckle
- Time and Place
- Vorlesung: Dienstag, 14:15-15:45 Uhr, HS 1, Friedrich L. Bauer Hörsaal
- Übungen: siehe unter Übungstermine
- Audience
- Studiengang Informatik (Bachelor), Studiengang Informatik: Games Engineering (Bachelor) (Modulbeschreibung )
- Tutorials
- Michael Rippl, Michael Obersteiner
- Exam
- Die Klausur findet am 04.08.2017 von 10:30 bis 12:00 statt.
- Semesterwochenstunden / ECTS Credits
- 5 SWS (2V + 3Ü) / 6 Credits
- TUMonline
- Vorlesung Numerisches Programmieren
- Tutorübung Numerisches Programmieren
- moodle
Willkommen zur Veranstaltung Numerisches Programmieren im Sommersemester 2017!
Die Vorlesung Numerisches Programmieren ist eine Pflichtveranstaltung im Bachelor Informatik, bestehend aus einer zweistündigen Vorlesung mit Klausur und einem dreistündigen Übungsteil. Dementsprechend richtet sie sich primär an Studierende der Informatik (Bachelor) im 4./5. Semester. Vorausgesetzt werden fundierte Kenntnisse aus den Vorlesungen Lineare Algebra für Informatiker und Analysis für Informatiker sowie der Programmiersprache Java. Alle weiteren Informationen zu Vorlesung, Übungsbetrieb, Programmieraufgaben und Klausur finden Sie unten.
Aktuelles
28.08.2017 | Die Einsicht findet wie in der eMail angekündigt am Dienstag, dem 29.08.2017, 9:30 - 13:30 Uhr im Raum 02.07.023 statt. |
---|---|
31.07.2017 | Die Zuteilung Student - Hörsaal für Prüfung ist nun unten verfügbar. |
08.07.2017 | Für Prorammieraufgabe 4 gilt eine verlängerte Bearbeitungszeit weil die Themen bisher noch nicht in der Vorlesung behandelt wurden. |
21.06.2017 | Die Übung 15 von Michael Rippl am 27. Juni um 16 Uhr entfällt. Teilnehmer der betroffenen Gruppe werden gebeten eine alternative Gruppe zu besuchen (z.B. die Gruppe 6 am gleichen Tag). |
19.06.2017 | Die Übung 20 von Felix Ackermann am 22. Juni um 14 Uhr entfällt. Teilnehmer der betroffenen Gruppe werden gebeten eine alternative Gruppe zu besuchen (z.B. die gleichzeitig stattfindende Gruppe 6). |
08.06.2017 | Die Übungen am 15. Juni entfallen wegen des Feiertags. Teilnehmer der betroffenen Gruppen werden gebeten eine alternative Gruppe zu besuchen. |
01.06.2017 | Da in der Woche vom 5.6.2017-9.6.2017 die Vorlesung aufgrund der Pfingstferien entfällt, werden in dieser Woche auch keine Übungen stattfinden. Das 6. Übungsblatt wird demnach erst in der Woche vom 12.6-16.6 besprochen. |
25.04.2017 | Am 23.Mai von 10-12 Uhr findet die Studentische Vollversammlung (SVV) statt. Alle Gruppen deren Zeit sich mit der SVV überschneidet entfallen! Teilnehmer der betroffenen Gruppen werden gebeten eine alternative Gruppe zu besuchen. |
25.04.2017 | Am 10.Mai von 10-12 Uhr findet die Fachschaftsvollversammlung (FVV) statt. Alle Gruppen deren Zeit sich mit der FVV überschneidet entfallen! Teilnehmer der betroffenen Gruppen werden gebeten eine alternative Gruppe zu besuchen. |
25.04.2017 | Die Übungen am 1.Mai entfallen wegen des Feiertags. Teilnehmer der betroffenen Gruppen werden gebeten eine alternative Gruppe zu besuchen. |
23.04.2017 | Die Tutorübungen fangen in der Woche 02.-05. Mai an. |
23.04.2017 | Die erste Vorlesung findet am 25. April statt. |
Vorlesung
Allgemeine Hinweise finden Sie im Merkblatt zur Veranstaltung.
Folien begleitend zur Vorlesung
Vorlesung | Datum | Thema |
1 | 25.04.2017 | Warum Numerik/Rechnerarithmetik und Rundungsfehler |
2 | 02.05.2017 | Rechnerarithmetik und Rundungsfehler |
3 | 09.05.2017 | Kondition, Stabilität |
4 | 16.05.2017 | Lineare Gleichungssysteme |
5 | 23.05.2017 | Lineare Gleichungssysteme 2 |
6 | 30.05.2017 | Interpolation |
7 | 13.06.2017 | Interpolation 2, Quadratur |
8 | 20.06.2017 | Quadratur, Fourier Transformation |
9 | 27.06.2017 | Fixpunktiteration Nullstellenbestimmung |
10 | 04.07.2017 | Schnelle Fourier Transformation |
11 | 11.07.2017 | Wavelets, Iterative Lösung Linearer Gleichungssysteme |
12 | 18.07.2017 | Eigenwerte, Gewöhnliche Differentialgleichungen |
13 | 25.07.2017 | Gewöhnliche und partielle Differentialgleichungen |
Folien von Prof. Huckle aus dem SoSe 2016
Vorlesung | Datum | Thema |
1 | 19.04.2016 | Warum Numerik/Rechnerarithmetik und Rundungsfehler |
2 | 26.04.2016 | Rechnerarithmetik und Rundungsfehler |
3 | 03.05.2016 | Lineare Gleichungssysteme |
4 | 10.05.2016 | Lineare Gleichungssysteme 2 |
5 | 24.05.2016 | Regularisierung, Interpolation |
6 | 31.05.2016 | Interpolation 2 |
7 | 07.06.2016 | Quadratur, Fourier Transformation |
8 | 14.06.2016 | Schnelle Fourier Transformation |
9 | 21.06.2016 | Fixpunktiteration |
10 | 28.06.2016 | Iterative Lösung Linearer Gleichungssysteme |
11 | 05.07.2016 | Gewöhnliche Differentialgleichungen |
12 | 12.07.2016 | Zusammenfassung |
Folien von Prof. Bungartz aus dem WiSe 2012/13
Vorlesung | Datum | Thema |
1 | 22.10.2012 | Introduction and Literature |
2 | 05.11.2012 | Interpolation |
3 | 19.11.2012 | Numerical Integration |
4 | 10.12.2012 | Direct Methods for Solving Systems of Linear Equations |
5 | 17.12.2012 | Ordinary Differential Equations |
6 | 14.01.2013 | Iterative Methods: Roots and Optima |
7 | 28.01.2013 | Iterative Methods: The Symmetric Eigenvalue Problem |
8 | 04.02.2013 | Hardware-Aware Numerics |
Literatur
Zur Vertiefung der Inhalte, als Lernvorlage und Nachschlagewerk empfiehlt sich insbesondere das Buch von Prof. Huckle Numerik für Informatiker (als eBook von der Bibliothek verfügbar in der alten Auflage). Einen kleinen Ausschnitt aus der Vielzahl an Veröffentlichungen zu den Themen der Vorlesung stellt die folgende Literaturliste dar.
- Dahmen, Reusken: Numerik für Ingenieure und Naturwissenschaftler, Springer-Verlag, Berlin-Heidelberg, 2. Auflage 2008
- Huckle, Schneider: Numerische Methoden - Eine Einführung für Informatiker, Naturwissenschaftler, Ingenieure und Mathematiker, Springer-Verlag, Berlin-Heidelberg, 2. Auflage 2006
- Späth: Numerik - eine Einführung für Mathematiker und Informatiker, Vieweg, Braunschweig-Wiesbaden, 1994
- Schwarz: Numerische Mathematik, Teubner, Stuttgart, 4. Auflage 1997 (Nachdruck 2001)
- Stoer, Bulirsch: Numerische Mathematik, Springer-Verlag, Berlin Heidelberg, Band 1 (10. Auflage 2007) und Band 2 (5. Auflage 2005)
- Press, Flannery, Teukolsky, Vetterling: Numerical Recipes Cambridge University Press, http://www.nr.com/
- Golub, Ortega: Scientific Computing: An Introduction with Parallel Computing Academic Press, 1993
- Java Blockkurs des Wintersemesters 05/06
- Java-Seiten von Sun Microsystems
- Java FAQ Archives
Korrektur von Druckfehlern der 1. Auflage des Buches von Prof. Huckle
Lösungen zu einigen Aufgaben des Buches von Prof. Huckle
Gute Grundlagenbuch zur Wiederholung/Auffrischung/Vertiefung:
- Arens, Hettlich, Karpfinger, Kockelkorn, Lichtenegger, Stachel: Mathematik, Spektrum Akademischer Verlag, Heidelberg, 2008
Übungen
Die Aufgabenblätter und die Lösungen aus den Tutorien finden sie hier im Laufe des Semesters als PDF zum Download.
Die Anmeldung zu den Tutorgruppen erfolgt über Tutoranmeldung.
Bitte beachten Sie den angebotenen Notenbonus zur Honorierung reger Übungsteilnahme.
Gruppe | Tag | Zeit | Raum | Tutor |
1 | Mo | 12:00 - 14:00 | 00.13.036 | Dmitrij Boschko |
2 | Mo | 12:00 - 14:00 | 02.08.020 | Sergey Mitchenko |
3 | Mo | 16:00 - 18:00 | 01.06.020 | Adrian Schultz |
4 | Di | 12:00 - 14:00 | 02.07.014 | Dmitrij Boschko |
5 | Di | 12:00 - 14:00 | 01.11.018 | Adrian Schultz |
6 | Di | 16:00 - 18:00 | 02.07.014 | Sergey Mitchenko |
7 | Mi | 10:00 - 12:00 | 01.07.023 | Michael Obersteiner |
8 | Mi | 11:00 - 13:00 | 01.09.014 | Anna Reithmeir |
9 | Mi | 14:00 - 16:00 | 02.07.014 | Anna Reithmeir |
10 | Do | 10:00 - 12:00 | 01.09.014 | Felix Ackermann |
11 | Fr | 10:00 - 12:00 | 00.13.054 | Hans Rauer |
12 | Fr | 10:00 - 12:00 | 00.08.053 | Lucas Wolf |
13 | Di | 12:00 - 14:00 | 00.08.055 | Hans Rauer |
14 | Fr | 15:00 - 17:00 | 00.13.009A | Lucas Wolf |
16 | Mi | 10:00 - 12:00 | 00.08.055 | Hendrik Möller |
17 | Mi | 12:00 - 14:00 | 02.07.034 | Simon Schmitz |
18 | Mi | 16:15 - 18:15 | 01.06.011 | Hendrik Möller |
19 | Mi | 16:05 - 18:05 | 02.07.014 | Simon Schmitz |
20 | Do | 14:00 - 16:00 | 02.07.014 | Felix Ackermann |
Aufgaben & Lösungen
Hier finden Sie die Angabenblätter sowie (nach Ablauf der jeweiligen Übungswoche) die Musterlösungen zu den Tutorübungen.
- Basiswissen Numerisches Programmieren
Diese Aufgaben sollten Sie mit Ihrem Wissen aus der Oberstufe und den Vorlesungen Lineare Algebra und Analysis für Informatiker bewältigen. Sie dienen lediglich der Wiederholung und zur Orientierung an den als bekannt vorausgesetzten Grundlagen dieser Veranstaltung.
Aufgabennr. | Besprechungstermin | Thema | Aufgabenstellung | Musterlösung | Tutorfolien/Extras |
1 | 02.05. - 05.05. | Zahlendarstellungen | Aufgabenblatt 1 | Musterlösung 1 | |
2 | 08.05. - 12.05. | Kondition, Stabilität | Aufgabenblatt 2 | Musterlösung 2 | |
3 | 15.05. - 19.05. | Gaußelimination mit Pivotsuche, LR-Zerlegung, Matrixnorm | Aufgabenblatt 3 | Musterlösung 3 | Python Skript zur LR Zerlegung |
4 | 22.05. - 26.05. | QR-Zerlegung, Lineares Ausgleichsproblem | Aufgabenblatt 4 | Musterlösung 4 | |
5 | 29.05. - 02.06. | Interpolation | Aufgabenblatt 5 | Musterlösung 5 | |
6 | 12.06. - 16.06. | Runge Effekt, Quadratur | Aufgabenblatt 6 | Musterlösung 6 | Python Skript zum Runge Effekt |
7 | 19.06. - 23.06. | Stückweise Interpolation, Gauß Quadratur | Aufgabenblatt 7 | Musterlösung 7 | |
8 | 26.06. - 30.06. | Fouriertransformation | Aufgabenblatt 8 | Musterlösung 8 | |
9 | 03.07. - 07.07. | Fixpunktiteration | Aufgabenblatt 9 | Musterlösung 9 | |
10 | 10.07. - 14.07. | Iterative Verfahren | Aufgabenblatt 10 | Musterlösung 10 | |
11 | 17.07. - 21.07. | Differentialgleichungen | Aufgabenblatt 11 | Musterlösung 11 | |
12 | 24.07. - 28.07. | Klausurvorbereitung | Aufgabenblatt 12 | keine |
Programmieraufgaben
Hier finden Sie die Aufgabenstellung (PDF-Dokument) und den Programmrahmen (TAR-Archiv mit Quellcode) der einzelnen Programmieraufgaben.
Aufgabennr. | Ausgabetermin | Abgabetermin | Aufgabenstellung | Zugehöriges Rahmenprogramm |
1 | 05.05.2017 | 19.05.2017 | Aufgabenstellung 1 | Programmgerüst 1 |
2 | 26.05.2017 | 09.06.2017 | Aufgabenstellung 2 | Programmgerüst 2 |
3 | 19.06.2017 | 03.07.2017 | Aufgabenstellung 3 | Programmgerüst 3 |
4 | 08.07.2017 | 26.07.2017 | Aufgabenstellung 4 | Programmgerüst 4 |
Hinweise zur Bearbeitung
- Arbeiten Sie in einer Gruppe (bis zu drei Personen). Vier/sechs Augen sehen mehr als zwei.
- Beginnen Sie frühzeitig mit der Bearbeitung der Aufgaben und nutzen Sie das Angebot der Programmieraufgaben.
- Das ausführliche Testen der Implementierung (insbesondere auch auf Randfälle) ist wesentlicher Bestandteil der Programmieraufgaben!
- Die Einteilung der Gruppen sowie die Abgabe des Programm-Codes erfolgt unter Moodle.
- Alle Abgaben, die nicht den formalen Kriterien genügen, werden grundsätzlich nicht korrigiert!
- Bei Fragen zu den Programmieraufgaben wenden Sie sich bitte an Michael Rippl
Die Abgabe der Programm-Codes erfolgt unter Moodle: https://www.moodle.tum.de/course/view.php?id=31995
Die Programmieraufgaben sind prüfungsrelevant!
Klausur
Die Klausur findet am 04.08.2017 von 10:30 bis 12:00 statt.
Ort der Prüfung sind folgende Räume:
- MW 2001 (Rudolf-Diesel-Hörsaal), Boltzmannstr. 15
- MW 0001 (Gustav-Niemann-Hörsaal), Boltzmannstr. 15
- Alle Studenten mit Nachnamen A-Ph schreiben in MW 0001
- Alle Studenten mit Nachnamen Pi-Z schreiben in MW 2001
Als Hilfsmittel ist einzig und allein ein handschriftlich, beidseitig beschriebenes Blatt DIN A4 mit eigenen Notizen erlaubt (keine Ausdrucke, keine Kopien). Die Verwendung weiterer Hilfsmittel (Taschenrechner, Bücher, Skripten, etc.) ist nicht gestattet.
Ein Lineal wird jedoch empfohlen.
Da die Vorlesung "Numerisches Programmieren" in jedem Semester gehalten wird, wird keine Wiederholungsklausur angeboten. Die reguläre Klausur des Folgesemesters ersetzt die Wiederholungsklausur des aktuellen Semesters.
Hinweise zur Klausur
Was müssen Sie alles können?
- Alle Verfahren und Konzepte aus den Übungen müssen beherrscht werden (schnell und ohne großes nachdenken - sonst gibt es Zeitprobleme)
- Alle weiteren Verfahren und Konzepte (aus der Vorlesung) müssen aus theoretischer Sicht beherrscht werden. Leichte Verfahren und Konzepte (z.B. Poweriteration) oder leicht anzuwendende Optimierungen behandelter Verfahren müssen auch praktisch beherrscht werden. Komplexere Verfahren wie z.B. Conjugate Gradient werden nicht praktisch abgefragt werden! Mit "leicht" bezeichnen wir Verfahren, welche auch ohne vorheriges Probieren angewandt werden können. Verwenden Sie ihren Zettel also auch um weitere Verfahren zu notieren.
- Das reine Wissen aus der Übung wird nicht reichen, um alle Aufgaben bearbeiten zu können. Es werden definitiv Fragen vorkommen, zu denen in der Übung nichts besprochen wurde. Arbeiten Sie deshalb auch die Vorlesung (Folien) sorgfältig durch. Bei Unklarheiten auf den Folien nutzen Sie bitte die angegebene Literatur oder das Internet für weitere Recherchen.
- Legen sie insbesondere Wert auf die Eigenschaften der Verfahren! Was unterscheidet die einzelnen Verfahren und wann sind die entsprechenden Verfahren anwendbar? Es wird in der Klausur nur wenige aufwendige Rechnungen geben, sondern vielmehr Fragen zu den Eigenschaften und Tricks (bzw. schwächen) der Verfahren und kürzere Rechnungen. Trotzdem wird es auch weiterhin (aber wenige) Aufgaben mit längerem Rechenwegen geben, die dementsprechend mit mehr Punkten honoriert werden.
- In der Klausur wird es eine Programmieraufgabe geben bei der auf dem Blatt programmiert werden muss! Verwenden Sie hierfür Java oder einen Java-ähnlichen Pseudo-Code! Es ist deshalb sehr hilfreich die Programmieraufgaben zu bearbeiten und/oder noch einmal durchzuschauen!
Anmeldung
Für alle Studenten erfolgt die Anmeldung ganz normal über TUMonline.
Notenbonus
Wir wollen es Ihnen ermöglichen, durch rege Teilnahme an den Übungen und Programmieraufgaben eine Verbesserung Ihrer Klausurnote zu erwirken. Darüber hinaus zeigt die Erfahrung, dass rege Übungsteilnahme auch zu besseren Ergebnissen in der Klausur führt. Aus diesem Grund räumen wir allen Studierenden bei der Klausur einen Notenbonus um 0,3 (also beispielsweise von 2,7 auf 2,4 oder von 2,0 auf 1,7) ein, sofern sie die folgenden zwei Kriterien erfüllen:
- Anwesenheit in mindestens 9 der 12 geplanten Tutorien. Zu diesem Zweck werden zu Beginn der Tutorien Anwesenheitslisten ausgeteilt, in denen man sich entsprechend eintragen muss.
- Bei den vier Programmieraufgabenblätter müssen insgesamt mindestens 70% der erzielbaren Punkte erreicht werden. Pro Aufgabe werden 100 Punkte vergeben. Das bedeutet, die Bonushürde liegt bei insgesamt 280 von 400 zu erreichenden Punkten. Alle Abgaben, die nicht den formalen Kriterien genügen, werden grundsätzlich mit 0 Punkten bewertet!
Hinweis: Durch den Notenbonus ist es nicht möglich, eine nicht bestandene Klausur zu bestehen. Eine 4,3 kann also nicht zu einer 4,0 verbessert werden. Ebenso gibt es keine Verbesserung bei 1,0.
Altklausur
Als "Appetizer" können Sie sich hier die Klausur des SoSe 10 ansehen: Klausur / Klausur_mit_Loesung
Kontakt
Funktion | Name | Raum | Sprechstunde | |
Veranstaltungsleiter | Prof. Dr. Thomas Huckle | MI 02.05.044 | Di 10:00 - 11:00 Uhr und n.V. | ![]() |
Übungsleiter (Organisation/Tutorien) | Michael Obersteiner | MI 02.05.060 | n.V. | ![]() |
Übungsleiter (Tutorien/Programmieraufgaben) | Michael Rippl | MI 02.05.059 | n.V. | ![]() |
Studentischer Tutor | Felix Ackermann | - | - | ![]() |
Studentischer Tutor | Anna Reithmeir | - | - | ![]() |
Studentischer Tutor | Adrian Schultz | - | - | ![]() |
Studentischer Tutor | Dmitrij Boschko | - | - | ![]() |
Studentischer Tutor | Sergey Mitchenko | - | - | ![]() |
Studentischer Tutor | Hans Rauer | - | - | ![]() |
Studentischer Tutor | Lucas Wolf | - | - | - |
Studentischer Tutor | Hendrik Möller | - | - | ![]() |
Studentischer Tutor | Simon Schmitz | - | - | - |