Programmiersprachen
| Veranstaltungstyp | Vorlesung |
|---|---|
| Dozenten | Dr. Tim Süß (Part 1: C), Prof. Dr. Stefan Kramer (Part 2: Prolog), Dr. Andreas Karwath (Part 3: Haskell) |
| Zeit | Mittwoch, 14:00–16:00 |
| Turnus | wöchentlich vom 18.04.2012 bis zum 18.07.2012 |
| Raum | 00 311 C02 (Chemie-Neubau) |
| Unterrichtssprache | Deutsch |
| Punkte | 6 |
WICHTIG:
Die Klausureinsicht Programmiersprachen findet am Dienstag, den 25.09.2012 um 14:00-15:00 in Zimmer: 03-428 statt.
Übungen
Termine
Für die Übungen sind die Termine in der folgenden Tabelle vorgesehen. Die Termine an den Feiertagen Christi Himmelfahrt, 17.05.2012 und Fronleichnam, 07.06.2012 werden nachgeholt. Sprechen Sie bitte Ihren Übungsgruppenleiter auf die Ersatztermine an.
Die Verteilung der Teilnehmer auf die Übungsgruppen erfolgt mit Hilfe eines von JOGUStINe unabhängigen Anmeldesystems.
Wir starten mit den Übungen in der 17. KW, also am 26.04.2012.
| Gruppe Nr. |
Termin |
Ort |
Übungsleiter |
E-Mail |
|---|---|---|---|---|
| 1 | Do. 10-12 |
PC-Pool Nr.2, 3. Stock |
André Müller |
muellan@uni-mainz.de |
| 2 | Do. 14-16 |
PC-Pool Nr.2, 3. Stock |
Martin Unold |
munold@students.uni-mainz.de |
| 3 | Fr. 8-10 |
05-136 |
Tim Seifert |
tseifert@students.uni-mainz.de |
Organisatorisches
Die Übungsaufgaben werden auf dieser Seite veröffentlicht. Abgabetermin ist im Regelfall 13.00 Uhr vor der jeweiligen nächsten Vorlesung. Beachten Sie ggf. auch die Terminangaben auf den Aufgabenblättern.
Im Normalfall stehen die Aufgaben kurz nach der Vorlesung bereit. Die Abgabe erfolgt sowohl schriftlich in den Übungskästen im Raum 05-230 als auch in einem Repository (siehe hierzu weiter unten). Näheres erfahren Sie in den Übungen.
Bitte geben Sie Ihre Übungen als Zweierteam ab. Falls Sie keine/n Partner/in finden, sprechen Sie bitte mit Ihrem Übungsgruppenleiter.
Die Teilnahme an den Übungen ist Pflicht! Es wird eine Anwesenheitsliste geführt.
Hinweise & Nützliche Links
C++
Die Übungsaufgaben werden sich am GNU-Compiler g++ orientieren, der für alle Betriebssysteme verfügbar ist (unter Windows z. B. als Teil von MinGW).
Zum Editieren von Quelltext stehen unter jedem Betriebssystem eine Vielzahl von Editoren zur Verfügung. Die Konsolen-Klassiker sind vi(m) und emacs, für Gnome gibt es z.B. gedit, für KDE gibt es unter anderem Kate, unter Windows ist man mit Notepad++ gut bedient.
Wer gleich eine vollständige IDE verwenden will, kann z.B. das Eclipse CDT (alle Betriebssysteme) oder KDevelop (Linux+KDE) benutzen. Allerdings benötigt man den Funktionsumfang einer IDE für die Bearbeitung der Übungen bei weitem nicht. Außerdem ist es für Anfänger sehr ratsam zunächst den "manuellen" Umgang mit einem Compiler zu erlernen.
Literaturempfehlungen
- "Einführung in die Programmierung mit C++" von Bjarne Stroustrup (dem C++-Erfinder), engl. Originaltitel "Programming: Principles and Practice Using C++", ideal für Einsteiger
- C++-Tutorial; knapp, aber gut strukturiert; für Einteiger, die schon eine Sprache wie z. B. Java beherrschen
- C++-Referenz; Auflistung der C++-Standard-Funktionalitäten mit Beispielen; C++11-Funktioniläten noch unvollständig beschrieben; gute Beipiele
- C++-Referenz; Auflistung der C++-Standard-Funktionalitäten; enthält schon die meisten C++11-Funktionalitäten; leider wenige Beispiele
- "The C++ Programming Language" von Bjarne Stroustrup (dem C++-Erfinder), das Standardwerk; bedingt für Einsteiger geeignet
-
"Effektiv C++-Programmieren" von Scott Meyers, engl. Originaltitel "Effective C++"
erfordert C++ Basis-Kenntnisse - "Exceptional C++" von Herb Sutter, zum überwiegenden Teil für Fortgeschrittene, dennoch sehr empfehlenswert, wenn man C++ professionell einsetzen will/muss
Prolog
Ein empfehlenswertes Prolog-System ist SWIProlog.
Windows-Nutzer können den SWI-Prolog-Editor zum Programmieren, Debuggen und Ausführen nutzen. Eine Editor-Alternative für alle Betriebssysteme ist das Eclipse PDT (Update Site: http://sewiki.iai.uni-bonn.de/public-downloads/update-site-pdt/)
Literaturempfehlungen
- "Simply Logical" von Peter Flach, auf der Homepage des Autors kann man sich sogar ein PDF-Exemplar herunterladen
Die Vorlesung wird sich an diesem Buch orientieren.
Haskell
Sehr empfehlenswert ist der Quasi-Standard, die Haskell Platform, die für alle Betriebssysteme verfügbar ist.
Statt eines einfachen Texteditors kann man zum Programmieren auch das Haskell-Plugin für Eclipse verwenden. Dieses bietet zwar einige Finessen, ist an manchen Stellen allerdings noch etwas unausgereift.
Literaturempfehlungen
-
"Programming in Haskell" von Graham Hutton
Die Vorlesung wird sich an diesem Buch orientieren. Auf der Homepage des Autors gibt es auch komplette Foliensätze und Video-Vorlesungen. - Ein gutes Tutorial für Einsteiger ist "Learn You a Haskell for Great Good"
- Ein recht brauchbares Tutorial zum Wiederholen oder Schnelleinstieg: Learn Haskell Fast and Hard.
- Wer mehr über Monaden (Beispiele, Motivation, Struktur, etc.) wissen möchte, sollte sich diesen Artikel durchlesen: "You could have invented monads"
Git Repositories
Die elektronische Abgabe der Übungen erfolgt in Git-Repositories. Die Server-Adresse wird Ihnen in den Übungen mitgeteilt. Um sich einloggen zu können, ist es erforderlich einen SSH-Public-Key (eine Textdatei) zu erstellen und diesen an André Müller zu schicken.
Eine sehr komfortable Lösung zur Nutzung der Repositories bietet SparkleShare. Dieses generiert automatisch einen SSH-Key und ermöglicht eine Dropbox-ähnliche Art der Dateiverwaltung ohne, dass man einen einzigen Git-Befehl kennen muss.
Fortgeschrittene Benutzer können natürlich über die Konsole oder mit anderen Tools auf die Repositories zugreifen und haben wahrscheinlich sowieso schon einen Public Key für SSH (Hier gibt es eine schöne Git-Referenz).
