Software-Entwicklung I WS 07/08

Aktuelle Informationen zur Vorlesung
finden Sie ebenfalls im Vorlesungsverwaltungssystem Luento. Sie sollten dort regelmäßig hineinschauen.

 

Die Tutoren der Übungsgruppen


Alexander Worret

Balthasar Weitzel

Benedict Baur

Günther Noack

Jan Bormann

Jan Ubben

Raphael Reitzig

Thorsten Schmelzer

Yannick Welsch

Allgemeine Informationen zur Vorlesung

Inhalt

Die Lehrveranstaltung führt in die Grundkonzepte der systematischen Entwicklung kleiner Softwaresyseme ein. Sie vermittelt die Grundlagen der Programmierung sowie elementare Abstraktionsmechanismen.

Detaillierte Inhaltsangabe:

  • Überblick über die Softwareentwicklung und ihre Bedeutung
  • Technische und formale Grundlagen der Programmierung, Sprachliche Grundzüge (Syntax und Semantik von Programmiersprachen)
  • Einführung in die Programmierung (Wert, elementare Datentypen, Funktion, Bezeichnerbindung, Sichtbarkeit von Bindungen, Variable, Zustand, Algorithmus, Kontrollstrukturen, Anweisung, Prozedur)
  • Darstellung von Algorithmen
  • Weitere Grundelemente der Programmierung (Typisierung, Parametrisierung, Rekursion, strukturierte Datentypen, insbesondere , z.B. Felder, Listen, Bäume)
  • Grundelemente der objektorientierten Programmierung (Objekt, Referenz, Klasse, Vererbung, Subtypbildung)
  • Abstraktion und Spezialisierung (insbesondere Funktions-, Prozedurabstraktion, Abstraktion und Spezialisierung von Klassen)
  • Spezifikation und Verifikation von Algorithmen, Terminierung
  • Funktionale Abstraktion, Datenabstraktion, Objektorientierung

Voraussetzungen

Mathematische Fähigkeiten entsprechend einem guten Abitur.

Einordnung

  • Informatik (Bachelor)
  • Informatik (Diplom)
  • Angewandte Informatik (Diplom)
  • Technoinformatik (Diplom)
  • Informatik (Lehramt Gymnasien)
  • Informatik (Lehramt Berufsbildende Schulen)
  • WI Informatik
  • Wirtschaftspädagogik-Technik

Umfang

Die Vorlesung hat einen Umfang von 4 V + 2 Ü + 2 PÜ. Für den Bachelorstudiengang Informatik werden 10 ECTS-LP angerechnet.

Aktuelles

Alle aktuellen Informationen rund um die Vorlesung finden sich im Vorlesungsverwaltungssystem Luento. Dort sollte man daher regelmäßig vorbeischauen!

Ansprechpartner

%MARKUS_LINK%
%JMG_LINK%
%MAREK_LINK%

Sprechzeiten

Sollte Ihre Frage oder Ihr Problem nicht auf anderem Wege gelöst werden können, nutzen Sie bitte unsere Sprechstunden:

%APH%Raum 34-412Freitag 9.00 - 10.00 Uhr 
%MAREK%Raum 32-437Freitag 9.00 - 10.00 Uhr 

Termine der Vorlesung

Dienstag11:45 Uhr - 13:15 UhrRaum 46-220 
Donnerstag11:45 Uhr - 13:15 UhrRaum 46-215 

Erste Veranstaltung: 23.10.2007

Newsgroup

Zu der Vorlesung wurde die Newsgroup kl.inf.se1 eingerichtet. Sie dient zur Diskussion der Studierenden untereinander.

Übungsbetreuung

In diesem Semester findet der Übungsbetrieb in Kleingruppen zu 4 Personen statt. Jede Kleingruppe ist einem Tutor zugeordnet, der die Gruppe individuell betreut. In der Sprechstunde des Tutors kann die Gruppe Fragen zur Vorlesung, zum aktuellen und zu bereits abgegebenen Übungsblättern besprechen. Des weiteren nimmt der Tutor die praktischen Aufgaben der Gruppe ab. Nur nach erfolgter Abnahme können die Punkte der praktischen Aufgaben angerechnet werden! Die Termine der Sprechstunde sowie der praktischen Abnahmen vereinbart der Tutor jeweils mit der Gruppe.

Zusätzlich zu der Arbeit in Kleingruppen wird von Jan Olaf Blech und Marek Gawkowski eine Mitarbeiter-Sprechstunde zu inhaltlichen Fragen der Vorlesung und der Übung angeboten.

Anmeldung zu den Übungen: Diese findet mit unserem elektronischen Vorlesungsverwaltungssystem Luento statt. Hierzu sind 3 Schritte erforderlich:

  1. Anmeldung bei Luento (ab sofort möglich)
  2. Belegung der Lehrveranstaltung “Software-Entwicklung I” durch Auswählen von “Student -> Veranstaltungsanmeldungen” und Betätigen von “Anmelden” bei der Vorlesung “Software-Entwicklung I” (ab sofort möglich)
  3. Belegung einer Übungsgruppe durch Auswählen von “Student -> Veranstaltungsanmeldungen” und Betätigen von “Anmelden” bei der gewünschten Übungsgruppe (ab 23.10.07, 13.30 Uhr möglich)

Ansprechpartner bei Fragen oder Problemen hinsichtlich Luento ist %NICOLE_LINK%.

Übungsbeginn: In der Woche ab dem 29.10.2007.

Die Übungsgruppentermine sind aus dem Vorlesungsverwaltungssystem Luento ersichtlich. Eine Bildergalerie der Tutoren gibt es auch.

Alle Übungsgruppen finden in 32-411 statt.

Um einen Kontakt zu den Tutoren herzustellen, können die folgenden Mailadressen verwendet werden:

Ausgabe der Übungsblätter: Dienstags nach der Vorlesung. Im Anschluss daran werden Übungsblätter im Regal vor dem SCI (Gebäude 48, 2. Etage) ausgelegt.

Abgabe der schriftlichen Lösungen: Bis zum darauffolgenden Montag, 12.00 Uhr. Die Abgabe erfolgt durch Einwurf in einen Übungskasten, der sich im Treppenhaus zwischen Geb. 32 und Geb. 34, 4. Etage, befindet. Bitte in das Fach einwerfen, das mit dem Namen des Tutors beschriftet ist!

Rückgabe der schriftlichen Lösungen: In der Sprechstunde des Tutors. Von nicht abgeholten Übungsblättern werden keine Punkte angerechnet!

Abnahme der praktischen Übungen: In der Abgabewoche in der Sprechstunde des Tutors. Die erfolgreiche Abnahme der praktischen Übungen ist verpflichtend für die Anerkennung der in der Abgabe erreichten Punkte.

Terminalraum-Reservierungen

Der Terminalraum 32-411 kann von den HörerInnen der Vorlesung SE I zu jeder Zeit genutzt werden. Sollte der Raum regelmäßig zu bestimmten Zeiten zu wenig Platz bieten, bitte eine Mail an Nicole Rauch senden. Es wird dann eine feste Reservierung des Raums vorgenommen.

Probeklausur

Am Dienstag, 15.01.2008 wird eine Probeklausur angeboten, die zur Vorbereitung auf die Abschlussklausur dient.

Die Probeklausur findet statt von 17:15 Uhr bis 18:45 Uhr in der Mensa 1 und Mensa 2. Einlass ist ab 17 Uhr.

An der Probeklausur teilnehmen darf nur, wer in einer Übungsgruppe eingetragen ist. Eine gesonderte Anmeldung ist nicht erforderlich. Bitte zur Probeklausur Personalausweis und Studentenausweis mitbringen!

Modulprüfung

Die Modulprüfung “Software-Entwicklung I” findet in Form einer schriftlichen Abschlussklausur statt. Der Termin wird rechtzeitig hier bekanntgegeben.

Am 28.02.2008 findet die Modulprüfung “Software-Entwicklung I” in Form einer schriftlichen Abschlussklausur statt.

Anmeldung: An dieser Modulprüfung teilnehmen darf nur, wer sich bis zum 13.01.2008 angemeldet hat. * Studierende des FB Informatik: Die Anmeldung erfolgt über das Online-PrüfungsAnmeldeSystem des Zentralen Prüfungsamtes * Studierende anderer Fachbereiche: Die Anmeldung erfolgt in Ihren jeweiligen Prüfungsämtern bzw. dem zentralen Prüfungsamt oder per eMail bei uns unter Angabe von Name, Matrikelnummer und Studienfach. Bitte klären Sie die genauen Modalitäten mit Ihrem Prüfungsamt ab. Sie allein sind dafür verantwortlich, dass die erbrachte Prüfungsleistung von Ihrem Prüfungsamt anerkannt wird. Im Zweifelsfall melden Sie sich bitte auf jeden Fall bei uns per eMail an.

Man kann sich bis eine Woche vor der Modulprüfung auf demselben Wege fristgerecht wieder von der Modulprüfung abmelden.

Wichtig: Auch wer die Zulassungsvoraussetzung zur Modulprüfung (s.u.) nicht erworben hat, muss sich fristgerecht abmelden, ansonsten wird dies als ein Versuch gewertet (auch wenn man faktisch gar nicht teilnehmen darf).

Wichtig: Bringen Sie bitte zur Modulprüfung Ihren Personalausweis und Ihren Studentenausweis mit! Ansonsten können Sie an der Prüfung nicht teilnehmen!

Prüfungstermin: Die Modulprüfung findet am 28.02.2008 von 8.30 Uhr - 10.30 Uhr in der Mensa I und II statt. Einlass ist ab 8.15 Uhr.

Die nächste Gelegenheit zum Ablegen der Modulprüfung “Software-Entwicklung I” gibt es im Sommer 2008, in der vorlesungsfreien Zeit. Wer jetzt die Zulassungsvoraussetzung erworben hat, kann die Modulprüfung entweder direkt nach Vorlesungsende oder im Sommer ablegen. Jede dieser Prüfungen wird als eigenständiger Versuch gewertet. Es stehen insgesamt zwei Versuche zum Bestehen der Modulprüfung zur Verfügung. Wird der zweite Versuch spätestens im 5. Fachsemester abgelegt und nicht bestanden, ist ein dritter Versuch zulässig.

Die nächste Gelegenheit zum Erwerb der Zulassungsvoraussetzung besteht im Wintersemester 08/09.

Für Wiederholer: Wer die Modulprüfung “Software-Entwicklung I” bereits ein- oder zweimal nicht erfolgreich abgelegt hat, muss an der Modulprüfung teilnehmen (laut Bachelor-Fachprüfungsordnung § 7 (2)).

Einsichtnahme: Die Einsichtnahme zur ersten Abschlussklausur findet statt am Mo. 10.3.08 um 10:00 Uhr in Raum 48-210. Bitte Personalausweis und Studentenausweis mitbringen!

Zulassungsvoraussetzung zur Modulprüfung

Als Zulassungsvoraussetzung zur Modulprüfung sind 50 % der Übungspunkte zu erreichen.

Bonuspunkte: Durch gutes Abschneiden bei der Probeklausur kann man Bonuspunkte erwerben, die dem Übungspunktekonto gutgeschrieben werden.

Materialien

Folien zur Vorlesung

InhaltPDF-DateiZuordnung 
Kapitel 01EinführungFolien 1-37 
Kapitel 2Grundkonzepte von SoftwaresystemenFolien 38-77 
Abschnitt 3.1Grundkonzepte funktionaler Programmierung, Teil 1Folien 78-134 
Abschnitt 3.1Grundkonzepte funktionaler Programmierung, Teil 2 (Die Foliennummern sind nicht korrekt.)Folien 134-158 
Abschnitt 3.1-2Grundkonzepte, Teil 3; Algorithmen, Teil 1Folien 158-190 
Abschnitte 3.2-3Algorithmen/Typisierung/Funktionen höherer OrdnungFolien 191-231 
Abschnitt 3.4Semantik, Testen und VerifikationFolien 232-274 
Abschnitt 4.1-2Begriff des Algorithmus’, Grundkonzepte prozeduraler ProgrammierungFolien 275-368 
Abschnitt 4.3Algorithmen in prozeduraler FormulierungFolien 369-435 
Abschnitt 4.4Verifikation prozeduraler ProgrammeFolien 436-467 
Abschnitt 5.1Objektorientierte Modellierung von SoftwaresystemenFolien 468-493 
Abschnitt 5.2Objekte, Klassen, KapselungFolien 493-570 
Abschnitt 5.3Subtypen und VererbungFolien 571-676 
Abschnitt 5.4Objektorientierte Bausteine und BibliothekenFolien 677-715 

Übungsblätter

TitelDatei 
Übungsblatt 1uebung01.pdf 
Übungsblatt 2uebung02.pdf 
Übungsblatt 3uebung03.pdf 
Übungsblatt 4uebung04.pdf 
Übungsblatt 5uebung05.pdf 
Übungsblatt 6uebung06.pdf 
Übungsblatt 7uebung07.pdf 
Übungsblatt 8uebung08.pdf 
Übungsblatt 9uebung09.pdf 
Übungsblatt 10uebung10.pdf 
Übungsblatt 11uebung11.pdf 
Übungsblatt 12 mit grossen Abbildungenuebung12_grosse_abbildungen.pdf 
Übungsblatt 13uebung13.pdf 
Übungsblatt 14uebung14.pdf 

Lösungsblätter

TitelDatei 
Lösungsblatt 1loesung01.pdf 
Lösungsblatt 2loesung02.pdf 
Lösungsblatt 3loesung03.pdf 
Lösungsblatt 4loesung04.pdf 
Lösungsblatt 5loesung05.pdf 
Lösungsblatt 6loesung06.pdf 
Lösungsblatt 7loesung07.pdf 
Lösungsblatt 8loesung08.pdf 
Lösungsblatt 9loesung09.pdf 
Lösungsblatt 10loesung10.pdf 
Lösungsblatt 11loesung11.pdf 
Lösungsblatt 12loesung12.pdf 
Lösungsblatt 13loesung13.pdf 
Lösungsblatt 14loesung14.pdf 

Probeklausur

TitelDatei 
Probeklausurklausur.pdf 
Lösungsvorschlagloesung.pdf 

Programmdateien und andere zusätzliche Materialien

TitelDatei 
ML Struktur!TimeCheckerTimeChecker.sml 
Input/Output HilfsdateiInputOutput.java 
!SurfXY.javaSurfXY.java 
!SurfXY_J1_4.java (Java1.4)SurfXY_J1_4.java 
!Musterlösung zur Weihnachtsrefactoringaufgabe von Markus StangeSurfXY.zip 
korrigierte Version von !SEGraphics.java vom 30.01.2008SEGraphics.java 
Einige Java-Dateien aus dem Miniprojekt “Flugbuchungssystem” für Aufgabe 1, Übungsblatt 12mini_projekt_flugbuchungssystem.tar 
Java-Quelldatei für Übungsblatt 14, Aufgabe 2AVLTreeDictMain.java 
Java-Quelldateien für Übungsblatt 14, Aufgabe3stauwarnungssystem_szenario.tar

Literaturempfehlungen

  • G. Goos:
    Vorlesungen über Informatik.
    Band 1 und 2. 2., 3. bzw. 4. Auflage (Goos, Zimmermann); Springer-Verlag.
  • M. Broy:
    Informatik. Eine grundlegende Einführung.
    Band 1 und 2. 2. Auflage; Springer-Verlag.
  • H. Balzert:
    Grundlagen der Informatik.
    Spektrum-Verlag Heidelberg, 1999.
  • J. D. Ullman:
    Elements of ML Programming. ML97 Edition.
    2nd edition; Prentice-Hall. In der Lehrbuchsammlung unter L INF 263 in größerer Stückzahl verfügbar.
  • L. C. Paulson:
    ML for the working programmer.
    2nd edition; Cambridge University Press.
  • M. Erwig:
    Grundlagen funktionaler Programmierung.
    Oldenbourg Verlag.
  • A. Poetzsch-Heffter:
    Konzepte objektorientierter Programmierung.
    Springer-Verlag, 2000. In der Lehrbuchsammlung unter L INF 4 in größerer Stückzahl verfügbar.
  • G. Krüger:
    Handbuch der Java-Programmierung.
    3. Auflage; Addison-Wesley. HTML-Version frei verfügbar.
  • B. Liskov:
    Program Development in Java: Abstraction, Specification, and Object-Oriented Design.
    Addison-Wesley.
  • B. W. Kernighan, D. Ritchie:
    C Programming Language.
    Prentice Hall, 1988.