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)
Mobile Programming Lab
Selbständige vertiefte Auseinandersetzung mit ausgewählten Aspekten der mobilen Entwicklung wie z.B. Android Architektur-Muster, spezifischen Bibliotheken oder alternativen Software-Stacks. Mögliche Themen: Persistenz-Frameworks, Flutter, Kotlin, NFC, QR-Codes, AR, RxAndroid, Firebase, usw. (3 ECTS)