Kurs »Client Server Basics« (CS14)

Kursverantwortlich
Prof. Dr. René Wörzberger
Sprache
deutsch
Kreditpunkte
3 ECTS
Arbeitsaufwand
40h Kontaktzeit / 50h Selbstlernzeit
Kompetenzcluster
Software Development and Architecture
Gehört zum Modul
Coding Software 1
Teilmodulprüfung
Coding Session, am 2. Freitag im Block (benotet)

Angestrebte Lernergebnisse / Learning Outcomes

Die Studierenden können in Einzelarbeit auf Basis exakter und vollständiger Anforderungen eine webbasierte Client-Server-Applikation codieren, indem sie einen gegebenen Entwicklungs-Stack einsetzen, um später bei der Codierung großer derartiger Applikationen mitwirken zu können sowie alternative Frameworks und Libraries einordnen zu können.

Inhalt

  • Der Browser als Client
    • Grundlegende Protokolle und Standards wie z.B.
      • das Hypertext Transfer Protocol (HTTP)
      • der Domain Name Service (DNS)
      • Uniform Ressource Identifier (URI)
    • Auszeichnungen und Strukturierungen von Inhalten mit der Hypertext Markup Language (HTML)
    • Layoutdefinitionen mit Cascading Stylesheets (CSS)
    • Dynamisierung mit JavaScript (ECMAScript), Asynchronuous JavaScript and XML (Ajax) und dem JavaScript Object Notation (JSON)
  • Web-Server
    • Konfiguration von Web-Servern wie Nginx
    • Serving von statischen Inhalten
    • Caching als wichtiges Mittel des World-Wide-Web
  • Application-Server
    • Wichtige Spezifikationen wie z.B.
      • Servlets als Bindeglied zwischen Clients und Application-Servern
      • Java Persistence API (JPA) als Bindeglied zwischen Application-Servern und Datenbank-Servern
    • industriell relevante Implementierungen
      • Apache Tomcat
      • Spring (Boot)
  • Datenbanken
    • Relationale Datenbanken
      • Grundlegende Konzepte wie Attribute, Schlüssel, Tupel, Beziehungen und Transaktionen
      • Datenbankzugriffe mit der Structures Query Language (SQL)
      • Konfiguration einer MySQL-Datenbank
    • NoSQL-Datenbanken
      • Vor- und Nachteile von NoSQL-Datenbanken
      • Konfiguration z.B. einer MongoDB
    • Programmatischer Zugriff auf Datenbanken (mittel z.B. JPA)

Lehr- und Lernformen

  • Vorlesung
  • Übung
  • begleitende Projekt-Aufgabe:
    • Ausgangssituation: exakt ausformulierte, jedoch auf wesentliche Use-Cases beschränkte Anforderungen an ein webbasiertes System wie z.B. Vorlesungsverwaltung, Warenwirtschaftssystem oder Issue-Tracking
    • Zielsituation: abnahmefähiges webbasiertes System

Materialien/ Ressourcen

  • Liste ausgewählter Literatur und Web-Ressourcen
  • Vorlesungsunterlagen
  • Übungsunterlagen inkl. Lösungen
  • Projekt-Meilensteinbeschreibungen
  • vorkonfigurierte Entwicklungsumgebungen
  • vorgefertigte Entwicklungsstände