Avatar vom Dozent:in

Coding Excellence edit

Modulverantwortlich Prof. Dr. Stefan Bente
Dozent:innen Prof. Dr. Stefan Bente
Kürzel CEX
Sprache Englisch
Kreditpunkte 6
Voraussetzungen nach Prüfungsordnung keine
Empfohlene Voraussetzungen Practical hands-on experience in coding, ideally from a longer research activity or from a business context
Prüfungsformen Semesterbegleitendes Projekt, dokumentiert als wissenschaftliches Papier / Präsentation
Level Wahl
Häufigkeit des Angebots jedes Sommersemester
Verwendung des Moduls in weiteren Studiengängen Master Digital Sciences
Letzte Aktualisierung 10. Mai 2024

Learning Outcome

After completing CEX, the following statement should be true for the particapating students.

Modulinhalt

In this module, the students will form subteams of 2-4 persons, and research a specific topic from the field of software coding. The lecturers will propose topics, but the students may also propose topics themselves. The topics have to be related to aspects of "Coding Excellence" as e.g. expressed in [Martin08] or [Coleman12].

The research topics will be aspects of coding that are relevant to professional software development. They represent - in some way or another - design choices that development teams face when using current programming paradigms. Two examples for such topics should illustrate the concept:

The idea of this module is to use a hybrid approach to tackle such topics. "Hybrid" means that it combines scientific research methods with empirical hands-on work in small teams. Both ways have their merits. Both are essential for an experienced coder. Due to the rapid innovation pace in the field of software development, relying only on academic knowhow is not enough. Many relevant aspects in modern coding just haven't been researched (enough) yet. Or, they never really will be, at least not before yet another new paradigm enters the stage, and renders them moot. Studying these aspects only by hands-on work is similarly unsuitable. Therefore, the hybrid approach is key to this module.

Lehr- und Lernformen

The module is held by a team of lecturers, each of whom contributes up-to-date topics to the module, depending on one's availability and current research focus. The module is organized like this:

Lehrmaterial

Weiterführende Literatur

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

Driving Creation Process

Designing for User Experiences

  • Anforderungen und Bedarfe

    • 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 angemessene Informationsarchitekturen entwicklen, evaluieren, iterieren und optimieren.

  • Gestaltung

    • Können visuelle Darstellung und Präsentation komplexer Daten und Informationen für verschiedene Zielgruppen konzipieren und erstellen.

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.

    • 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).

    • Kennen Grundkonzepte agiler Entwicklung und agilen Arbeitens wie iterative und inkrementelle Entwicklung, selbstorganisierte Teams, Transparente Kommunikation, etc. und können diese in Projekten anwenden.

Driving Creation Process

  • Management

    • Können erkennen, welche Kompetenzen zur Lösung eines Problems erforderlich sind.

    • Können ein Team zusammenstellen und dieses lauf- und lebensfähig halten.

    • Können kreative und agile Prozesse hinsichtlich Zeit- und Ressourcenmanagement effizient durchführen und verwalten.

  • Kommunikation

    • 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.

Exploring Advanced Interactive Media

  • Medien

    • Haben die Fähigkeit zur Darstellung und Visualisierung großer Datenmengen, um komplexe Daten auf verständliche und ansprechende Weise zu präsentieren.

  • Exploration & Kreativität

    • Haben eine offene Fehlerkultur in der Fehler nicht als Endpunkt betrachtet, sondern als Teil des Lernprozesses verstanden und genutzt werden, um Prozesse zu verbessern, zukünftige Fehler zu vermeiden und exploratives Handeln zu fördern.

    • Haben die Fähigkeit zur Selbstreflexion um Handlungen und Entscheidungen evaluieren und iterieren zu können.

    • Sind neugierig, offen und in der Lage Fragen zu stellen, Unbekanntes zu erkunden und verschiedene Perspektiven zu berücksichtigen.

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.

  • 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.

arrow_upward