Subato

 

Objektorientierte Softwareentwicklung (WS 2022)

 

Responsible Lecturer:
Sven Eric Panitz

Lecturers

  • Sven Eric Panitz
  • Björn Fischer
  • Yentl Deuster
  • Jonas Gaida
  • David Lerch
  • Hannes Schwanzer
  • Kevin Kokoscha
  • Phillip Entin
Lecture Times
  • Vorlesung AI Tue 11:45 B002
  • Vorlesung AI Thu 14:15 B002
  • Vorlesung WI Mon 10:00 B002
  • Vorlesung WI Wed 11:45 B002
Training Groups
  1. AI A Mon 10:00 C213
    (Yentl Deuster)
  2. AI B Mon 11:45 C213
    (Yentl Deuster)
  3. AI C Mon 11:45 C377
    (Björn Fischer)
  4. AI D Mon 16:00 C377
    (Björn Fischer)
  5. AI E Mon 17:45 C377
    (Björn Fischer)
  6. AI F Tue 10:00 C001
    (Sven Eric Panitz)
  7. AI G Wed 14:15 C377
    (Jonas Gaida)
  8. AI H Wed 16:00 C377
    (Jonas Gaida)
  9. AI I Thu 11:45 C001
    (Sven Eric Panitz)
  10. AI J Thu 16:00 C213
    (Björn Fischer)
  11. AI Tutorium A Mon 08:15 C377
    (Hannes Schwanzer)
  12. AI Tutorium B Mon 10:00 C377
    (Hannes Schwanzer)
  13. AI Tutorium C Wed 11:45 C377
    (Kevin Kokoscha)
  14. AI Tutorium D Fri 14:15 C361
    (Kevin Kokoscha)
  15. WI A Mon 11:45 C001
    (Sven Eric Panitz)
  16. WI B Tue 10:00 C361
    (David Lerch)
  17. WI C Tue 11:45 C361
    (David Lerch)
  18. WI D Wed 10:00 C361
    (David Lerch)
  19. WI E Wed 14:15 C361
    (David Lerch)
  20. WI Tutorium A Wed 10:00 C377
    (Phillip Entin)
  21. WI Tutorium B Fri 14:15 C377
    (Phillip Entin)

Exercise Sheets
    Resource Files

     


    Achtung:
    Für die Wirtschaftsinformatik hat Herr Turban eine Aufgabe zur Beschäftigung in der vorlesungsfreien Zeit zur Verfügung gestellt. Er bittet diese zur Vorbereitung anzuschauen.
    Hier finden sich alle Lehrinhalte, Materialien und Informationen zum Modul »Objektorientierte Softwarentwicklung« in den Bachelorstudiengängen »Angewandte Informatik« und »Wirtschaftsinformatik«

     

    Die Vorlesungen beginnen am Mittwoch 19.10.2022. Praktika und Tutorien beginnen am 24.10.2022.

     

    Vorlesungsskript

    Das Skript lässt sich jeweils zum aktuellen Stand direkt unter diesen Link als PDF-dokument herunter laden.

    Karteikartenkurse

    Es gibt mehrere Lernkurse auf Karteikartenbasis. Diese lassen sich hier über Subato im Browser üben, oder aber für Android Telephone mit der App Cardelli (www.cardelli.org)

    Java Entwicklungsumgebung

    Wir verwenden die aktuelle Javaversion 19. Die Entwicklungsumgebung kann auf https://jdk.java.net/19/ herunter geladen werden.

    Editor für Programmtext

    Als Editor für Java Quelltext werden wir zunächst nur einen einfachen Texteditor mit Syntaxmarkierung verwenden. Ich persönlich bevorzuge hier den Editor Emacs.

     

    Folienfilme

    Ab und an mache ich ein paar kleine Filme, meistens Zusammenfassungen von Vorlesungsthemen, in denen stichpunktartig die wichtigste Inhalte zusammengefassr sind:

    • Arbeiten mit der JShell

    • Die Subato Platform

    • Datenklassen ein bisschen Terminologie

    • Rekursion

    Praktikum Es gibt wöchentliche Übungsblätter und ein abschließendes Projektblatt. Zum Bestehen des Praktikums mit Erfolg ist die Anwesenheitspflicht zu erfüllen, müssen alle bis auf maximal ein wöchentliches Übungsblatt als erfolgreich bearbeitet vom Praktikumsleiter abgenommen und das Abschlussprojekt erfolgreich eigenständig bearbeitet worden sein.
    Modulprüfung Die Modulnote wird mit einer 90-minütigen Klausur ermittelt. Für diese Prüfungsleistung kann man maximal 3 Mal antreten. Die bestandene Prüfung kann nicht wiederholt werden.
    Die Klausur findet am 24.2.2023 um 14Uhr statt.

     

    Lessons
    January 18, 2023, 11:45 AM
    Persistieren von Objekten
    • ObjectOutputStream
    • Serializable
    • Felder mit transient Attribut
    January 16, 2023, 10:00 AM
    IO in Java
    • InputStream, OutputStream
    • Reader, Writer
    • Encoding
    January 11, 2023, 11:45 AM
    Anwendungen Funktionen höherer Ordnung:
    • fuerAlle und aufAlle Elemente einer Reihung
    • Auswerten und Zeit messen
    • parallele Auswertung
    January 9, 2023, 10:00 AM
    Funktionen höherer Ordnung und λ-Ausdrücke.
    December 21, 2022, 11:45 AM
    Projektblatt kleines Spiel:
    Beispiel zum Programmieren eines Spiels mit dem kleinen Framework
    December 19, 2022, 10:00 AM
    Einführung in Swing.
    December 14, 2022, 11:45 AM
    Mehr generische Typen.
    Generische Liste, die auf Arrays als Datenspeicher basiert.
    December 12, 2022, 10:00 AM

    <T> T q(T in){System.out.println(in);return in;}

    q(q("hallo") + q(" welt") + q(q(17)+q(4)))

    December 7, 2022, 11:45 AM
    December 5, 2022, 10:00 AM
     
    November 30, 2022, 11:45 AM
    Überschreiben der Methoden equals und toString aus der Klasse Object.
     
    class Wetter {
      String ort;
      int temperatur;
      Wetter(String o, int t){ort=o;temperatur=t;}
      @Override
      public String toString(){
        return "Temperatur in "+ort+" beträgt "+temperatur+" Grad Celsius.";
      }
      @Override
      public boolean equals(Object obj){
        if (obj instanceof Wetter that){
          return this.ort.equals(that.ort)
            && this.temperatur == that.temperatur;
        }
        return false;
      }
    }
    November 29, 2022, 11:45 AM
    Vererbung und Late-Binding zweiter Teil.
    Beispiel: Logik für einen GUI-Dialog.
     
    November 23, 2022, 11:45 AM
    November 21, 2022, 10:00 AM
    Echte Klassen mit
    • Konstruktoren
    • Feldern
    • Methoden
    • Selektormethoden (Getter-Methoden)
    • eigener version von toString
    • EchtesWetter.java
    November 16, 2022, 11:45 AM
    November 14, 2022, 10:00 AM
    Anweisungen zweiter Teil:
    • for-Schleife
    • do-while Schleife
    • break
    • continue
    • switch-case Anweisung (und switch-case Ausdruck)
    November 9, 2022, 11:45 AM
    • Anweisungen vs Ausdrücke
    • Prozeduren (void-Funktionen)
    • Zuweisung
    • return
    • if-Anweisung
    • while-Schleife
    • JShell Session
    November 7, 2022, 10:00 AM
    Rekursion 2. Teil.
    • Baumrekursion
    • Endrekursion
    • von Endrekursion zur Schleife
    • JShell Session
    November 1, 2022, 11:45 AM
    Wegen Vollversammlung nur 45 Minuten. Inhalte siehe 31.10.
    October 31, 2022, 10:00 AM
    • Terminologie bei Datenklassen
    • Methoden für Datenklassen
    • equals zur Gleichheit
    • JShell Session
    October 27, 2022, 2:15 PM
    October 26, 2022, 11:25 AM
    Datenklassen (records)
    • Daten strukturieren in Records
    • Datenobjekte mit new erzeugen
    • Zugriff auf Einzeldaten von Objekten
    • Datenobjekte als Funktionsargumente
    • Funktionen als Methoden in Datenobjekten definieren
    • JShell Session
    October 25, 2022, 11:45 AM
    Siehe 24.10.
    October 24, 2022, 10:00 AM
    • Bedingungsoperator ? :
    • Funktionen in der Klasse Math
    • Stringobjekte
    • JShell Session
    October 20, 2022, 2:15 PM
    Gleiche Inhalte wie am 19.10.
    October 19, 2022, 11:45 AM
    • Interaktiver Interpreter für Java, die JShell
      Read Eval Print Loop
    • Operator-Ausdrücke:
    1. arithmetisch: + - * / %
    2. Vergleiche: < > <= >= == !=
    3. Logisch: && || !
    • Variablen
    • Typen: int, long, double, boolean

    • Funktionsdefinitionen

    • JShell Session