Programmierung 2
Pflichtvorlesung im Bachelorstudium
Ü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:
- wie imperative/objectorientierte Programme auf heutigen Rechnern ausgeführt werden.
- kleine Programme in Maschinensprache zu schreiben.
- kleinere Programme in C/C++ zu schreiben.
- mittelgroße objektorientierte Systeme in Java zu implementieren und zu testen.
- sich in wenigen Tagen eine neue imperative/objektorientierte Sprache anzueignen, um sich in ein bestehendes Projekt einzuarbeiten.
Neuigkeiten
- 2012-05-16
- Übungsblatt 4 wurde veröffentlicht.
- 2012-05-15
- Einige Fehler im MIPS-Teil des Skripts wurden korrigiert. Beachten Sie insbesondere die Regelschemata.
- 2012-05-09
- Übungsblatt 3 wurde veröffentlicht.
- 2012-05-08
- Die Mittsemesterklausur wurde gestrichen.
- 2012-05-06
- Auf dem Übungsblatt 2 wurde Aufgabe 2.0 nochmals korrigiert.
- 2012-05-05
- Auf dem Übungsblatt 2 wurde Aufgabe 2.0 korrigiert.
- 2012-05-01
- Übungsblatt 2 wurde veröffentlicht.
- 2012-04-27
- Der MIPS Teil des Skripts wurde veröffentlicht.
- 2012-04-26
- Auf dem Übungsblatt 1 wurden mehrere Fehler korrigiert.
- 2012-04-24
- Das Forum ist freigeschaltet.
Forum
Im Forum können Sie sich ab sofort über die Vorlesung austauschen. Wenn Sie die Übungsgruppe wechseln möchten, ist dies der Ort um einen Tauschpartner zu suchen.
Um sich einzuloggen benutzen Sie als Benutzerkennung den Prefix Ihrer, bei der Anmeldung angegebenen, Adresse. Zum Beispiel s9bspiel, wenn sie s9bspiel@stud.uni-saarland.de angegeben haben. Das Passwort ist das gleiche wie das, das Sie in der Anmeldebenachrichtigung erhalten haben, es sei denn Sie waren bereits mit dieser Benutzerkennung im System angemeldet. Unter diesen Umständen haben Sie Ihr altes Passwort behalten.
Um die Anmeldeseite über eine Verbindung von ausserhalb des Universitäts-Netzwerks zu öffnen müssen Sie sich zunächst mit Benutzer 'prog2-2012' und Passwort 'prog2-2012' authentifizieren.
Anmeldung
Die Registrierung war bis zum 22.04. um 23:59 Uhr, geöffnet. Das Ergebnis der Verteilung der Studenten auf die Tutorien können Sie hier ansehen.
Falls Sie Angaben korrigiern möchten, melden Sie sich bitte bei Klaas Boesche.
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.
Skript
Zu den ersten Teilen der Vorlesung gibt es ein Skript. Dieses wird immer wieder aktualisiert und hier veröffentlicht.
Wenn Sie Fehler im Skript finden, melden Sie diese bitte an Klaas Boesche und geben Sie dabei die jeweilige Zeilennummer und Revision (auf jeder Seite unten) an.
Vorlesung
| Vorlesung | Foliensatz | Thema | Letzte Änderung | Zusätzliches Material |
|---|---|---|---|---|
| 17.04.2012 | 00 | Organisatorisches | 23.04.2012 | |
| 20.04.2012 | -- | Arithmetik im Rechner/MIPS Assembler | 27.04.2012 | |
| 24.04.2012 | -- | MIPS Assembler | 27.04.2012 | |
| 27.04.2012 | -- | MIPS Assembler | 27.04.2012 | |
| 04.05.2012 | -- | MIPS Assembler | 08.05.2012 | |
| 08.05.2012 | -- | MIPS Assembler | 08.05.2012 |
|
| 11.05.2012 | 03 | C | 11.05.2012 |
Software
Um mit MIPS Assembler experimentieren zu können, installieren Sie sich bitte den MARS MIPS Simulator. Für diesen benötigen Sie Java.
Für die Vorlesung müssen Sie sowieso ein Java Development Kit installieren. Unter Linux finden Sie diese in der Paketverwaltung ihrer jeweiligen Distribution zum Beispiel als openjdk/openjdk-6. Wenn Sie Windows benutzen, können Sie bei Oracle die Java SE 6 JDK herunterladen.
Den heruntergeladenen MIPS Simulator "Mars_4_2.jar" können sie dann mit "java -jar Mars_4_2.jar" von der Kommandozeile ausführen, wenn diese sich im gleichen Verzeichnis befindet. Unter Windows verknüpft Oracle Java üblicherweise .jar-Dateien automatisch mit java, so dass sie diese mit einem Doppelklick ausführen können.
Virtuelle Maschine für den C Compiler
Wenn Sie auf ihrem System keinen C Compiler installiert haben, so können Sie sich in den CIP-Pools einloggen, und den C Compiler dort verwenden, oder sich ein kleines Linux System in einer virtuellen Maschine (VM) installieren. Wir haben für Sie solch eine virtuelle Maschine vorbereitet. Gehen Sie wie folgt vor:
- Installieren Sie VirtualBox um die virtuelle Maschine zu starten. Wählen Sie "VirtualBox 4.1.14 for X hosts", wobei X ihr Betriebssystem ist.
- Laden Sie die virtuelle Maschine hier herunter und entpacken Sie diese mit einem geeigneten Programm. Für Windows bietet sich 7-zip an.
- Öffnen Sie die Datei Prog2ArchLinux.vbox mit VirtualBox.
- Warten Sie bis das Betriebssystem der VM gestartet ist und der Login erscheint. Sie können sich mit dem Programmierung2 Benutzer und dem Passwort "prog2" einloggen.
- Eingeloggt finden Sie unten links ein Startmenü und daneben einen Dateimanager, ein Terminal und zwei verschiedene Editoren.
- Im Terminal können Sie die Befehle aus dem C-Foliensatz benutzen um Programme zu kompilieren und auszuführen.
Zusätzlich zum C-Compiler ist auch ein C-Compiler installiert, der die Programme in MIPS-Befehle übersetzt. Wenn Sie "mipsel-linux-gnu-gcc -S -o - test.c" eingeben wird die C-Quelldatei "test.c" übersetzt und der Compiler gibt das Programm in MIPS-Befehlen aus. Beachten Sie, dass dieser auf reale MIPS-Prozessoren angepasst ist und deshalb weitere Deklarationen und Befehle besitzt.
Übung
Übungsblätter
| Blatt | Ausgabe | Revision |
|---|---|---|
| Arithmetik | 2012-04-24 | 2 |
| Einführung in MIPS Assembler | 2012-05-01 | 3 |
| Programmieren in MIPS Assembler und Hauptprogramm für die Sortieraufgabe | 2012-05-08 | 3 |
| Programmieren in C und Rumpf für Aufgabe 4.3 | 2012-05-16 | 1 |
Der Übungsbetrieb besteht aus 3 Teilen: wöchentlichen Papierübungen, den darauf aufbauenden Minitests und mehrwöchigen Projekten.
Die "Prog2-Woche" beginnt immer dienstags (Vorlesungstag), die Übungen der entsprechenden Woche beginnen jedoch immer erst in der folgenden Woche.
Entsprechend ist Montag der letzte Tag der alten Prog2-Woche (in Bezug auf Minitests und Übungen). Es muss also niemand für die Tests "vorlernen". Die Abgabe der Übungsblätter ist nicht verpflichtend. Die Minitests sind allerdings darauf ausgerichtet, dass alle auf dem jeweiligen Übungsblatt behandelten Konzepte verinnerlicht wurden.
Übungsgruppen
Die Übungsgruppen werden zu folgenden Terminen stattfinden:
| Gruppe | Tag | Zeit | Ort | Tutor | |
|---|---|---|---|---|---|
| 1 | Mittwoch | 12:00-14:00 | E1 3, SR 14 | Samuel Leisering | |
| 2 | Mittwoch | 12:00-14:00 | E1 3, SR 15 | Dustin Kahl | |
| 3 | Mittwoch | 12:00-14:00 | E1 3, SR 16 | Lukas Löhle | |
| 4 | Mittwoch | 12:00-14:00 | E1 7, 323 | Curd Becker | |
| 5 | Mittwoch | 12:00-14:00 | E1 1, U12 | Thomas Rupp | |
| 6 | Mittwoch | 12:00-14:00 | E2 1, 001 | Constantin Berhard | |
| 7 | Mittwoch | 14:00-16:00 | E1 3, SR14 | Manuel Zapp | |
| 8 | Mittwoch | 14:00-16:00 | E1 3, SR15 | Alexander Schlosser | |
| 9 | Mittwoch | 14:00-16:00 | E1 3, 107 | Jonas Schneider | |
| 10 | Mittwoch | 14:00-16:00 | E1 1, U12 | Michael Backenköhler | |
| 11 | Mittwoch | 14:00-16:00 | E1 7, 323 | Tim Ruffing | |
| 12 | Mittwoch | 14:00-16:00 | E2 4, SR8 (318) | Kai Glauber | |
| 13 | Mittwoch | 16:00-18:00 | E1 3, SR15 | David Poetzsch-Heffter | |
| 14 | Mittwoch | 16:00-18:00 | E1 3, SR16 | Alexander Prange | |
| 15 | Mittwoch | 16:00-18:00 | E1 3, 107 | Constantin Berhard | |
| 16 | Mittwoch | 16:00-18:00 | E1 1, U12 | Julian Jacques Maurer | |
| 17 | Mittwoch | 16:00-18:00 | E1 7, 323 | Niklas Grimm | |
| 18 | Mittwoch | 16:00-18:00 | E2 1, 007 | Tobias Theobald |
Termine
Die Vorlesung findet dienstags 14:15-16:00 und freitags 8:30-10:00 im Günter-Hotz-Hörsaal in E2 2 statt.
Alle Übungsgruppen finden mittwochs von 12:00-18:00 statt. Dort werden auch die Minitests geschrieben.
Die genauen Termine stehen in folgendem Kalender.
Prüfungsmodalitäten
Es wird eine Endklausur geschrieben. Zur Endklausur wird eine Nachklausur angeboten. Die Termine der Klausuren sind im Kalender vermerkt. Es können sowohl die Endklausur, als auch die Nachklausur geschrieben werden, die bessere Punktzahl geht in die Note ein. Um zur Endklausur und Nachklausur zugelassen zu werden, müssen mindestens 50% der Punkte aus 8 Minitests (zu den Übungsblättern) erreicht werden.
Benotung
Die Noten für Programmierung 2 werden wie folgt zu 50% aus den Anteilen der Punkte aus den Projekten und zu 50% aus der Hauptklausur/Nachklausur berechnet:
q = 0.5 * (max(Hauptklausur, Nachklausur) / Klausurpunkte) + 0.5 * (min(Projekte, 100) / 100.0)
Zum Bestehen muss q >= 0.6 sein. Die Zahl q wird nach der Hauptklausur auf die Notenskala abgebildet (linear interpoliert). Dieses Schema wird auch zur Nachklausur beibehalten.Bücher
Die Vorlesung folgt keinem Buch direkt. Zu den verschiedenen 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. |


