Kurzbeschreibung
In dieser Veranstaltung setzen sich Studierende selbstständig mit Themen zu "Beautiful Code" auseinander und stellen diese in Rahmen eines Workshops vor. Ein wesentlicher Teil des Workshops ist die fachliche Diskussion im Plenum. Diese soll unterschiedliche Perspektiven aufzeigen und zu einem tieferen Verständnis der Themen verhelfen.
Lehrform/SWS
4 SWS: Vorlesung 2 SWS; Übung / Projekt 2 SWS;
Arbeitsaufwand
Gesamtaufwand 180 Stunden, davon
36h Vorlesung
36h Übung / Projekt
108h Selbststudium
Angestrebte Lernergebnisse
Die Studierenden
- können Clean Code Konzepte erkennen, benennen, umsetzen und kritisch einordnen.
- kennen Qualitätskriterien, Heuristiken und / oder Metriken für die Erkennung von Code Smells und können diese anwenden.
- kennen Maßnahmen, Optimierungen und / oder Problemlösungsstrategien für qualitativ hochwertigen Code und können diese anwenden.
- können bestehenden Code systematisch verbessern (refactoring).
- können Code und Programmiersprachen analytisch betrachten und reflektiert einordnen.
Inhalt
- Naming, Lesbarkeit und Formatierung
- Design Prinzipien, Klassen, Methoden und Funktionen
- Error Handling
- Testing
- Patterns und Anti- / Dark Patterns
- Typisierung und Polymorphie
- Kommentare, Dokumentation und zugehöriges Tooling
- Code Smells und Refactoring
- Code Reviews, Kollaboration und Git
- Pair Programming, Mob Programming und Live Coding
- Domain specific languages (DSLs)
Medienformen
Literatur
Je nach fachlicher Aufgabe
- Robert C. Martin, Clean Craftsmanship (2022), mitp-Verlag, Frechen, ISBN: 9783747504178. https://content-select.com/de/portal/media/view/6213850a-a688-404a-ad5b-02b4b0dd2d03?forceauth=1
- Robert C. Martin, Clean Code - Refactoring, Patterns, Testen und Techniken für (2013), mitp-Verlag, Frechen, ISBN: 9783826696381. https://content-select.com/de/portal/media/view/5c85864b-fe70-4252-afa0-6037b0dd2d03?forceauth=1
- Martin Fowler, Refactoring (2020), mitp-Verlag, Frechen, ISBN: 9783958459427. https://content-select.com/de/portal/media/view/5f3148ed-a6fc-4d5a-a431-6bb9b0dd2d03
- Post U. Besser coden : Best Practices für Clean Code. Bonn: Rheinwerk Verlag; 2021. https://ebookcentral.proquest.com/lib/koln/detail.action?docID=6714817#
Lehr- und Lernmethoden
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
Developing Interactive and Distributed Systems
-
Technologie
-
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.
-
Entwurf
-
Verstehen formale Strukturen.
-
Können abstrahieren, logisch denken und komplexe Zusammenhänge verstehen.
-
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).
Enhancing Interactions on Different Scales
-
Situated Interaction
-
Können technologische Aspekte, die bei der Implementierung situierter Interaktion eine Rolle spielen, berücksichtigen, dies beinhaltet Kenntnisse über Sensortechnologien, Datenverarbeitung, maschinelles Lernen und die Integration von Software in physische Umgebungen.
-
Ethik und Gesellschaft
-
Haben ein Verständnis von ethischen Richtlinien, Standards sowie dem Schutz der Privatsphäre zum Wohlergehen der Nutzer:innen und können dieses in eigenes Handeln integrieren.
-
Können die Wirkung etablierter und neu entwickelter (interaktiver) Medien auf die Gesellschaft reflektieren und in der eigenen Entwicklung berücksichtigen.
-
Selbstlernen
-
Können wissenschaftlich Arbeiten und Schreiben.
-
Können sich selbstständig neue Wissens- und Kompetenzbereiche zu Methoden, Technologien oder Domänen erschließen.
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.