Bild von Institut mit Unilogo
homeicon uni sucheicon suche siteicon sitemap kontakticon kontakt
unilogo Universität Stuttgart
 

Abteilung Software Engineering

 
 

Programmierkurs (Softwaretechnik)


Umfang: 4P
Stand: WS 2008/2009
Durchführung: Markus Knauß

Zielsetzung

Der Programmierkurs vermittelt die softwaretechnischen Aspekte der Programmierung. Ziel ist, den Teilnehmern gutes Programmieren zu vermitteln. Gutes Programmieren ist, den Programmcode sorgfältig zu erstellen, lesbar zu strukturieren, verständlich zu dokumentieren und zu prüfen.

Schwerpunkte der Lehrveranstaltung sind:

  • Programmierprinzipien
  • Programmierrichtlinien
  • Programmdokumentation
  • Programmieren im Team
  • typische Programmierfehler
  • Testverfahren
  • Programmverstehen
  • Programmierwerkzeuge


Inhalt


Aktuelles

  • 18.12.2008
    Die Folien, in denen das Experiment beschrieben ist, das Verena Wuchenauer im Plenum vorgestellt hat, können Sie hier herunterladen oder im Block mit den Plenumsfolien. Bitte melden Sie sich direkt bei Frau Wuchenauer, wenn Sie an dem Experiment teilnehmen wollen. Sie gibt Ihnen weitere Informationen.
    Folien [PDF]
  • 20.11.2008
    Die Teamverzeichnisse sind jetzt eingerichtet und können wie in der Vorlesung beschrieben genutzt werden.
  • 5.11.2008
    Am Fr. 7.11. findet kein Stützkurs für Studienanfänger statt.
  • 15.10.2008
    Am 21.11. wird die Übungsgruppe D statt in Raum 0.363 in Raum 0.447 stattfinden.
  • 11.9.2008
    Für alle Programmieranfänger und alle Interessierten bietet die Fachschaft Informatik einen Ada Vorkurs an. Ich empfehle Ihnen, an diesem Kurs teilzunehmen. Weitere Informationen finden Sie unter:
  • ständig
    Für alle Softwaretechniker gibt es eine Mailingliste. Eine Mitgliedschaft in dieser Liste wird dringend empfohlen, da aktuelle Mitteilungen über diese verschickt werden. Eine Anmeldung ist im WWW unter http://swt.uni-stuttgart.de/cgi-bin/mailman/listinfo/softies möglich.


Organisation

Der Programmierkurs besteht aus den drei Teilen: Plenum, Übungsgruppe und Team.

Im Plenum werden Kenntnisse vermittelt, die für die Lösung der Aufgabenblätter notwendig sind.

Aufgabenblätter bestehen aus einem Diskussionsteil und einem Programmierteil.

Lösungen zu Aufgaben des Diskussionsteils werden von einzelnen Studenten in der Übungsgruppe vorgetragen.

Die Bearbeitung der Aufgaben des Programmierteils erfolgt im Team. Dieses besteht aus drei Studenten. Die erarbeitete Lösung muss dem jeweiligen Tutor der Übungsgruppe zugesendet werden, damit dieser eine Bewertung durchführen kann. Die Bewertung des Programmierteils erfolgt für das Team, das die Lösung erstellt hat.

Bedingungen für den Schein des Programmierkurs (SWT)

Bei erfolgreicher Teilnahme am Programmierkurs (SWT) erhalten Sie einen Schein. Der Schein ist Voraussetzung für das Vordiplom. Eine erfolgreiche Teilnahme bedeutet, dass Sie die folgenden Bedingungen erfüllt haben.

  • Der Programmierteil von jedem Aufgabenblatt muss bearbeitet werden. Ein Aufgabenblatt gilt von einem Team als bearbeitet, wenn mindestens 10% der erreichbaren Punkte des Programmierteils, ohne Beachtung der Punkte freiwilliger Zusatzaufgaben, erreicht wurden.
  • Insgesamt muss jedes Team 2/3 der erreichbaren Gesamtpunkte aller Übungsblätter des Programmierteils, ohne Beachtung der Punkte freiwilliger Zusatzaufgaben, erreichen.
  • Für den Tutor muss erkennbar sein, dass alle drei Teammitglieder an der Aufgabenlösung beteiligt waren.
  • Jeder Student muss mindestens 50% der Aufgaben des Diskussionsteils votieren.
  • Jeder Student muss mindestens 1 Aufgabe des Diskussionsteils in der Übungsgruppe vortragen.

Aufgabenbearbeitung

Übungsaufgaben werden im Plenum vorbereitet und sind nach der Plenumsveranstaltung im WWW verfügbar (Übungsseite). Ein Aufgabenblatt besteht aus einem Diskussions- und einem Programmierteil.

Lösungen des Diskussionsteils werden als individuelle Leistung bewertet. Bearbeitete Aufgaben können in der Übungsgruppe votiert und vorgetragen werden. Eine schriftliche Abgabe der Lösungen wird nicht verlangt.

Die Bearbeitung der Aufgaben des Programmierteils erfolgt im Team und wird als Teamarbeit gewertet. Das bedeutet, dass jedes Teammitglied die gleiche Punktzahl erhält. Die erarbeitete Lösung muss dem Tutor für die Bewertung zugesandt werden (siehe Abgabemodalitäten). Die Ergebnisse der Bewertung durch den Tutor werden in der nächsten Übungsgruppe dem Team mitgeteilt.

Abgabemodalitäten

Abgabetermin für die Lösungen des Programmierteils ist jeweils Freitag 13:00h vor der Woche mit Plenums- und Übungsterminen. Verspätete Abgaben werden nicht akzeptiert! Die genauen Termine sind wie folgt:
Blatt Ausgabe Abgabe Besprechung
1 23.10.2008 31.10.2008, 13:00h 3.11.-7.11.2008
2 6.11.2008 14.11.2008, 13:00h 17.11.-21.11.2008
3 20.11.2008 28.11.2008, 13:00h 1.12.-5.12.2008
4 4.12.2008 12.12.2008, 13:00h 15.-19.12.2008
5 18.12.2008 9.1.2009, 13:00h 12.-16.1.2009
6 15.1.2009 23.1.2009, 13:00h 26.1.-30.1.2009
7 29.1.2009 6.2.2009, 13:00h 9.-13.2.2009

Die Abgabe der Lösungen des Programmierteils erfolgen elektronisch über das eClaus-System . Einzelheiten zur Abgabe werden im Plenum bekannt gegeben.

Bewertung

Lösungen der Aufgaben des Programmierteils werden durch Punkte bewertet. Die jeweils maximal erreichbare Punktzahl einer Aufgabe ist in der Aufgabenstellung genannt. Die Bewertung einer Lösung und somit die Verteilung der Punkte einer Aufgabe ist wie folgt:

  • 50% der Punkte werden für die Korrektheit vergeben,
  • 25% der Punkte werden für die Kommentierung des Programms vergeben und
  • 25% der Punkte erhält man für die Einhaltung des Styleguides.

Der Programmierteil wird als Teamleistung bewertet. Jedes Teammitglied erhält die gleiche Punktzahl.

Wird von mehreren Teams die gleiche Lösung abgegeben (Kopie), dann wird die erreichte Punktzahl der Lösung durch die Anzahl der Kopien geteilt. Geben zum Beispiel drei Teams die gleiche Lösung ab, dann erhält jedes Team 1/3 (ein Drittel) der erreichten Punktzahl.

Lösungen des Programmierteils werden nur bewertet, wenn diese pünktlich in eClaus abgegeben wurden. Probleme bei der Abgabe, zum Beispiel bei Nichtverfügbarkeit von eClaus, teilen Sie bitte umgehend ihrem Tutor mit.

Lösungen zu Aufgaben des Diskussionsteils können votiert werden. Die Votierung erfolgt schriftlich auf einer vom Tutor ausgegeben Votierliste. Wenn Sie eine Aufgabe votieren, dann müssen Sie die Lösung der Aufgabe in der Übungsgruppe vortragen können, um nachzuweisen, dass Sie die Aufgabe tatsächlich bearbeitet haben. Können Sie die Lösung der Aufgabe nicht vortragen, wird Ihre Votierung der Aufgabe vom Tutor gestrichen.


Übungsgruppen

Gruppe Termin Raum Tutor
A Mo. 17:30-19:00 0.453 Stefan Grohe
B Di. 17:30-19:00 0.118 Patrick Diehl
C Mi. 11:30-13:00 0.124 Wolfgang Fellger
D Fr. 14:00-15:30 0.363 Johannes Wettinger
E Fr. 14:00-15:30 0.457 Julian Trischler


Termine

Plenum

Das Plenum findet Donnerstags von 8:00h-9:30h im Raum V38.01 statt. Termine und Inhalte der Veranstaltung sind wie folgt:

Termin Inhalte Material
16.10.2008
  • Einführung in die Softwaretechnik (Prof. Dr. J. Ludewig)
Folien (PDF) Markus Knauß  
23.10.2008
  • Programmierwerkzeuge
  • Bearbeitung der Übungen
  • Gruppeneinteilung
Folien (PDF)
array_sort.adb  
30.10.2008
  • Software-Praktikum 2008 Präsentation
Folien (PDF) Markus Knauß
Folien (PDF) YetiPress  
6.11.2008
  • Grundlagen des Programmverstehens
  • Einführung in AdaDoc
Folien (PDF)
Number_Formatter.adb  
20.11.2008
  • Der Programmierkurs-(SWT)-Styleguide
  • Konfigurationsmanagement mit Subversion
Folien (PDF)
factorial.adb  
4.12.2008
  • Ausnahmebehandlung
  • Defensive Programmierung
  • Abstrakte Datentypen (ADT)
Folien (PDF)
Programmcode  
18.12.2008
  • Zeiger und Listen
  • Generische Programmeinheiten
  • Experiment Verena Wuchenauer
Folien (PDF)
Folien zum Experiment (PDF)  
15.1.2009
  • Programmtest
  • tg - Ada Testgenerator
Folien (PDF)
KWIC Entwurf Folien (PDF)
Programmcode  
29.1.2009
  • Fehlersuche
  • Fehlerbehebung
Folien (PDF)
Programmcode  
12.2.2009
  • Abschluss (Prof. Dr. J. Ludewig)
 

Übungen

Termin Inhalte
3.-7.11.2008 Besprechung Aufgabenblatt 1
17.-21.11.2008 Besprechung Aufgabenblatt 2
1.-5.12.2008 Besprechung Aufgabenblatt 3
15.-19.12.2008 Besprechung Aufgabenblatt 4
12.-16.1.2009 Besprechung Aufgabenblatt 5
26.-30.1.2009 Besprechung Aufgabenblatt 6
9.-13.2.2009 Besprechung Aufgabenblatt 7


Downloads und Links

Übungsblätter

Alle Übungsblätter und zugehörige Materialen finden Sie auf der Webseite für die Übungen.

Dokumentation

Werkzeuge

Editoren und IDEs


Literatur

Die gelisteten Bücher sind in der Fakultätsbibliothek und teilweise auch in der Universitätsbibliothek verfügbar.

  • John Barnes (2006): Programming in Ada 2005. Addison-Wesley Longman, Amsterdam.
    Das Standardwerk für die Ada-Programmierung. Die ältere Ausgabe, in der Ada 95 behandelt wird, genügt für den Programmierkurs.
  • Steve McConnell (2004): Code Complete - A Practical Handbook of Software Construction. Microsoft Press Corp., 2. Aufl.
    McConnell behandelt alle Aspekte, die zu beachten sind, wenn man guten Programmcode schreiben möchte.