Applikationsentwicklung
Entwicklung einer verteilten Business-Applikation im Team - Architekturaspekte praktisch umsetzen: Microservice-Architektur, Asynchrone Kommunikation mittels Message-Framework, REST, Modellieren, Spezifizieren, Designen, Programmieren, Testen. (6 ECTS)
Programming Concepts & Paradigms
Einstieg in verschiedene Programmier-Paradigmen. Einsatz von imperativen, objektorientierten, deklarativen, funktionalen und logischen Programmier-Sprachen. Diskussion von charakteristischen Programmier-Konzepten und deren typische Einsatzgebiete. Übungen mit verschiedenen Sprachen zum praktischen Vertiefen. (6 ECTS)
Sicheres Programmieren
Wrap-up der Angriffsvektoren auf IT-Systeme. Welche Komponenten einer Architektur erfüllen welche Security-Aufgaben. Security Testing (Penetration/Vulnerability), Authentisierung und Autorisierung, sicherer Umgang mit Credentials, typische Unzulänglichkeiten gängiger Programmiersprachen. (3 ECTS)
Software Architecture & Techniques
Software-Qualität als Maxime durch gute Software-Architektur, hochwertigen Code und automatisierte Tests. Methoden und Metriken um Architekturen zu entwerfen sowie Software-Qualität zu messen und zu bewerten. Techniken aus den Bereichen Clean Code, Refactoring, und Test-First. Unterstützende Werkzeuge. (3 ECTS)
Usability
Der Mensch in der direkten Interaktion mit Systemen, Definitionen von Usability und User Experience, Human Centered Design "“ Prozess und dessen Einbindung in ein allgemeines Projektvorgehen, GUI-Gestaltung, verschiedene Interaktionselemente, Usability und Qualität, Usability und Accessibility, Usability und spezielle Technologien (z.B. AR/VR, Hardware ). (3 ECTS)
Web Programming Lab
Professioneller Entwurf und Umsetzung von Webapplikationen; Architektur-, Design-, Plattform- und Sicherheitsaspekte; umfassende, vertiefte Behandlung von aktuellen Web-Technologien; Entwicklung von Single Page Applications, Übersicht über Alternativen; Anwendung in Übungen und in einem abschliessenden Projekt. (3 ECTS)