Programmierung 2
Pflichtvorlesung im Bachelorstudium
Sebastian Hack, Ralf Karrenberg
Über die Vorlesung
Diese Vorlesung behandelt die Grundprinzipien der imperativen/objektorientierten Programmierung. Dabei wird primär Java als Programmiersprache verwendet. In dieser Vorlesung lernen Sie:
- mittelgroße objektorientierte Systeme in Java zu implementieren und zu testen.
- kleinere, wohlstrukturierte Programme in C/C++ zu schreiben - im Wesentlichen als Umsetzung/Übersetzung der entsprechenden Java-Konzepte.
- sich in wenigen Tagen eine neue imperative/objektorientierte Sprache anzueignen, um sich in ein bestehendes Projekt einzuarbeiten.
Anmeldung
Wie angekündigt war die Anmeldung nur bis zum 24.10.2010, 23:59 Uhr möglich.
Dieser Termin ist nun überschritten und die Anmeldung damit abgeschlossen.
Eine Nachträgliche Anmeldung ist nur per Email (an Ralf Karrenberg) und nur in begründeten Ausnahmefällen möglich.
Bitte beachten Sie, dass Sie sich sich zusätzlich zur Anmeldung auf dieser Website im HISPOS sowie eventuell bei Ihrem jeweiligen Prüfungssekretariat für die Vorlesung anmelden müssen.
Neuigkeiten
- 2010-03-04
- Die Noten nach der Nachklausur sind online.
- 2010-03-01
- Die Nachklausur findet am Freitag um 9 Uhr im AudiMO statt.
- 2010-02-23
- Noten nach der Hauptklausur online. Details über das Benotungsschema finden Sie hier.
- 2010-02-22
- Die Bewertungen der GUIs sind jetzt im SVN Repository abrufbar. [+]
- 2010-02-18
- Die Punkte der Hauptklausur sind online. [+]
- 2010-02-17
- Die Ergebnisse des fuenften Programmierprojekts sowie die Referenzimplementierung sind online [+]
- 2010-02-16
- Die Liste der zur Klausur zugelassenen Studierenden ist jetzt online.
- 2010-02-01
- Die Ergebnisse des vierten Programmierprojekts sowie die Referenzimplementierung sind online
- 2011-01-25
- Das fuenfte Programmierprojekt ist online
- 2011-01-07
- Übungsblatt 8 ist online.
Termine
Die Vorlesung findet an folgenden Terminen statt:Da die Vorlesung 2 SWS umfasst, wird nicht jeden Montag und Donnerstag Vorlesung sein. Wir werden die Termine der Vorlesung an der Bearbeitung der Projektaufgaben ausrichten, so dass der benötigte Stoff immer besprochen worden ist. Insbesondere wird die Vorlesung in den ersten Wochen zweimal pro Woche stattfinden.
Prüfungsmodalitäten
Es wird eine Endklausur geschrieben und eine Nachklausur angeboten. Es können beide Klausuren geschrieben werden, die bessere zählt. Um zur Klausur zugelassen zu werden, müssen mindestens 50% der Punkte aus 10 Minitests (zu den Übungsblättern) erreicht werden. Die Endnote setzt sich aus 50% der Projekt- und 50% der Klausurpunkte zusammen. Zum Bestehen der Vorlesung müssen mindestens 60% der Gesamtpunkte erreicht werden. Die Termine der Klausuren sind im Kalender vermerkt.
Endklausur
Die Liste der zur Endklausur zugelassenen Studierenden ist jetzt online. Die Klausur findet am 18. Februar um 9:00 Uhr im Hörsaal AudiMO im Gebäude E2 2 statt.
Benotung
Die Noten für Programmierung 2 werden wie folgt berechnet: Aus den Anteilen der Punkte aus den Projekten und der Klausur wird der Mittelwert gebildet:
q = 0.5 * (Math.max(hauptklausur, nachklausur) / Klausurpunkte + projekte / 100.0);Zum Bestehen muss q >= 0.6 sein. Das Benotungsschema wird auch für die Nachklausur beibehalten.
Vorlesung
| Satz | Thema | Letzte Änderung | Zusätzliches Material |
|---|---|---|---|
| 00 | Organisatorisches | 2010-10-22 | |
| 01 | Imperative Programmierung | 2010-10-22 | |
| 02 | Einführung in MIPS | 2010-10-26 | |
| 03 | Imperative Programmiersprachen | 2010-11-11 | |
| 04 | Referenzen, Reihungen, Objekte | 2010-11-11 | |
| 05 | Dynamische Programmierung | 2010-11-15 |
|
| 06 | Strukturierte Programmierung | 2010-11-18 | |
| 07 | Vererbung | 2010-11-22 | |
| 08 | Sammlungen | 2010-12-06 | |
| 09 |
Verschiedenes Überladen |
2010-12-09 | |
| 10 |
Refaktorisieren |
2010-12-13 | |
| -- |
Weihnachtsvorlsung: Tricks mit Bits |
2010-12-16 | |
| 11 |
Übersetzer |
2011-01-03 | |
| 12 |
Übersetzer: Code Erzeugung |
2011-01-06 | |
| 13 |
Entwurfsmuster |
2011-01-06 | |
| 14 |
C |
2011-01-17 | |
| 15 |
C++ |
2011-01-20 | |
| 16 |
GUIs |
2011-01-27 | Beispielcode |
Übung
Der Übungsbetrieb besteht aus 2 Teilen: wöchentlichen Papierübungen und mehrwöchigen Projekten.
Die "Prog2-Woche" beginnt immer Montags (Vorlesungstag), die Übungen der entsprechenden Woche beginnen jedoch immer erst in der folgenden Woche.
Entsprechend ist Freitag der letzte Tag der alten Prog2-Woche (in Bezug auf Mini-Tests und Übungen). Es muss also niemand für die Tests "vorlernen".
Die Zuordnung der Studenten zu den Tutorien können Sie hier einsehen: Tutorienzuordnung.
Übungsgruppen
Die Übungsgruppen werden voraussichtlich zu folgenden Terminen stattfinden:
| Gruppe | Tag | Zeit | Ort | Tutor |
|---|---|---|---|---|
| 1 | Montag | 10:00-12:00 | SR015 | Sven Hafeneger |
| 2 | Montag | 10:00-12:00 | SR016 | Elias Hartz |
| 3 | Mittwoch | 08:00-10:00 | SR015 | Eva Koenig |
| 4 | Mittwoch | 08:00-10:00 | SR016 | Alexander Junge |
| 5 | Freitag | 10:00-12:00 | SR014 | Thorsten Will |
| 6 | Freitag | 10:00-12:00 | SR015 | Tobias Salzmann |
| 7 | Freitag | 12:00-14:00 | SR016 | Ralf Jung |
| 8 | Freitag | 14:00-16:00 | SR014 | Daniel Mohr |
Office Hours
Wir bieten tägliche office hours an, an denen Sie die Möglichkeit haben, Fragen zur Vorlesung, Übungsblättern oder Projekten in Ruhe ausserhalb der Übungsgruppen zu besprechen. Diese finden immer in E1.1, SR U12 statt.
Übungsblätter
Die Übungsblätter bitte am Abgabetag bis 18:00 in den "Programmierung 2" Kasten im Erdgeschoss von E1 3 einwerfen.
| Blatt | Ausgabe | Abgabe | Revision |
|---|---|---|---|
| Blatt 1 | 2010-10-25 | 2010-11-01 | 2 |
| Blatt 2 | 2010-11-03 | 2010-11-08 | 1 |
| Blatt 3 | 2010-11-11 | 2010-11-17 | 2 |
| Blatt 4 | 2010-11-19 | 2010-11-24 | 1 |
| Blatt 5 | 2010-11-25 | 2010-12-01 | 2 |
|
Blatt 6 Polynom.java |
2010-12-02 | 2010-12-08 | 1 |
|
Blatt 7 CollSpeed.java |
2010-12-22 | 2011-01-03 | 1 |
| Blatt 8 | 2011-01-07 | 2011-01-12 | 1 |
| Blatt 9 | 2011-01-13 | 2011-01-19 | 1 |
| Blatt 10 | 2011-01-23 | 2011-01-26 | 1 |
Projekte
Eine allgemeine Dokumentation über die Entwicklungswerkzeuge und den Abgabeprozess finden Sie in unserem HowTo. Eine Liste der häufig gestellten Fragen (samt Antworten) ist ebenfalls darin enthalten.
Bitte stellen Sie sicher, dass Sie, bevor Sie sich mit Fragen oder Problemen an einen Tutor wenden, diese Anleitung gelesen und das Forum durchsucht haben.
| Projekt | Ausgabe | Abgabe | Bearbeitungszeit | Anteil der Punkte | ID | Dokumentation |
|---|---|---|---|---|---|---|
| Hello World | 2010-11-08 | 2010-11-14 | 1 Woche | 5% | prog2.project1/helloworld | Projekt 1 |
| Intelligente Bildskalierung | 2010-11-15 | 2010-11-28 | 2 Wochen | 15% | prog2.project2/seamcarving | Projekt 2 Beispielbilder |
| DPLL | 2010-11-29 | 2010-12-19 | 3 Wochen | 25% | prog2.project3/dpll | Projekt 3 |
| MIPS Compiler | 2011-01-03 | 2011-01-28 | 3 Wochen | 25% | prog2.project4/compiler | Projekt 4 Demo.java |
| PacMan | 2011-01-24 | 2011-02-13 | 3 Wochen | 30% | prog2.project5/pacman | Projekt 5 |
Die Bewertungskriterien und Ergebnisstatistiken zu den Projekten sowie zusätzliche Kommentare können hier eingesehen werden: Projektergebnisse.
Encoding / Umlaute
Im letzten Semester gab es Probleme mit Umlauten in den nächtlichen Tests:
unmappable character for encoding UTF8In diesem Fall stellen Sie bitte in Ihrem Eclipse das Encoding um:
Preferences -> General -> Workspace -> Text file encoding auf UTF-8 umstellen.
Ausgaben auf der Konsole
Wenn Sie etwas auf der Konsole ausgeben, achten Sie bitte darauf dies für die nächtlichen Testläufe zu deaktivieren. Da wir mitunter Ihre Implementierung mit sehr großen Datenmengen testen, kann das schnell zu einer Menge Ausgaben führen. Dies kann eventuell den Build-Server beeinträchtigen, sodass Sie dann keine Email mit dem Testergebnis mehr erhalten.
Forum
Unter https://forum.st.cs.uni-saarland.de finden Sie das Forum. Sie haben dort automatisch einen Account der nach ihrer Anmeldung angelegt wird. Ihr Benutzername für das Forum ist Ihr Email-Benutzername (z.B. s9abcd im Fall von s9abcd@stud.uni-saarland.de). Das zugehörige Passwort entnehmen Sie bitte der Email, die Sie als Anmeldebestätigung erhalten haben.
Sollten Sie bereits im Sommersemester 2010 an der Vorlesung teilgenommen haben, so verwenden Sie für das Forum ihr ursprüngliches Passwort (sofern Sie mit derselben Email-Adresse registriert sind).
Um die Anmeldeseite über eine Verbindung von ausserhalb des Universitäts-Netzwerks zu öffnen müssen Sie sich zunächst mit Benutzer 'prog2-2010' und Passwort 'prog2-2010' authentifizieren.
Im Forum können Sie sich mit anderen Studenten und den Tutoren über die Vorlesung, die Übungen und die Projekte austauschen. Bei technischen Problemen und Verständnisfragen sollten Sie dort zuerst nachschauen, häufig findet sich dort die Lösung zu bekannten Problemen.
Bücher
Die Vorlesung folgt keinem Buch. Zu den Verschiedene Themen sind unterschiedliche Bücher hilfreich. Diese finden Sie in der Liste unten.
![]() |
Gerhard Goos: Vorlesungen über Informatik 2 Ausführliche Einführung in die imperative und objektorientierte Programmierung anhand der Sprache Sather. Enthält Kapitel über schrittweise Verfeinerung und schwächste Vorbedingungen. Online aus dem Uni-Netz verfügbar. |
![]() |
Chirstian Ullenboom: Java ist auch nur eine Insel Umfassende Einführung in Java. Gut zum Nachschlagen und Vertiefen der Sprachelemente geeignet. Online verfügbar. |
![]() |
James Gosling et al.: The Java Language Specification Der offizielle Java Sprachbericht. Online verfügbar. |


