Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
Softwareentwicklung 1
| 339.170 |
Weninger |
Mi 15:30-17:00 |
Raum HS 18 |
Beginn: 04.03.2026 |
Die Vorlesung findet in Präsenz statt.
Der Übungsunterricht setzt voraus, dass zuvor am selben Tag die Vorlesung besucht wurde.
Ziele
Diese Vorlesung ist eine Einführung in die Programmierung. Sie behandelt grundlegende Konzepte der
imperativen und objektorientierten Programmierung, schult das algorithmische Denken, erläutert
Programmentwicklungstechniken und geht auch auf Fragen des Programmierstils und der Dokumentation ein.
Als Programmiersprache wird Java verwendet. Die gelehrten Konzepte lassen sich aber auch leicht
auf andere Sprachen wie C, Pascal oder Python übertragen.
Inhalt
- Grundlagen
Grundbegriffe, Algorithmen und Ablaufdiagramme, Programmiersprachen
- Einfache Programme
Programmstruktur und -ausführung, Grundlagen, Zahlentypen, Kommentare und Namen, Arithmetische Ausdrücke, Ein/Ausgabe, Fehlerquellen
- Verzweigungen
Datentyp boolean, (Zusammengesetzte) Vergleiche, if-Anweisung, switch-Anweisung, Bedingte Ausdrücke
- Schleifen
while-Schleife, do-while-Schleife, for-Schleife, Abbruch von Schleifen, Endlosschleifen
- Eindimensionale Arrays
Grundlagen, Beispiele, Referenzsemantik, foreach-Schleife
- Zeichen
Grundlagen, Beispiel
- Strings
String, StringBuilder, Beispiele
- Zweidimensionale Arrays
Grundlagen, Beispiele
- Methoden
Methoden und Parameter, Funktionen, Lokalität, Sichtbarkeit, Lebensdauer von Variablen, Überladen von Methoden, Beispiele
- Klassen (Objektorientierung I)
Klassen und Objekte, Beispiele, Klassen und Arrays, Methoden, Konstruktoren, Beispiele
- Vererbung (Objektorientierung II)
Vererbung, Dynamische Bindung, Klasse Object, Abstrakte Klassen, Interfaces, Sichtbarkeiten, Getter + Setter
- OOP Schüsselwörter (Objektorientierung III)
static, final
- Pakete
Idee, Export und Import, Pakete und Verzeichnisse, Sichtbarkeitsattribute, Beispielpakete aus der Java-Bibliothek
- Enumerationen
Motivation, Einfache Enumerationstypen, Enumerationstypen als Klassen
- Rekursion
Prinzip, Beispiel: GGT, Beispiel: Binäres Suchen, Beispiel: Türme von Hanoi
- Dynamische Datenstrukturen
Objekte und Referenzen, Unsortierte Liste, Sortierte Liste, Bäume
- Ausnahmebehandlung
Prinzip, Try-Anweisung, Arten von Ausnahmen, Implementierung von Ausnahmen, Suche nach passender Catch-Klausel, Spezifikation von Ausnahmen im
Methodenkopf, Beispiel
- Dokumentationskommentare
- Schrittweise Verfeinerung
Prinzip, Beispiel: Wortzählung, Beispiel: Stichwortverzeichnis
- Grammatiken
Grundbegriffe, EBNF, Reguläre Ausdrücke
- Programmierstil
Namensgebung, Strukturierung, Lesbarkeit, Kommentierung, Performance, Beispiele
Termine
Termine
| Datum |
Thema |
| Mi 04.03. |
1. Grundlagen |
| Mi 11.03. |
2. Einfache Programme |
| Mi 18.03. |
3. Verzweigungen, 4. Schleifen |
| Mi 25.03. |
5. 1D-Arrays, 6. Zeichen, 7. Strings |
| Mi 01.04. |
** Entfall: Osterferien ** |
| Mi 08.04. |
** Entfall: Osterferien ** |
| Mi 15.04. |
8. 2D-Arrays, 9. Methoden |
| Mi 22.04. |
10. Klassen / Objektorientierung I |
| Mi 29.04. |
11. Vererbung / Objektorientierung II |
| Mi 06.05. |
12. Kennwörter / Objektorientierung III, 13. Pakete, 14. Enumeration, 15. Rekursion |
| Mi 13.05. |
** Entfall: Christi Himmelfahrt am 14.5. (Übungstag) ** |
| Mi 20.05. |
16. Dynamische Datenstrukturen |
| Mi 27.05. |
17. Ausnahmen, 18. Dokumentationskommentare |
| Mi 03.06. |
** Entfall: Fronleichnam am 4.6. (Übungstag) ** |
| Mi 10.06. |
19. Schrittweise Verfeinerung |
| Mi 17.06. |
20. Grammatiken, 21. Programmierstil |
| Mi 24.06. |
(VL-Klausur) |
Downloads
Die Folien dieser Vorlesung können von der Moodle-Seite dieser Lehrveranstaltung heruntergeladen werden.
Die Vorlesung wird aufgezeichnet, aber es wird dringend geraten, die Vorlesung zu besuchen, da hier der aktuelle Stoff vorgetragen wird und auch Fragen
gestellt werden können.
Self Assessments
Programmieren lernt man so wie Klavierspielen nur durch üben. Natürlich gibt es dazu die
Übungs-Lehrveranstaltung, aber es ist definitiv hilfreich, wenn man noch ein wenig darüber
hinaus übt und sein Wissen und Können überprüft.
Zu diesem Zweck wurden die folgenden "Self Assessments" entwickelt: kleine Fragen
und Beispiele mit Musterlösungen zu allen Kapiteln der Vorlesung. Sie können die Self
Assessments herunterladen und selbständig durcharbeiten.
Die Aufgaben bestehen aus Fragen, mit denen Sie kontrollieren können, ob Sie den Stoff
der Vorlesung verstanden haben, sowie aus kleinen Programmierbeispielen (mit Musterlösungen),
etwa in der Größe, wie sie dann auch in der Klausur am Semesterende vorkommen.
Wenn Sie die Aufgaben also durchgespielt haben, sind Sie bestens auf die Klausur vorbereitet. Außerdem regen die
Aufgaben zu Fragen an, die Sie dann gezielt in der Vorlesungs- oder Übungsstunde stellen können.
Viel Spaß mit den Aufgaben!
Literatur
-
Hanspeter Mössenböck: Sprechen Sie Java? 5. Auflage, dpunkt-Verlag, 2014.
Das Buch wurde für diese Vorlesung geschrieben und deckt ihren Inhalt vollständig ab.
Wer den Stoff der Vorlesung nochmals nachlesen möchte, ist mit diesem Buch gut bedient.
Es enthält auch zahlreiche Beispiele mit Musterlösungen.
-
Reinhard Schiedermeier: Programmieren mit Java. Pearson, 2010.
Reinhard Schiedermeier: Programmieren mit Java II. Pearson, 2013.
Diese beiden Bücher sind ebenfalls eine sehr gute Einführung in alle Aspekte von Java.
Sie sind etwas umfangreicher als das Buch von Mössenböck und decken auch einige Aspekte ab,
die über eine Einführung hinausgehen und daher in der Vorlesung nicht behandelt werden.
-
Ken Arnold, James Gosling: The Java Programming Language. Pearson, 2005.
Dieses Buch ist das Standard-Buch über die Sprache Java. Es wurde von den Java-Designern selbst geschrieben.
Allerdings geht es weit über den Umfang dieser Einführungsvorlesung hinaus. Es stellt z.B. Java gleich
als objektorientierte Sprache vor und geht überhaupt nicht auf Konzepte der allgemeinen Programmierung ein.
Weiterführende Online-Quellen
|