pervasive logo
Softwareentwicklung 1
Course Softwareentwicklung 1
Type VO, UE
Lecturer Ferscha (VO)
Riener (UE G1, UE G3, UE G5)
Scheidl (UE G2)
Zachhuber (UE G4, UE G6)
Course-Id 340.131 (VO)
340.029 (UE G1)
340.030 (UE G2)
340.016 (UE G3)
340.043 (UE G4)
340.032 (UE G5)
340.031 (UE G6)
Hours/week 2
Zielgruppe Hörer der Studienrichtungen Bakkalaureatsstudium und Masterstudium Informatik (seit 2002/03), Informatik (K880), Wirtschaftsinformatik (K175), Lehramt Informatik, Informationselektronik (K289)
Ziele Diese erste und grundlegende Einführung vermittelt in weitgehend syntax-unabhängiger Weise moderne Methoden der Programmierung, bzw. soll unterstützt durch praktische Übungen eine Basiskompetenz zur eigenständigen Softwareentwicklung entwickeln. Im Vordergrund der Veranstaltung steht die Behandlung allgemein einsetzbarer Konzepte und Methoden der Programmentwicklung, veranschaulicht anhand von Java Beispielen.

In den Übungen soll der Stoff der Vorlesung vertieft werden.
Weiters soll anhand realistischer Beispiele der Umgang mit der modernen Programmiersprache JAVA geübt und erlernt werden.
Inhalt Nach einem Vorwort über Problemlösungsmethoden in der Informatik und der Festlegung der Begriffe Maschine, Algorithmus, Sprache, Grammatik und Programm werden Grundelemente der imperativen, teilweise der objektorientierten Programmierung eingeführt. Ausgehend von den Basiskonzepten wie Variablen, Datentypen, Anweisungen und Kontrollstrukturen werden auch grundlegende Programmiertechniken, nützliche Datenstrukturen und spezielle Konzepte wie Ereignisbehandlung und Multithreading vermittelt. Dabei wird - unter exemplarischer Verwendung der Programmiersprache JAVA - entlang der folgenden inhaltlichen Gliederung vorgegangen:
 

Begriffsfestlegungen: 

  • Problemlösungsstrategien
  • Maschinen, Daten und Befehle
  • Algorithmusbegriff
  • Formale Sprachen, Ausdrücke, Grammatiken
  • Programmiersprachen und Übersetzer

Syntaxkonstrukte:

  • Primitive Datentypen und Literale
  • Variablen, Namen, Deklaration, Initialisierung
  • Operatoren (arithmetische, Vergleichs-, Zuweisungs-, logische, bitweise, unäre)
  • Operatorprioritäten, Typumwandlung
  • Anweisungen, Sichtbarkeit und Anweisungsfolgen
  • Arrays und Zeichenketten
  • Kontrollstrukturen

Grundkonzepte zur Programmierung:

  • Objekte, Klassen, Attribute, Methoden
  • Referenzen auf Objekte, Konstruktoren
  • Programmierung mit Objekten
  • Prozeduren und Parameter
  • Ein- Ausgabe, Files
  • Interfaces
  • Erweiterungen von Klassen (Überladung, Vererbung)

Ausgewählte Spezielle Programmierkonzepte:

  • Dynamische Datenstrukturen (Beispiel Listen)
  • Überblick Dynamische Datenstrukturen (Graphen, Queues, Stapel, Mengen)
  • Selbstbezug und Beschreibungsmittel
  • Rekursive Algorithmen (lineare und nichtlineare, Beispiel Mergesort)
  • Rekursive Datenstrukturen (Beispiel Bäume)
  • Ereignisse und Ereignisbehandlung
  • Ausnahmen
  • Threads

Organisation der Programmierung:

  • Programmierkonventionen (Code Conventions)
  • Dateiorganisation, Gliederung, Kommentare
  • Strukturierungskonzepte für umfangreiche Programme
  • Dokumentation
  • Pakete
  • Tools und Entwicklungsumgebungen

Inhalt nach Vorlesungseinheiten Die hier angegebene Strukturierung spiegelt ungefähr die Organisation der Vorlesung über das Semester, jedenfalls aber die ausgegebenen Foliensätze, wieder:

  • 00 Organisatorisches
  • 01 Begriffsfestlegungen
  • 02 Programmierkonzepte
  • 03 Kontrollstrukturen
  • 04 Arrays (Felder)
  • 05 Klassen und Objekte 1
  • 06 Klassen und Objekte 2
  • 07 Erweiterung von Klassen
  • 08 Zeichen und Zeichenketten
  • 09 Rekursion
  • 10 Stack, Listen und Queues
  • 11 Bäume, Graphen und Mengen
  • 12 SWE1 Ausnahmebehandlung
  • 13 SWE1 Streams, Multithreading

Vorkenntnisse keine
Übungsmodus Es werden insgesamt 10 Übungen ausgegeben.
Jede Übung besteht in der Regel aus zwei gleichschweren Beispielen und ist in Summe 24 Punkte wert. Alle Übungsbeispiele werden von den Tutoren korrigiert und bewertet.
Die ausgearbeiteten Übungen sind jeweils in der Woche nach der Ausgabe bis Mittwoch 12:00 im entsprechenden Postkasten (Institut für Pervasive Computing, Physikgebäude 1.Stock) abzugeben.
Von den 10 Übungen müssen mindestens 8 abgegeben werden, wobei nur Übungen mit mindestens 6 erreichten Punkten als abgegeben zählen.
Werden mehr als 8 Übungen abgegeben, werden die besten 8 Übungen gewertet.
Aus diesen 8 Übungen wird der Punktedurchschnitt berechnet, der zu 50% die Übungsnote bestimmt. Die restlichen 50% der Übungsnote werden durch zwei Übungstests ermittelt. Der 1. Test findet in der Semestermitte (Ende November), der 2. am Semesterende (Ende Jänner). statt. Ab 3 abgegebenen Übungen wird ein Schein ausgestellt.
Beide Tests und die Übungen müssen jeweils positiv (mind. 50%) sein, um eine positive Übungsnote zu erreichen.
Unterlagen gesammelte Vorlesungsvorlagen
Primärliteratur H. Mössenböck: Sprechen Sie Java? Eine Einführung in das systematische Programmieren.

3. Auflage, dpunkt-Verlag, Heidelberg, 2005, ISBN 3-89864-362-X (Euro 29,00)

Umfassende Einführung in Programmierkonzepte anhand der Programmiersprache Java.


J. Bishop: Java lernen.
2. Auflage, Pearson Studium, München, 2003. D. Flanagan: Java in a Nutshell.
4. Auflage, O'Reilly, Köln, 2002.


E.-E. Doberkat, S. Dißmann: Einführung in die objektorientierte Programmierung mit Java.
Oldenbourg, München, 2002.

Einfache Einführungen, auch zum Selbststudium geeignet.


E.-W. Dietrich: Java 2 Von den Grundlagen bis zu Threads und Netzen.
Oldenbourg, München, 2001.

Sekundärliteratur P. Rechenberg: Was ist Informatik?
3. Auflage, Carl Hanser, München, 2000.

Einführung in alle Teilbereiche der Informatik für "Studenten aller Fachrichtungen und andere gebildete Informatik-Laien" (aus dem Vorwort). Sollte an den ersten drei Tagen eines Informatikstudiums gelesen werden.


K. Echtle, M. Goedicke: Lehrbuch der Programmierung mit Java.
dpunkt-Verlag, Heidelberg, 2000.

Eine in sich geschlossene Darstellung vieler im Rahmen dieser Veranstaltung relevanten Themenstellungen.

K. Arnold, J. Gosling, D. Holmes: The Java Programming Language.

Addison Wesley, 4. Aufl., 2005.

Das Referenzwerk zur Programmiersprache Java nunmehr in der 4. Auflage. Einführendes Buch, auch ohne  Vorkenntnisse gut lesbar, Schwerpunkt auf Konzepten der Objektorientierung, aktuellste Auflage (noch) nicht in Deutsch erhältlich

E.-W. Dietrich: Java 2 Von den Grundlagen bis zu Threads und Netzen.
Oldenbourg, München, 2001.
Leistungsnachweis schriftliche Prüfung zu den jeweils vorgesehenen Terminen