PSlogo
homeicon uni sucheicon suche siteicon sitemap kontakticon kontakt
unilogo Universität Stuttgart
 

Institut für Softwaretechnologie

 

Programmierübungen II

Die Programmierübungen sollen die Vorlesung "Einführung in die Informatik" unterstützen. Im Vordergrund steht der Erwerb praktischer Fähigkeiten. Teilnehmer lernen algorithmische Lösungen nach Prinzipien des Software Engineering systematisch in Programme umzusetzen.

Es wird die Programmiersprache Ada2005 verwendet. Behandelt werden Datentypen, statische und dynamische Datenstrukturen, Deklarationen, Variablen, Auswahlanweisungen, Schleifen, Blockstrukturen, Ausnahmebehandlungen, Funktionen und Prozeduren. Es werden die Tätigkeiten Neuentwicklung, Dokumentation, Test und Fehlersuche, Bewertung von Ergebnissen sowie Teamarbeit erlernt.

Aktuelles

22.10.2007: Die Scheine für die Programmierübungen 2 sind nun verfügbar. Sie können im Sekretariat der Abteilung Programmiersprachen abgeholt werden. Im Gegensatz zum Programmierkurs 1 wurden auch für Wirtschaftsinformatiker scheine auf Papier erstellt. Sie sollten diese bitte ebenfalls abholen.

28.09.07: Die Scheine für die Programmierübungen werden bis Ende Oktober erstellt werden. Es wird dann eine Nachricht hier veröffentlicht.

21.06.07: Alle Teilnehmer der Programmierübungen haben eine e-Mail mit einer Implementierung des AVL_Trees-Pakets erhalten. Sollten Sie diese e-Mail nicht bekommen haben, oder das Attachment defekt sein, so schreiben Sie mir bitte.
Ein Problem ist bereits bekannt: Die Zeilen bis zur ersten Leerzeile wurden in allen Attachments abgeschnitten. Dieser Fehler in der e-Mail Generierung fiel in den Tests leider nicht auf, da in den meisten Implementierungen nur Kommentare abgeschnitten werden und die Pakete voll funktionsfähig bleiben. Schreiben Sie mir bitte, falls die Implementierung, die Sie erhalten haben, dadurch nicht benutzbar ist. Sie erhalten umgehend eine korrigierte e-Mail.

15.06.07: Die Formulierung der Aufgabe 4.3 scheint etwas missverständlich. Hier einige Klarstellungen:
Es gibt Personen aus p, die abgewiesen werden, weil jemand ihre Reservierungsnummer erraten oder herausgefunden hat. Diese Personen aus p sind beleidigt und gehen nach Hause. Einige Personen, die nicht aus p sind und abgewiesen werden, können sich entscheiden doch noch eine reguläre Karte zu kaufen.
Personen der Gruppe r wissen von ihrer Nummer, dass ein solches Ticket existiert. Personen der Gruppe q raten relativ blind. Die Details des Ratevorgangs können individuell ausgeprägt werden. Das Ziel ist es den Einfluss auf die Ausführungszeit zu ermitteln, den viele erfolglose Suchen in der Container-Struktur haben.

01.06.07: Das Beispiel für einen Tauschzyklus vom 22.5. enthielt einen Fehler. Es wurde durch eine aktualisierte neue Version ersetzt. In der fehlerhaften Version wurde die Währung GBP mit einem Faktor von 1.0000 annotiert. Dieser Wert kam durch eine fehlerhafte Initialisierung zustande und ist offensichtlich gar nicht erreichbar. Durch den guten Wert von 1.0000 wurden weitere Wege über den Knoten fälschlicherweise nicht verfolgt.

22.05.07: Nach der heutigen Diskussion von Aufgabe 3.3 wurde die Aufgabenstellung vereinfacht. Eine neue Version des Übungsblatts (mit dem heutigen Datum) kann heruntergeladen werden. Kleinere Zyklen, die Bestandteil des maximalen Umtauschzyklus sind, müssen nicht behandelt werden. In diesem Beispiel ist der zu findende Zyklus rot hervor gehoben. Offensichtlich würde ein Tausch ZAR->Y->ZAR einen höheren Gewinn bringen; dies muss von Abgaben jedoch nicht erkannt werden. Sollte Ihre Lösung diesen Fall sinnvoll behandeln können, so wird dies ebenfalls als korrekt gewertet.

18.05.07: Die Implementierung von Quick Sort zu Übungsblatt 3 enthielt einen Fehler, durch den nur Arrays mit positivem Index-Bereich sortiert werden konnten. Bei negativen Zahlen wurde Constraint_Error erhoben. Es ist nun ein Update verfügbar (generic_quick_sort.adb, Revision 371). Die Funktionalität ist unverändert gegenüber der vorigen Version.

16.05.07: Die Ergebnisse der Programmierübungen 1, WS06/07 sind nun fertig.

04.05.07: Der Termin der Vortragsübung wurde auf dienstags, 8:00 in V38.01 verlegt. Die einzelnen Veranstaltungsdaten sind in der Tabelle angegeben.

19.04.07: Die Folien zur Kick-Off Veranstalltung sind nun im Netz.

Übungsaufgaben

Es finden jeweils wöchentlich im Wechsel eine Vortragsübung (Do, 8:00 Uhr in V38.01) und Gruppenübungen statt. Zur Teilnahme an den Gruppenübungen ist eine Anmeldung in dem eClaus-System erforderlich. Die benötigten Anmeldedaten werden am 26.4., 8:00 Uhr in der Vortragsübung bekannt gegeben.

Termin Raum Tutor Zielgruppe
Mi. 15:45-17:15 0.363 Keller alle
Mi. 17:30-19:00 0.447 Holz alle
Mi. 17:30-19:00 0.457 Keller alle
Mi. 17:30-19:00 0.463 Kessler alle
Do. 17:30-19:00 0.447 Holz alle
Do. 17:30-19:00 0.457 Erkilic alle
Do. 17:30-19:00 0.463 Jakovljevic alle
Fr. 14:00-15:30 0.363 Scherer alle
Fr. 15:45-17:15 0.447 Reuß alle
Fr. 15:45-17:15 0.457 Erkilic alle

In der Veranstaltung können je nach Maßgabe der relevanten Prüfungsordnung entweder ein Einzelschein oder (für den Studiengang Informatik) ein Anteil an dem Programmierkurs-Schein erworben werden. Zum Bestehen der Veranstaltung sind folgende Bedingungen zu erfüllen:

  • Regelmäßige Teilnahme an den Gruppenübungen
  • Vorstellung mindestens einer Bearbeitung in der Gruppenübung
  • Regelmäßige Abgabe von Bearbeitungen und Erwerb von 50% der erreichbaren Punkte
  • Fähigkeit die Funktionsweise der eigenen Abgaben zu erläutern, einschließlich nicht selbst erstellter Teile bei Teamarbeit

Bearbeitungen der Übungsaufgaben müssen der Programmierrichtlinie genügen. Die Bearbeitungen werden elektronisch in eClaus abgegeben.

Die folgende Tabelle zeigt Links zu allen bereits ausgegebenen Übungsblättern, sowie die relevanten Termine. Die Spalte Plenum gibt den Termin der Vortragsübung an, in der Fragen zu dem Übungsblatt gestellt werden können. In der Spalte Besprechung muss jeweils der Wochentag der eigenen Übungsgruppe ausgewählt werden.

Übungsblatt Ausgabe Plenum Abgabe Besprechung
Mi. Do. Fr.
Blatt 1 19.4. 26.4. 30.4. 2.5. 3.5. 4.5.
Blatt 2 30.4. 8.5. 14.5. 16.5. 24.5. 18.5.
Blatt 3, Quelltext 14.5. 22.5. 4.6. 6.6. 14.6. 8.6.
Blatt 4, Quelltext 4.6. 12.6. 18.6. 20.6. 21.6. 22.6.
Blatt 5, Quelltext 18.6. 26.6. 2.7. 4.7. 5.7. 6.7.
Blatt 6 2.7. 10.7. 16.7. 18.7. 19.7. 20.7.

Vortragsfolien

Leitung

Steffen Keul

Literatur

Die meiste aktuelle Literatur bezieht sich noch auf Ada 95. Die neue Version der Sprache (Ada 2005) ist von ISO noch nicht als Standard veröffentlicht, obwohl keine größeren Änderungen mehr erwartet werden. Die Unterschiede zwischen den beiden Versionen werden für die Programmierübungen keine Rolle spielen.