Modul-Nr./ Code |
309 / PFKI |
Studiengang |
Angewandte Informatik (B.Sc.)
Angewandte Informatik – dual (B.Sc.)
Wirtschaftsinformatik (B.Sc.)
Wirtschaftsinformatik – dual (B.Sc.)
|
Geförderte Kompetenzen |
Fach- und Methodenkompetenz |
Angestrebte Lernergebnisse des Moduls |
Nach erfolgreichem Absolvieren dieses Moduls sind die Studierenden in der Lage,
-
Python auf fortgeschrittenem Niveau und die zentralen Data-Science-/KI-Bibliotheken sicher einzusetzen
-
Programmierparadigmen bewusst zu unterscheiden und zu kombinieren (prozedural, objektorientiert, funktional) und idiomatischen Python-Code zu schreiben
-
die Konsequenzen dynamischer Typisierung und hoher Abstraktion einzuschätzen und datenzentriert zu denken (Arrays/Vektorisierung statt elementweiser Schleifen)
-
in PyTorch den Trainings-Loop für ein einfaches neuronales Netz selbst aufzusetzen (Tensoren, Autograd, Forward-/Backward-Pass, Optimierungsschritt) und es lauffähig zu trainieren
-
zu erklären, wie ein Framework intern arbeitet und wie Berechnungen auf die GPU gelangen
-
das GPU-Ausführungs- und Kostenmodell in Grundzügen zu erklären (Parallelität, Speicherhierarchie, Matrixmultiplikation, Genauigkeit)
-
Performance, Speicherbedarf und Kosten realer Modelle einzuschätzen und Optimierungshebel (Quantisierung, Batching, Parallelisierung) begründet auszuwählen
-
einen einfachen CUDA-Kernel zur Anschauung selbst zu schreiben und mit Hilfe eines Profilers Engpässe zu identifizieren
|
Inhalte des Moduls |
-
Python von den Grundlagen bis zu fortgeschrittenen Konzepten (idiomatische Programmierung, objektorientiertes Arbeiten, Arbeitsumgebung)
-
Zentrale Bibliotheken für Data Science und KI (NumPy, pandas, Matplotlib, scikit-learn, etc.)
-
PyTorch: Tensoren, automatische Differenzierung (Autograd), Trainings-Loop sowie Aufbau und Training neuronaler Netze
-
Interne Funktionsweise von Frameworks: PyTorch als Orchestrierungsschicht über optimierten Kernel-Bibliotheken (z. B. cuBLAS, cuDNN)
-
Grundlagen der GPU-Programmierung mit CUDA: Programmiermodell (Threads/Blocks), Speicherhierarchie und Speicherbandbreite, Matrixmultiplikation (GEMM) als rechnerischer Kern, Tensor Cores, reduzierte Genauigkeit (FP16/BF16)
-
Aufbauende Themen: Quantisierung, Deployment großer Modelle, Multi-GPU-Parallelisierung
-
Ausblick auf aktuelle Entwicklungen, z. B. Mojo (GPU-Code in einer Python-nahen Sprache, an Rust angelehnte Konzepte für Speichersicherheit)
-
Querschnittsthema: KI-gestütztes Programmieren – Werkzeuge sinnvoll und reflektiert einsetzen
|
Studiensemester |
3 - 5 |
Dauer des Moduls |
ein Semester |
SWS |
2 SWS (Seminar) + 2 SWS (Übung) |
Häufigkeit des Modulangebots |
Semesterweise |
Zahl der zugeteilten ECTS-Credits |
6 |
Gesamtworkload |
150 Stunden |
Kontaktzeit |
60 Stunden |
Selbststudium |
90 Stunden |
Art des Moduls (Pflicht, Wahl, etc.) |
Wahlpflichtmodul |
Verwendbarkeit des Moduls |
Grundlage für weiterführende KI-/ML-Module (z. B. Architektur neuronaler Netze, Machine Learning). Aufbau, Architektur und Theorie neuronaler Netze (Modellfamilien, Trainingsverfahren im Detail) sind Gegenstand dieser Module; hier liegt der Fokus auf der programmiertechnischen Umsetzung und der Ausführung auf der GPU. |
Teilnahmevoraussetzungen |
Eine vorherige erfolgreiche Teilnahme an den Modulen Prozedurale Programmierung (PROG1) und Objektorientierte Programmierung (PROG2) wird dringend empfohlen. Solide Programmierkenntnisse werden vorausgesetzt; Python-Kenntnisse werden nicht vorausgesetzt. |
Modulverantwortliche Person |
Prof. Dr. Kurpjuweit |
Dozentin / Dozent |
Prof. Dr. Kurpjuweit |
Unterrichtssprache |
Deutsch |
Art der Prüfung / Voraussetzung für die Vergabe von Leistungspunkten |
Schriftliche Prüfung (E-Klausur lt. §13 Abs. 3 RPO) mit praktischem Anteil. |
Prüfungsdauer |
90 Minuten |
Prüfung benotet / unbenotet |
Benotet |
Notengewicht in der Gesamtnote |
Entsprechend der ECTS-Punkte |
Lehr- und Lernmethoden |
Vorlesung; begleitetes Praktikum am Rechner mit Programmieraufgaben; Selbststudium anhand von Notebooks und Begleitmaterial. |
Besonderes (z.B. Online-Anteil, Praxisbesuche, Gastvorträge, etc.) |
- |
Pflichtlektüre |
|
zusätzlich empfohlene Literatur |
-
Ramalho, L.: Fluent Python. 2. Aufl., O’Reilly, 2022.
-
VanderPlas, J.: Python Data Science Handbook. 2. Aufl., O’Reilly, 2022.
-
Raschka, S.; Liu, Y.; Mirjalili, V.: Machine Learning with PyTorch and Scikit-Learn. Packt, 2022.
-
Géron, A.: Hands-On Machine Learning with Scikit-Learn and PyTorch. O’Reilly, 2025.
-
McKinney, W.: Python for Data Analysis. 3. Aufl., O’Reilly, 2022.
-
Sanders, J.; Kandrot, E.: CUDA by Example. Addison-Wesley, 2010.
-
NVIDIA CUDA C++ Programming Guide.
-
Hwu, W.; Kirk, D.; El Hajj, I.: Programming Massively Parallel Processors – A Hands-on Approach. 4. Aufl., Morgan Kaufmann, 2022.
|