FANDOM


In der Veranstaltung Informatik 2 werden aufbauend auf den Grundlagen von Informatik 1 die Kenntnisse der objektorientierten und prozeduralen Programmierung unter Beibehaltung der UML Notation und der Programmiersprache Java vertieft. Neben der OOP erlangen die Studierenden einen ersten Einblick in die objektorientierte Analyse (OOA), in das objektorientierte Design (OOD) und in die test-getriebene Entwicklung (TDD), um allgemeinere Aufgabenstellungen zu modellieren und anschließend zu implementieren

Zur Datenhaltung werden dieser Veranstaltung die Dateiformate CSV und XML sowie die Java-Serialisierung vorgestellt. Im dritten Semester wird dann in der Datenbanken-Veranstaltung ein größeres Modell zur Datenhaltung vorgestellt.

Während bei der Veranstaltung "Mensch-Maschine Interaktion" eher die Usability im Vordergrund steht, deckt diese Veranstaltung die Implementierung von Benutzerschnittstellen und Web-Anwendungen im Backend ab. Sie beinhaltet daher eher den technischen Aspekt der Medieninformatik. 

Durch den ersten Kontakt der Studenten mit der Web-Programmierung (HTML, HTTP, JSP, Servlets) werden die Grundlagen für Veranstaltungen wie "Internetworking 1" und "Verteilte Systeme" gelegt.

Die theoretischen Grundlagen für die tiefere Algorithmik werden in der Veranstaltung "Theoretische Grundlagen 2" gelegt und in dieser Veranstaltung parallel dazu angewendet.

Die in dieser Vorlesung kennen gelernten Methoden werden im begleitenden Praktikum zeitnah angewendet.

Einleitung

  • Was erwartet Sie in Informatik II?
  • Was wird von Ihnen erwartet?

Professionell zusammenarbeiten und testen

  • Teamarbeit mit Subversion (SVN)
  • Programme spezifizieren & prüfen
  • Black-Box Tests vs. White-Box Tests
  • testgetriebene Entwicklung und Gray-Box Tests

Erweiterte Objektorientierung

  • OOP im Kontext der Software-Entwicklung
  • Kenntnis-Beziehung zwischen Klassen: Aggregation & Komposition
  • Aufzählungen
  • Innere Klassen
  • Ströme, Ein-/Ausgabe & Serialisierung
  • Schnittstellen: Definition, Implementierung & Verwendung
  • Container-Klassen & generische Datentypen
  • Reguläre Ausdrücke
  • Zustands-Diagramme der UML
  • PDF-Erstellung mit iText

GUI-Entwicklung mit AWT und Swing

Parallele Abläufe mit Threads

  • blockierende und nicht-blockierende GUI
  • Probleme mit Threads
  • Mailversand mit JavaMail als eigene Threads

Web-Entwicklung mit Java

  • HTML, HTTP, XML
  • HTML-Formulare
  • Java Servlets
  • Java Server Pages (JSP)
  • XML und Java mit JaxB

Erweiterte Algorithmik

  • Backtracking
  • Graphen