Die Studierenden erwerben fundierte Kenntnisse über Techniken und Konzepte verteilter Systeme, insbesondere im Kontext von Web-Anwendungen. Sie verstehen die allgemeine Architektur des Internets und des Web und können Anforderungen an Web-Anwendungen präzise analysieren. Sie sind in der Lage, interaktive Web-Anwendungen mit HTML, CSS und clientseitigem JavaScript zu entwickeln sowie serverseitigen Code für Anwendungsdienste zu erstellen, einschließlich Authentifizierung, Cookies und Sessions. Zudem erkennen sie potenzielle Sicherheitsprobleme wie Cross-Site-Scripting und SQL-Injection und können geeignete Schutzmaßnahmen umsetzen. Diese Fähigkeiten versetzen die Studierenden in die Lage, komplexe und sichere Web-Anwendungen zu konzipieren, zu entwickeln und produktiv zu betreiben.
Die Vorlesung beginnt ihre Reise durch die technische Welt der Interfaces und ihrer Entwicklung bis hin zu den glatten Oberflächen unserer Smartphones im ersten aller Interfaces, mit dem wir der Welt begegnen - unserem eigenen Wahrnehmungsapparat.
Von dort aus führt uns die psychologische und kognitionswissenschaftliche Betrachtungsweise von Design durch Don Norman zu einer Grundlage für nachhaltiges Interface Design, das nicht kurzlebigen Moden und technischen Features, sondern den Bedürfnissen und Belangen der menschlichen Wahrnehmung, Gefühlswelt und Kognition entspricht. Die StudentInnen erlernen grundlegende Design-Prinzipien für Interfaces und Interaktionen zwischen Mensch und Maschine, die sich allgemeingültig anwenden lassen und mit denen vor allem auch die Zukunft von emotional und funktional erfolgreichen Interfaces und Interaktionen erdacht werden kann, da der Mensch, der an der Maschine hängt, langsamer evolviert als die technische Entwicklung der Maschinen.
Lernziele der Theorie:
Die Studierenden wenden das in der Vorlesung vermittelte theoretische Wissen in praktischen Übungen im begleitenden Übungskurs an.
Basierend auf dem vermittelten Wissen über Interface Design in der Vorlesung werden folgende Übungen erarbeitet:
Die Vorlesung bietet eine praktische Einführung in die Konzepte und Paradigmen verteilter Systeme am Beispiel von Web Technologien und der Anwendungsentwicklung im Web. Dies beinhaltet zunächst eine Vorstellung des World Wide Web mit Basisprotokollen wie HTTP und weiteren Standards im Kontext des Internets. Es folgt eine Einführung in den Entwurf und die Konstruktion von Web Anwendungen. Dazu gehört zum einen die Frontend-Entwicklung mit HTML5, CSS3 und clientseitigem JavaScript und zum anderen die Backend-Entwicklung mit serverseitigem JavaScript auf der Node.js Plattform. Zur Interaktion zwischen Frontend und Backend werden moderne REST/HTTP und AJAX Techniken behandelt. Zudem werden auch Mechanismen zur Personalisierung mit Cookies und Sessions sowie zur Authentifizierung von Nutzern vorgestellt. Schließlich erfolgt eine eingehende Diskussion von Sicherheitsaspekten.
In dieser Vorlesung erwerben die Studierenden praktische Fähigkeiten in der Entwicklung und Bereitstellung von Webanwendungen, die auf einem Verständnis verteilter Systeme und Webtechnologien basieren. Sie lernen den kompetenten Einsatz von HTML5, CSS3 und JavaScript für die Frontend-Entwicklung, sowie die serverseitige Entwicklung mit Node.js und verbessern so ihre Fähigkeit, dynamische Full-Stack-Webanwendungen zu erstellen. Darüber hinaus erwerben die Studierenden Kenntnisse in der Implementierung moderner REST/HTTP- und AJAX-Techniken für eine effiziente Frontend-Backend-Kommunikation sowie in der Anwendung von Cookies, Sessions und Authentifizierungsstrategien zur Personalisierung und zur Gewährleistung der Anwendungssicherheit. Diese umfassenden Fähigkeiten bereiten die Studierenden auf eine breite Palette von Aufgaben in der Webentwicklung und im Anwendungsdesign vor und rüsten sie mit den notwendigen Werkzeugen aus, um aktuelle und zukünftige Herausforderungen in diesem Bereich zu bewältigen.
Als Vorbereitung auf einzelne Vorlesungseinheiten wird das Selbststudium grundlegender Inhalte mittels der Begleitliteratur vorausgesetzt (relevante Kapitel werden in der Veranstaltung angekündigt). Weitere eigenständige Arbeitsanteile betreffen die Nachbereitung der Vorlesungsinhalte und die Klausurvorbereitung.
Im VS1-Labor erfolgt die praktische Anwendung verschiedener grundlegender Web Technologien. Die Auswahl folgt den Themen der VS1-Vorlesung. Im Labor wird in mehreren Schritten eine komplette Web Anwendung erstellt. In jedem Schritt wird jeweils ein Bereich von Web Technologien genauer betrachtet. Dadurch werden gezielt Kompetenzen bezüglich Verständnis und Anwendung von Web Technologien gefördert, u.a. in den Bereichen deklarativer Sprachen wie HTML, CSS, und JSON, der Programmierung mit JavaScript auf Client- und Serverseite sowie spezieller Technologien für Single-Page-Anwendungen und REST-Architekturen.
Es werden Grundkenntnisse in den Bereichen allgemeiner Programmierung sowie deklarativer Web Sprachen vorausgesetzt (letztere können durch ein begrenztes Selbststudium der Begleitliteratur erlangt werden). Die Veranstaltung beinhaltet 50 % betreute Präsenszeit (1 SWS) im LKIT Labor sowie 50% selbständige Arbeit. Der Leistungsnachweis erfolgt durch Präsentation und Verteidigung der Lösung.