Devops
Das Modul vermittelt wie DevOps zur Verbesserung der Softwareentwicklung beiträgt. Anhand einer selbst gewählten Fallstudie wird erarbeitet, welche Werkzeuge und Technologien zur Umsetzung einer DevOps-Pipeline eingesetzt werden können. Der Nutzen von DevOps wird anhand von konkret eintretenden Szenarien verifiziert und optimiert. Die Studierenden sind in der Lage, eine DevOps-Pipeline zu konfigurieren und zu betreiben, und sie kennen die zusätzlichen Anforderungen, die sich bei der Entwicklung und Betrieb einer Anwendung unter DevOps stellen.
SWT (Software Testing)
Getestet wird immer: Entweder ungeplant durch die Kundschaft, oder systematisch und geplant! Letzteres bedingt eine gute Strategie sowie einen Prozess. Das Modul weckt Interesse und Verständnis für das Testen. Mit praxisnahen Beispielen werden Grundlagen von Teststrategie und Prozess vermittelt. Nebst einer Übung zum Thema Testautomatisierung werden viele Bespiele aus der Praxis aufgezeigt.
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)
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)
Zwei Labs aus:
- Web Programming: 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)
- Cloud Programming: Nebst Cloud Paradigmen und Architekturgrundlagen liegt der Fokus auf der Entwicklung von cloud-nativen Webapplikationen. Theoretische Inhalte werden jeweils mit praktischen Übungen vertieft, wobei Amazon Web Services (AWS) als Referenz Cloud Plattform dient. Mit aufbauenden und geführten Laborübungen werden Design-Patterns wie autom. Skalierung, Serverless Programming, CICD Pipelines etc. konkret angewendet. Cutting Edge Cloud Services im Bereich ML, Data Analytics und IoT sind auch Thema. (3 ECTS)
- Enterprise Programming: Das Modul richtet sich an Java-Entwicklerinnen und -Entwickler, die Enterprise-Applikationen mit dem Spring-Framework realisieren möchten. Sie lernen die wichtigsten Konzepte des Spring Framework/Ecosystems sowie die Grundlagen, Applikationen auf dieser Basis zu realisieren. (3 ECTS)
- Mobile Programming: 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)