Skip to content
This repository has been archived by the owner on Feb 16, 2024. It is now read-only.

Latest commit

 

History

History
109 lines (101 loc) · 4.76 KB

BA_AlgorithmenundProgrammierung2.md

File metadata and controls

109 lines (101 loc) · 4.76 KB
title modulverantwortlich dozierende modulniveau kuerzel date kategorie sprache kreditpunkte voraussetzungenNachPruefungsordnung empfohleneVoraussetzungen published veranstaltungsform pvl typ layout infourl studienleistungen meta besonderheiten praesenzZeit selbstStudium angebotImWs angebotImSs weitereStudiengaenge lehrmethoden lehrform studiengangkriterien
Algorithmen und Programmierung 2
ck
ck
bachelor
AP2
Last Modified
grundlagen
deutsch
7
keine
Algorithmen und Programmierung 1
true
true
pm
modulbeschreibung.11ty.js
Einzelleistung
art erstpruefer zweitpruefer datum
Klausurarbeit, sowie erfolgreiche Teilnahme am Praktikum als Prüfungsvorleistung
ck
ald
ss-2
status authors reviewers
ok
Christian Kohls
Christian Kohls
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.
108
102
false
true
itm
i
wi
Vorlesung mit interaktiven Phasen, Präsentationen und Live-Coding
Übung
Praktikum
Selbststudium mit bereitgestellten Screencasts, einem umfassenden Skript sowie Fachliteratur
Vorlesung 3 SWS
Praktikum 2 SWS
Übung 1 SWS
globalcitizenship internationalisierung interdisziplinaritaet transfer
0
0
0
0

Learning Outcome

Die Studierende sollen

  • (WAS) die grundlegenden Prinzipien, Strukturen und Syntaxelemente der objekt-orientierten 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.

Inhalte

  • Arbeiten mit integrierter Entwicklungsumgebung
  • Dynamische vs. Statische Typisierung
  • Objekte und Abstraktion
  • Einfache Klassen
  • Datenkapselung
  • Konstruktoren
  • Veränderbare und unveränderbare Listen
  • when-Anweisungen und Ausdrü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

Literatur

  • Vorlesungsunterlagen: Foliensammlung, ausformuliertes Skript, Beispiellösungen, Screencasts
  • Kohls, C., Dobrynin, A., Leonard, F. (2020) Programmieren Lernen mit Kotlin. Mün- chen: 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. Rhein-werk-Verlag
  • Karl Szwillus (2019). Kotlin: Einstieg und Praxis. mitp Professional.
  • Online-Referenz und Tutorials: https://kotlinlang.org/docs/reference/