Programmierung und Modellierung
Bitte beachten Sie die aktuelle Hinweise & Termine am rechten Rand dieser Webseite, welche Sie auch per RSS-Feed beziehen können. Für diese Veranstaltung ist eine Anmeldung per UniworX zwingend erforderlich.
Zur Teilnahme an einer der 13 angebotenen Übungsgruppen ist weitere Anmeldung notwendig! Diese Anmeldung führen Sie ebenfalls selbst per UniworX durch. Aus Fairnessgründen wird diese Anmeldung erst ab Semesterbeginn freigeschaltet. Diese Anmeldung zur Übungsgruppe ist nur dann notwendig, wenn Sie auch tatsächlich zu dieser Übung gehen möchten. Zur reinen Abgabe von Hausaufgaben benötigen Sie keine Anmeldung zu einer Übungsgruppe!
Inhalt
Die Vorlesung führt in grundlegende Prinzipien der Programmierung und der Datenmodellierung mit einer funktionalen Programmiersprache ein. Die wesentlichen Themen sind: Datentypen, Funktionen und Rekursion, Auswertung und Terminierung von Programmen, Typsysteme, Semantik von Programmiersprachen. Dabei wird auf begriffliche Klarheit und präzise mathematische Fundierung mit formalen Methoden Wert gelegt.
Organisation
- Umfang: 3+2 Semesterwochenstunden
- Vorlesung: Prof. Dr. Martin Hofmann, Dr. Steffen Jost
- Übungen: Dr. Steffen Jost
- Tutoren: Mujo Alic, Veronika Bader, Alexander Isenko, Christian Ittner, Christoph Kiesl, Felix Schwarzmeier, Mirjam Trapp, Simon Weinzierl, Kai Wilker
Übungsbetrieb
Das neue Übungsblatt wird immer am Dienstag Vormittag per UniworX herausgegeben. Die Abgabe zur Korrektur erfolgt ebenfalls per UniworX. Die Bearbeitungszeit beträgt eine Woche, bis zum folgenden Dienstag Mittag.
Die Übungen werden nach dem Kleingruppenkonzept abgehalten, d.h. die neuen Übungsblätter müssen nicht vorbereitet werden - als Vorbereitung reicht es aus, vorausgegangenen Vorlesungen aufmerksam gefolgt zu sein. Zu Beginn der Übung werden die Hausaufgaben des letzten Übungsblattes besprochen, falls trotz per UniworX zur Verfügung gestellter Musterlösung noch Fragen vorhanden sind. Danach werden die A-Aufgaben in Gruppen zu 2-5 Studenten in eigenem Tempo bearbeitet. Jede Gruppe sollte mindestens einen Laptop mit GHCI dabei haben. Der Tutor beantwortet lediglich individuell dabei aufkommende Fragen. Die Hausaufgaben sollten möglichst einen Tag später dann von jedem Studenten alleine bearbeitet werden. Die Hausaufgaben sind meist vereinfachte Variante der A-Aufgaben. Für den Klausurbonus müssen die Aufgaben alleine bearbeitet werden.
Zeit und Ort
Veranstaltung | Zeit | Ort | Beginn |
---|---|---|---|
Vorlesung | Mo, 10-12 Uhr ct (=10:15) | B 101 (Hauptgebäude) | 13.04. |
Vorlesung | Do, 17-19 Uhr st (=17:00)!!! | B 201 (Hauptgebäude) | 16.04. |
Übung | Di 12-14 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | 21.04. |
Übung | Di 14-16 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | |
Übung | Di 16-18 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | |
Übung | Di 18-20 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z007 | |
Übung | Mi 10-12 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | 22.04. |
Übung | Mi 12-14 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | |
Übung | Mi 14-16 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | |
Übung | Mi 16-18 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | |
Übung | Mi 18-20 Uhr | Geschw.-Scholl-Pl. 1 (D), D Z003 | |
Übung | Do 12-14 Uhr | Theresienstr. 41 (C), C 112 | 23.04. |
Übung | Fr 10-12 Uhr | Geschw.-Scholl-Pl. 1 (E), E 006 | 24.04. |
Übung | Fr 12-14 Uhr | Geschw.-Scholl-Pl. 1 (E), E 006 | |
Übung | Fr 14-16 Uhr | Geschw.-Scholl-Pl. 1 (E), E 006 |
Planung
Da die Vorlesung trotz der zwei wöchentlichen Vorlesungstermine insgesamt nur den Umfang von 3 SWS hat, findet die Vorlesung nur an den unten angegebenen Terminen statt. Die Übungen finden durchgehend wöchentlich statt.
Hinweis: Die Terminplanung kann sich jederzeit ändern. Insbesondere die Themen können sich je nach Fortschritt der Vorlesung noch verschieben und ändern. Der aktuellste Stand ist immer direkt hier zu sehen.
Nr | Datum | Dozent | Thema | Folienkapitel |
---|---|---|---|---|
1. | Mo 13.4. | MH | Einführung | 01 |
2. | Do 16.4. | MH | Funktionsbegriff, Basistypen | 02 |
3. | Mo 20.4. | SJ | Funktionsdefinition, Grundlegende Ausdrücke | 02 + 03 |
Do 23.4. | (entfällt) | |||
4. | Mo 27.4. | SJ | Rekursion, Termination | 03 |
5. | Do 30.4. | SJ | Induktion, Benutzerdefinierte Datentypen | 03 + 04 |
Mo 04.5. | (entfällt) | |||
6. | Do 07.5. | SJ | Polymorphie & Typklassen; (Abschnitt "Module" wird später nachgeholt) |
04 + 05 |
7. | Mo 11.5. | MH | Funktionen höherer Ordnung | 06 |
Do 14.5. | (Himmelfahrt) | |||
8. | Mo 18.5. | MH | Funktionen höherer Ordnung (Teil 2) | 06 |
Do 21.5. | (entfällt voraussichtlich) | |||
Mo 25.5. | (Pfingsten) | |||
9. | Do 28.5. | MH | Algorithmen | 07 |
10. | Mo 01.6. | MH | Laufzeitbetrachtungen | 07 |
Do 04.6. | (Fronleichnam) | |||
11. | Mo 08.6. | MH | Typsysteme | 08 |
12. | Do 11.6. | SJ | Typinferenz | 08 |
13. | Mo 15.6 | SJ | I/O, Applikative Funktoren, Monaden (Teil 1) | 09 |
Do 18.6. | (entfällt) | |||
14. | Mo 22.6. | SJ | I/O, Applikative Funktoren, Monaden (Teil 2) | 09 |
15. | Do 25.6. | SJ | Parallele Auswertung | 10 |
16. | Mo 29.6. | MH | Binäre Suchbäume, Funktionale Datenstrukturen | 07 |
17. | Do 02.7. | SJ | Verzögerte Auswertung und Striktheit | 11 |
18. | Mo 06.7. | MH | Semantik | 12 |
Do 09.7. | Tutoren | Fragestunde. Zur Vorbereitung Fragen im Forum zur Vorlesung posten. | ||
19. | Mo 13.7. | MH | Semantik | 12 |
20. | Do 16.7. | SJ | Ausblicke / Wiederholung / Fragen Zur Vorbereitung Fragen im Forum zur Vorlesung posten. |
|
* | Di 21.7. | Klausur |
Materialien
- Vorlesungsfolien und Programmbeispiele
- Übungsblätter und Musterlösungen werden mit UniworX zugänglich gemacht
- Videoaufzeichnung der Vorlesung des vergangenen Jahres
Klausuren
Erstklausur
- Termin: Dienstag, 21.07.15, 10-13 Uhr
- Anmeldezeitraum: 8. Juni bis 5. Juli per UniworX, Abmeldung bis 15. Juli möglich
- Klausureinsicht: siehe Termin
Nachklausur
- Termin: Donnerstag, 8. Oktober, 10-13 Uhr
- Anmeldezeitraum: 1. August bis spätestens 6. September, per UniworX; Studenten mit Nachteilsausgleich müssen diesen aus logistischen Gründen vor Ablauf der Anmeldefrist per eMail an Herrn Jost beantragen.
- Klausureinsicht: wird hier wenige Tage nach der Klausurkorrektur bekanntgegeben
- Ort & Raumeinteilung: Die Nachklausur findet im Hauptgebäude der LMU statt. Die Raumeinteilung erfolgt primär nach dem Anfangsbuchstaben Ihres Nachnamens. Es gilt der für Sie bei UniworX eingetragene Nachname, auch wenn dort ein Fehler vorliegen sollte, z.B. Vor- und Nachname in UniworX vertauscht sind.
Wer Wo Studenten mit angemeldeten Nachteilsausgleich B 101 A, B, C, D, E, F, G, H, I (Anfangsbuchstabe des Nachnamens) B 101 K, L, M, N M 218 J, O, P, Q, R, S, T, U, V, W, X, Y, Z B 201
Hinweise zur Klausur
- Eine rechtzeitige Klausuranmeldung per UniworX ist zur Teilnahme zwingend erforderlich; eine Abmeldung ist bis 1 Woche vor der Klausur ebenfalls per UniworX möglich.
- Wer auf die Möglichkeit der Klausurwiederholung verzichten möchte, darf sich auch zur Nachklausur anmelden, ohne zuvor an der Erstklausur teilgenommen zu haben. Dies bedeutet: Wer bei der Nachklausur durchfällt, kann diese Prüfung erst wieder im nächsten Sommersemester versuchen.
- Jeder Teilnehmer muss einen gültigen Lichtbildausweis und seinen Studentenausweis mitbringen.
- Gehen Sie rechtzeitig vor Beginn in den Ihnen zugewiesenen Raum! (Raumeinteilung siehe weiter oben.)
- Es sind keine Hilfsmittel zugelassen. Am Platz darf sich nur Schreibzeug und eventuell ein paar Nahrungsmittel befinden. Papier wird von uns gestellt und darf nicht mitgebracht werden. Taschen und Jacken müssen vorne an der Tafel abgelegt werden. Sollte jemand ein Telefon, mp3-Player, oder Ähnliches am Platz haben, ist das ein Täuschungsversuch, der dem Prüfungsausschuss gemeldet wird. Sollte ein Telefon klingeln, ist das eine Störung des Prüfungsablaufs und hat den Ausschluss von der weiteren Teilnahme zur Folge.
- Teilnehmer mit Nachteilsausgleichbescheinigungen müssen uns vor Ablauf der Anmeldefrist formlos per eMail darüber informieren, so dass wir die entsprechenden Anforderungen gewähren können.
- Hausaufgabenbonus
- Einige Hausaufgaben sind mit Punkten gekennzeichnet, welche durch sinnvolle Bearbeitung und Abgabe per UniworX gesammelt werden können. Mit diesen Punkten kann ein Bonus auf die Klausurnote erzielt werden: Wer die Klausur bestanden, aber noch nicht die volle Punktzahl erzielt hat, kann die Klausurnote durch diesen Bonus verbessern. Der Bonus beeinflusst also nicht, ob man bestanden hat oder durchgefallen ist. Wer x% der Summe aller Hausaufgabenpunkte erzielt hat, erhält x% der maximalen Klausurbonuspunktzahl. Die Klausurbonuspunktzahl erlaubt eine Verbesserung um ca. zwei Notenstufen.
- Da die Klausur eine Einzelleistung sein muss, und der Hausaufgabenbonus zur Klausur zählt, sind die Hausaufgaben ausschließlich alleine zu bearbeiten! Falls unser System ein Abschreiben entdeckt, kann Ihnen bereits im ersten Fall der gesamte Klausurbonus gestrichen werden, in schweren Fällen kann es auch zum Nichtbestehen des gesamten Moduls kommen. Weitere Details finden Sie unter www.medien.ifi.lmu.de/lehre/Plagiate-IfI.pdf.
- Der Klausurbonus gilt nur für Erstklausur und/oder Nachklausur im aktuellen Semester. Der Bonus verfällt für alle Wiederholungen. Der Klausurbonus errechnet sich selbstverständlich aus allen Übungsblättern, die Hausaufgaben mit Punkten enthalten, ggf. auch dem letzten Übungsblatt.
Literatur
- Miran Lipovača, "Learn You a Haskell for Great Good!", No Starch Press, 2011, ISBN 1-59327-283-9, kostenlose online-version verfügbar.
- Graham Hutton, "Programming in Haskell", Cambridge University Press, 2007, ISBN 0-52169269-5.
- Bryan O'Sullivan, Don Stewart, John Goerzen, "Real World Haskell", O'Reilly, November 2008, ISBN: 0-59651498-0, kostenlose online-version verfügbar.
- Simon Thompson, "Haskell: The Craft of Functional Programming", Second Edition, Addison-Wesley, 1999. ISBN 0-201-34275-8.
- Paul Hudak, John Peterson, Joseph Fasel, "A Gentle Introduction To Haskell", 2000, kostenloses online Tutorial
- Webseiten:
- haskell.org zum Donwnload der Haskell Platform und Haskell Wiki
- Dokumentation der Standard Programmbibliotheken
- Hoogle, spezielle Suchmaschine für Haskell
- Wikibook: Haskell
- Haskell :: Functional Programming with Types
- School of Haskell (kostenlose online Entwicklungsumgebung, zahlreiche interaktive online tutorials)
Weitere Informationen
- Fragen zur Vorlesung können im Diskussionsforum zur Vorlesung bei die-informatiker.net diskutiert werden.
Artikelaktionen