Algorithmen und Programmierung 2

7 ECTS Deutsch B.Sc.

Letzte Aktualisierung: 28.02.2025

Grunddaten
Kürzel AP2
Dauer des Moduls 1 Semester
Angeboten im Sommersemester
Veranstaltungsort Gummersbach
Verantwortliche
Prüfung
Prüfungsformen

Klausurarbeiten

Prüfungsphasen

Wintersemester (Jan.-Apr.)

Sommersemester Phase 1 (Juli) und 2 (Sep.)

Prüfende
1. Christian Kohls
2. Alexander Dobrynin
Workload
Vorlesung 8 h
Übung 0 h
Seminar 36 h
Praktikum 36 h
Projektbetreuung 0 h
Projektarbeit 0 h
Selbststudium 130 h
Gesamt 210 h
Studiengänge
Pflichtmodul
Informatik PO-1PO-2
Sem. 2
Informatik Flexibel PO-1
Sem. 2
IT-Management (Informatik) PO-1PO-2
Sem. 2
Medieninformatik PO-4PO-5
Sem. 2
Wirtschaftsinformatik PO-4PO-5
Sem. 2
Wahlmodul

Keine Zuordnung

Voraussetzungen
Zwingend

Keine Angabe

Empfohlen
Module:  AP1

Angestrebte Lernergebnisse

Die Studierenden sollen

  • (WAS) die grundlegenden Prinzipien, Strukturen und Syntaxelemente der objektorientierten Programmierung verstehen und anwenden können, (WOMIT) indem sie die Programmiersprache Kotlin einsetzen, (WOZU) um eigene Algorithmen umsetzen zu können,
  • (WAS)Standardalgorithmen (z.B. Suchen, Sortieren) verstehen und anwenden, (WOMIT) indem Sie Pseudocode in lauffähigen Code übersetzen, (WOZU) um deren Eigenschaften (z.B. Laufzeitverhalten) und Funktionsweise einordnen zu können,
  • (WAS) eigene objektorientierte Datenstrukturen entwickeln und die Komposition komplexer Objektstrukturen beherrschen, (WOMIT) indem sie Geschäfts- und Anwendungsfelder der realen Welt als Software modellieren und verschiedene abstrakte Datentypen (z.B. Listen) und unterschiedliche konkrete Implementierungen (z.B. Verkettete Listen) umsetzen, (WOZU) um die Planung und den Entwurf einfacher Softwarearchitekturen durchzuführen und Systeme zu modellieren
  • (WAS) gut strukturierten, dokumentierten und wartbaren Code entwerfen können, (WOMIT) indem Prinzipien des Clean Coding, Entwurfsmuster und Teststrategien angewandt werden, (WOZU) um robuste und sichere Software zu entwickeln, eigene Software in einer objektorientierten Programmiersprache planen, entwickeln, umsetzen und testen können

Hierzu werden die Programmiersprache Kotlin, grundlegende Bibliotheken (Java, Android) und eine integrierte Entwicklungsumgebung eingesetzt.

Modulinhalte

  • Arbeiten mit integrierter Entwicklungsumgebung
  • Dynamische vs. Statische Typisierung
  • Objekte und Abstraktion
  • Einfache Klassen
  • Datenkapselung
  • Konstruktoren
  • Veränderbare und unveränderbare Listen
  • when-Anweisungen und Audrücke
  • Vererbung und Typen
  • Klassenhierarchien
  • Typkompatibilität, Upcast, Downcast und Smart Cast
  • Polymorphie und Dynamische Bindung
  • Objektkomposition und Objektaggregation
  • Parametrisierte Datentypen (Generics)
  • Begleit-Objekte für Klassen
  • Abstrakte Klassen und Schnittstellen
  • Nullfähige Typen
  • Abstrakte Datentypen in der Programmierung
  • Einfache und doppelt verkette Liste
  • Exceptions
  • Clean Code
  • Testfälle schreiben
  • Laufzeiteffizienz und O-Notation
  • Entwurfsmuster (Iterator, Observer, Singleton, Strategie u.a.)
  • Verschachtelte, innere, statische und lokale Klassen
  • Sortieralgorithmen, u.a. Quicksort
  • Listen-Funktionen und Lambda-Ausdrücke
  • Stacks
  • Warteschlange
  • Assoziative Speicher
  • Nicht-lineare Datenstrukturen
  • Binärbäume
  • Verarbeitung durch Funktionen höherer Ordnung
  • Vergleich mit anderen Programmierparadigmen

Lehr- und Lernmethoden (Medienformen)

  • Vorlesung mit interaktiven Phasen, Präsentationen und Live-Coding
  • Übung
  • Praktikum
  • Selbststudium mit bereitgestellten Screencasts, einem umfassenden Skript sowie Fachliteratur

Empfohlene Literatur

  • Vorlesungsunterlagen: Foliensammlung, ausformuliertes Skript, Beispiellösungen, Screencasts
  • Kohls, C., Dobrynin, A. (2023) Programmieren Lernen mit Kotlin. München: Hanser Verlag.
  • Dmitry Jemerov & Svetlana Isakova (2017). Kotlin in Action. Manning Publications.
  • Dawn Griffiths, David Griffiths & Jørgen W. Lang (2019). Kotlin von Kopf bis Fuß: Eine Einführung in die Kotlin-Programmierung. O'Reilly.
  • Thomas Theis (2019). Einstieg in Kotlin: Apps entwickeln mit Android Studio. Keine Vorkenntnisse erforderlich, ideal für Kotlin-Einsteiger und Java-Umsteiger. Rheinwerk-Verlag
  • Karl Szwillus (2019). Kotlin: Einstieg und Praxis. mitp Professional.
  • Online-Referenz und Tutorials: https://kotlinlang.org/docs/reference/

Besonderheiten

Die Veranstaltung ist als "Flex Classroom" konzipiert. Studierende können die Learning Outcomes durch Besuch der Vorlesung oder durch die Nutzung der bereitgestellten Screencasts erreichen. Die Praktika bestehen aus Beratung und Abnahme von Praktikumsaufgaben.