Learning Outcome
Veranstaltung führt in die Grundlagen der Entwicklung und Implementierungen von Webanwendungen und Webservices ein.
(WAS) Studierenden können eine vollständige Webanwendung entwickeln und implementieren,
(WOMIT) indem Sie
- Webserver selbständig einrichten und betreiben,
- Webtechnologien und Kommunikationsprotokolle insbesondere HTTP
anwenden
- Webarchitekturen und Domänenmodelle mit Hilfe eines Webframeworks
umsetzen
- Entwicklerwerkzeuge verwenden,
(WOZU) um später komplexere Webanwendungen selbständig entwickeln, implementieren, optimieren und betreiben zu können.
Inhalt
Im Grundlagenteil der Veranstaltung werden wesentliche Konzepte vermittelt, die zur Konzeption, Diskussion und Realisierung von Diensten im Web benötigt werden. Die Konzepte sind wichtig um als Medieninformatiker bzw. Medieninformatikerin kompetent Aufgaben des Berufsalltags lösen zu können und an Fachdiskussionen teilnehmen zu können. Themen sind u.a.:
- Einführung, Ab-/Eingrenzung, Strukturierung des Gebiets
- Einrichtung und Konfiguration eines Webservers
- Architekturen von Web-Anwendungen
- HTTP
- Server- und Client-seitige Programmierung und deren Zusammenspiel
- REST
- Domain Driven Design
- Websecurity
- API-Dokumentation
- Entwurfsprinzipien und Clean Code
Im Workshop soll die Studierenden durch Übungen die Lehrinhalte aus dem Grundlagenteil praktisch anwenden. Ziel des Workshop
ist die Implementierung und das Deployment einer Webanwendung für ein selbstgewältes Problemszenario, der eine signifikante Abnwendungslogik realisiert und seinerseits anwendungsbezogen einen externen REST-basierten Web Service einbindet.
Literatur
- Das vom W3C herausgegebene Dokument über die Architektur des Web
- Tilkov et al.: REST und HTTP, dpunkt.verlag 2015
- Tanenbaum et al.: Distributed Systems, Pearson 2007
- Randy Conolly, Richard Hoar: Fundamentals of Web Development, Pearson Publishing 2015
- Hugh Taylor et al.: Event-Driven Architecture - How SOA Enables the Real-Time Enterprise, Addison-Wesley 2009
- Webber: REST in Practice, OReilly 2011
- Sam Newman: Building Micro Services, OReilly 2015
- James Governor et al.: Web 2.0 Architectures, OReilly 2009
- Rajkumar Buyya (ed.): Internet of Things: Principles and Paradigms, Morgan Kaufmann 2016
Erläuterung zur Prüfungsvorleistung
Das Lernziel des Moduls Web Development besteht darin, dass Studierende in der Lage sein sollen, eine umfassende Webanwendung zu entwickeln und zu implementieren. Dafür ist nicht nur fundiertes theoretisches Wissen notwendig, sondern auch praktische Erfahrung in der Anwendung der vermittelten Lehrinhalte. Das Erlernen der Programmierung komplexer Softwaresysteme bedingt eine kontinuierliche Übungspraxis seitens der Studierenden. Im Rahmen des Praktikums soll dieses Ziel durch regelmäßige Entwicklungs- und Implementierungsaufgaben erreicht werden, welche die Inhalte der Vorlesungen vertiefen und schrittweise praktische Erfahrungen ermöglichen. Die Bearbeitung der Praktikumsaufgaben wird regelmäßig von den Lehrenden geprüft und bewertet, um den Studierenden konstruktive Rückmeldungen zu ihrem Lernfortschritt zu geben. Zudem fördert die kontinuierliche Auseinandersetzung mit den Aufgaben das Nach- und Vorbereiten der Studierenden und unterstützt das nachhaltige Verinnerlichen des Lehrstoffs. Weiter trägt die gleichbleibend hohe Frequenz der Aufgabenstellungen dazu bei, den Lernaufwand über das gesamte Semester hinweg konstant zu halten und somit die Vorbereitung auf die abschließende Prüfung zu erleichtern. Das erfolgreiche Absolvieren des Praktikums ist nicht an eine Anwesenheitspflicht gebunden, da die Einreichung und Bewertung der Aufgaben sowie die Rückmeldung zum Lernfortschritt auch online erfolgen können.
Geförderter Kompetenzerwerb
Das Modul zahlt auf folgende Handlungsfelder und Kompetenzbereiche ein. Eine ausführliche Beschreibung der konkreten Komptenzen finden Sie weiter unten.
Designing for User Experiences
Developing Interactive and Distributed Systems
Exploring Advanced Interactive Media
Enhancing Interactions on Different Scales
Designing for User Experiences
-
Anforderungen und Bedarfe
-
Verstehen, wie menschliche Wahrnehmung, Denken und Handeln, Kommunikation und Interaktion funktioniert.
-
Kennen Methoden und Techniken, mit deren Hilfe das Verhalten, die Bedürfnisse und die Erwartungen der Benutzer verstanden, erfasst und nutzbar gemacht werden können und können diese anwenden.
-
Können Nutzungs- und Unternehmenskontexte analysieren und deren Auswirkungen auf Medienwahl und -ausgestaltung erörtern.
-
Konzepte
-
Haben ein ausgeprägtes konzeptionelles Denkvermögen entwickelt, um komplexe Probleme zu analysieren, innovative Lösungsansätze zu konzipieren und diese in verständliche und erfahrbare Konzepte zu überführen.
-
Können multimodale/ multicodale Interaktionskonzepte unter Berücksichtigung von Benutzercharakteristika, avisierten Nutzungskontexten, ggf. regulatorischer Rahmenbedingungen (z.B. Accessibility), Designzielsetzungen etc. erarbeiten.
-
Kennen Grundlagen des Interaktionsdesigns wie Modellierung von Benutzerflüssen, Erstellung von Wireframes und Prototypen, etc. und können diese in konkreten Projekten anwenden.
-
Können angemessene Informationsarchitekturen entwicklen, evaluieren, iterieren und optimieren.
Developing Interactive and Distributed Systems
-
Technologie
-
Können hardware-basierte Technologien zur Interaktion mit Computern in verschiedenen Modalitäten einsetzen (bspw. sprachbasierte Interaktion, Tangible Computing, Physical Computing, Sensoren und Aktoren).
-
Kennen State-of-the-art Technologie zur Umsetzung von software-basierten Anwendungen (insb. in den Bereichen Web, Mobile, IoT, AR/VR, AI), können konkurrierende alternative Technologien auswählen und evaluieren, sich neue technologische Möglichkeiten erschließen, diese bewerten, nutzen, und integrieren sowie zukunftsorientiert neue Möglichkeiten screenen.
-
Wissen wie Kommunikation zwischen Computern realisiert wird (bspw. req/res, pub/sub und Protokolle wie HTTP, MQTT).
-
Wissen was ein Computer ist und wie Software darauf ausgeführt wird.
-
Entwurf
-
Verstehen formale Strukturen.
-
Können abstrahieren, logisch denken und komplexe Zusammenhänge verstehen.
-
Können Aspekte realweltlicher Probleme zu identifizieren, die für eine informatische Modellierung geeignet sind, algorithmische Lösungen für diese (Teil-)Probleme bewerten und selbst so zu entwickeln, dass diese Lösungen mit einem Computer operationalisiert werden können.
-
Konzepte (bspw. Paradigmen, Architekturen, Pattern) für die web-basierte Verteilung von Komponenten (bspw. Frontend/Clients/Apps, Backend/Server/Cloud) für verteilte interaktive Anwendungen kennen und umsetzen können.
-
Implementierung
-
Kennen Entwicklungsumgebungen, Tools und entwicklungsnahe Prozesse und diese praktisch nutzen (insb. IDE, Compiler, Linker, Libraries, Debugging, Unit-Testing, Repositories für eigenen Code / git, Build Tools, Paketmanager).
-
Können (komplexe) Softwaresysteme im Team entwickeln.
-
Kennen Grundkonzepte agiler Entwicklung und agilen Arbeitens wie iterative und inkrementelle Entwicklung, selbstorganisierte Teams, Transparente Kommunikation, etc. und können diese in Projekten anwenden.
-
Können digitale Produkte und verschiedene Software-Artefakte zur Evaluation und zur Nutzung auf typischen Distributionswegen (bspw. Clickdummy, Web-Deployment, App Store) für verschiedene Zielgruppen bereit stellen (lauffähig, sicher und gebrauchstauglich).
Driving Creation Process
-
Innovation
-
Management
-
Kommunikation
-
Können Ideen vermitteln, sich über Anforderungen verständigen, Feedback einholen und mit verschiedenen Interessengruppen zu interagieren und verhandeln.
-
Können effektive und transparente Kommunikation und Zusammenarbeit fördern, Konflikte erkennen, analysieren und lösen.
-
Sind in der Lage Arbeits- und Forschungsergebnisse klar und verständlich in aussagekräftigen, zielgruppengerechten Berichten, Präsentationen o.Ä. zu kommunizieren.
-
Haben die Fähigkeit effektiv in multidisziplinären Teams zu arbeiten und die verschiedenen Fachperspektiven und -sprachen zu verstehen.
Enhancing Interactions on Different Scales
-
Situated Interaction
-
Können Sensoren und anderen Technologien integrieren, um den aktuellen Kontext, wie den physischen Standort oder die Umweltbedingungen, zu erfassen, um damit umgehen zu können.
-
Ethik und Gesellschaft
-
Selbstlernen
In der linken Spalte sehen Sie, welche Kompetenzen für das Modul vorausgesetzt werden (hellgrauer Balken). In der rechten Spalte sehen Sie, welche Kompetenzen Sie mit dem Modul erwerben können (farbiger Balken). Die Kompetenzen sind in Handlungsfelder und Bereiche gegliedert.
Wenn Sie auf den grauen oder farbigen Balken klicken, gelangen Sie zu einer Liste von Modulen, die auf diese Kompetenz einzahlen. Hier finden die eine Übersicht über alle Kompetenzen und die Module, die auf diese einzahlen.