CS1016 Programmierung interaktiver Systeme

Modulverantwortliche
  • Prof. Dr. Dominikus Herzberg
Lehrende
  • Prof. Dr. Dominikus Herzberg
  • Nadja Krümmel
  • Prof. Dr. Martin Weigel
Notwendige Voraussetzungen zur Teilnahme

Für Bachelor Informatik, Bachelor Ingenieur-Informatik, Bachelor Bioinformatik: CS1013 Objektorientierte Programmierung, CS1014 Grundlagen der Informatik

Für Bachelor Social Media Systems: IT1002 Webbasierte Programmierung 2

Kurzbeschreibung

Die Studierenden beherrschen fortgeschrittene Konzepte einer modernen Programmiersprache, die sowohl prozedurale, objektorientierte als auch funktionale Sprachkonstrukte umfasst. Sie sind zudem dazu befähigt, ein Programmierprojekt mit interaktiven Anteilen umzusetzen.

Inhalte
  • Fortgeschrittene objektorientierte Konzepte: Pakete/Module, Generizität von Klassen/Methoden, Annotationen, generische Datentyp-Bibliotheken, Bibliotheken zur Ein-/Ausgabe, zum Daten-/Verzeichniszugriff und zum Netzzugriff
  • Grundlegende funktionale Konzepte, wie u.a. Funktionen, Closures, Lambda-Ausdrücke, Immutabilität und referentielle Transparenz, Higher-Order-Functions, Streams, abstrakte Datentypen
  • Fortgeschrittene Laufzeitkonzepte, Introspektion und Reflection, Threads, Nebenläufigkeit und Parallelität, Ereignissteuerung, Probleme interaktiver Anwendungen
  • Fortgeschrittene Programmiertätigkeiten, wie u.a. Programmanalyse, Daten- und Programm-Modellierung, Qualitätssicherung, Dokumentation, Nutzung von Entwicklerdokumentation z.B. API-Dokumentation und Sprachstandards
  • Fortgeschrittener Technikeinsatz, wie u.a. Entwicklungswerkzeuge, Programmiertechniken (wie z.B. Design by Contract, datenflussorientierte Programmierung, Programmiermuster) und Nutzung von Rahmenwerken (wie z.B. zum Testing und zur Protokollierung).
Qualifikations- und Lernziele

Fachkompetenzen

  • Die Studierenden können neben erweiterten (Sprach)konzepten der Objektorientierung grundlegende Sprachkonzepte der funktionalen Programmierung benennen; Sie können das Verständnis der Konzepte gezielt zur Programmentwicklung nutzen (Objektorientierung, funktionale Programmierung).
  • Sie können eine Anwendung mit interaktiven Elementen entwickeln und sind in der Lage, die Darstellung und Dokumentation des Codes nach gegebenen Anforderungen umzusetzen (Anwendungsentwicklung).

Methodenkompetenzen (fachlich & überfachlich)

  • Die Studierenden sind in der Lage, eine Programmieraufgabe zu analysieren und auf Problemlösestrategien zurückgreifen, um einen Umsetzungsplan zu formulieren.
  • Sie sind in der Lage, ihre Programme einerseits auf Erfüllung der Anforderung hin zu testen und andererseits Fehler zu entdecken und zu beheben.

Sozialkompetenzen

  • Die Studierenden können andere Studierende im Entwicklungsprozess unterstützen.

Selbstkompetenzen

  • Die Studierenden können erlernte Handlungs- und Entwicklungsmuster routiniert nutzen
  • Sie können sich nach dem ersten Programmierjahr eigenständig in andere objektorientierte und funktional-hybride Programmiersprachen einarbeiten, sowie Programme in einer anderen Programmiersprache lesen und verstehen.
ECTS-Leistungspunkte (CrP)
  • 6 CrP
  • Arbeitsaufwand 180 Std.
  • Präsenzzeit 90 Std.
  • Selbststudium 90 Std.
Lehr- und Lernformen
  • 6 SWS
  • Vorlesung 2 SWS
  • Übung 2 SWS
  • Praktikum 2 SWS
Studiensemester
  • Bioinformatik (B.Sc. 2012)
  • Informatik (B.Sc. 2010) - 2. Semester
  • Ingenieur-Informatik (B.Sc. 2010) - 2. Semester
  • Social Media Systems (B.Sc. 2016)
Dauer
1 Semester
Häufigkeit des Angebots
Jedes Semester
Unterrichtssprache
Deutsch
Bonuspunkte

Ja

Bonuspunkte werden gemäß § 9 (4) der Allgemeinen Bestimmungen vergeben. Art und Weise der Zusatzleistungen wird den Studierenden zu Veranstaltungsbeginn rechtzeitig und in geeigneter Art und Weise mitgeteilt.

Prüfungsleistungen

Prüfungsvorleistung: Hausübungen, Kurztests, Regelmäßige Teilnahme am Praktikum (mindestens 90% der Zeit) und/oder Praktikumsleistungen

(Art und Umfang der Vorleistungen wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)

Prüfungsleistung: Klausur oder Projekt (Art des Leistungsnachweises wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)

Benotung
Die Bewertung des Moduls erfolgt gemäß §§ 9, ggf. 12 (Teilleistungen), ggf. 18 (Arbeiten, Kolloquien) der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung).
Verwendbarkeit
Gemäß § 5 der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung) Verwendbarkeit in allen Bachelorstudiengänge der THM möglich.
Literatur, Medien
  • Gosling, James et al.: The Java Language Specification. https://docs.oracle.com/javase/specs/
  • Ullenboom, C.: Java ist auch eine Insel. Einführung, Ausbildung, Praxis. Rheinwerk.
  • Prähofer, H.: Funktionale Programmierung in Java. Eine umfassende Einführung. dpunkt.
  • Kofler, M.: Kotlin. Das umfassende Handbuch. Rheinwerk.
  • Cherny, B.: Programming TypeScript. Making Your JavaScript Applications Scale. O'Reilly.
  • Dörpinghaus, J.; Schaaf, S.; Weil, V.: Java für die Life Sciences. Eine Einführung in die angewandte Bioinformatik. O'Reilly.
  • McConnell, S.: Code Complete. Microsoft Press.

Rechtliche Hinweise