Module 39-Inf-PP Principles of Programming

Faculty

Person responsible for module

Regular cycle (beginning)

Every winter semester

Credit points and duration

10 Credit points

For information on the duration of the modul, refer to the courses of study in which the module is used.

Competencies

Ziel ist die Vermittlung der grundlegenden Prinzipien verschiedener Programmiersprachen (imperativ, objektorientiert, funktional) und ihr praktischer Einsatz in der Softwareentwicklung. Studierende erlernen die Fähigkeit zur selbständigen Lösung einfacher Algorithmenentwurfs- und Programmieraufgaben.
Insbesondere sollen die Studierenden in der Lage sein, Software aus vorhandenen Bibliotheken wiederzuverwenden und selbst entwickelte Software so zu strukturieren, dass diese einfach erweitert und wiederverwendet werden kann. Darüber hinaus verstehen die Studierenden am Beispiel von Java und Haskell, wie man neue Programmierkonzepte systematisch erlernt und fundiertes Sprachwissen effizient erwirbt und präzise kommuniziert.

Content of teaching

Die Vorlesung "Grundlagen und Prinzipien der Programmierung " führt zunächst in grundlegende Konzepte der Informatik ein (Prinzipien der Programmierung). Sie behandelt Themen wie "Was ist Informatik?", Spezifikation und Algorithmus, Strategien für den Algorithmenentwurf und Maschinenmodelle. Grundlegende Algorithmen auf Listen und Bäumen sowie zur Verarbeitung von Zeichenreihen werden entwickelt.

Parallel zu diesem, mehr theoretisch orientierten, Vorlesungsteil eine Einführung in das Programmieren. Nach einer Einführung in die Kalküle und Terminologie zur systematischen Beschreibung von Programmiersprachen werden die imperative Programmierung und darauf aufbauend schrittweise die objektorientierten Sprachkonstrukte der Programmiersprache Java vorgestellt. Dabei stehen der problembezogene, sinnvolle Einsatz der Sprachkonstrukte und ihr Bezug zu ähnlichen Konzepten in anderen objektorientierten Programmiersprachen im Vordergrund. Lehrinhalte sind u.a. Typen, Werte und Variablen, Objekte und Klassen, Methoden, Kontrollstrukturen, Rekursion, Vererbung, Interfaces, Datenkapselung, Sichtbarkeit und Gültigkeitsbereiche, Generics und Exceptions.

Weiterhin wird die funktionale Programmierung am Beispiel Haskell behandelt. Neben dem Erlernen der jeweils wesentlichen Sprachelemente sind Konzepte wie Rekursion, Funktionen höherer Ordnung, parametrischer Typ-Polymorphismus, Typ-Klassen und die Lazy Evaluation wichtige Lehrinhalte.

In der Übung werden Aufgaben zur Vorlesung behandelt. Das Selbststudium zur Vorlesung wird durch Programmieraufgaben angeleitet, die parallel zum Übungsbetrieb zu bearbeiten sind.

Das „Programmierpraktikum“ führt in die grundlegende Anwendung der jeweiligen Compiler in UNIX-Umgebungen, Programmierumgebungen (IDEs) und Versionskontrollsystemen ein. Anhand einfacher Datenstrukturen mit den zugehörigen Operationen und der Umsetzung kleiner objektorientierter Modellierungsaufgaben wird belastbares Grundlagenwissen vermittelt, das anschließend im Anwendungskontext "Grafische Benutzungsoberflächen" realitätsnah vertieft wird.

Recommended previous knowledge

Necessary requirements

Explanation regarding the elements of the module

Module structure: 1 uPr 1

Courses

Grundlagen und Prinzipien der Programmierung
Type exercise
Regular cycle WiSe
Workload5 60 h (30 + 30)
LP 2
Grundlagen und Prinzipien der Programmierung
Type lecture
Regular cycle WiSe
Workload5 180 h (120 + 60)
LP 6
Programmierpraktikum
Type internship
Regular cycle WiSe
Workload5 60 h (30 + 30)
LP 2

Examinations

portfolio with final examination
Allocated examiner Person responsible for module examines or determines examiner
Weighting without grades
Workload -
LP2 -

Portfolio mit Abschlussprüfung bestehend aus:
1) Portfolio von Übungen zu Inhalten der Vorlesung
Übungsaufgaben oder Programmieraufgaben, die veranstaltungsbezogen gestellt werden (Bestehensgrenze 50% der erzielbaren Punkte). Die Kontrolle der Übungsaufgaben umfasst auch direkte Fragen zu den Lösungsansätzen, die von den Studierenden in den Übungen beantwortet werden müssen. Der*die Lehrende kann ein individuelles Erläutern und Vorführen von Aufgaben verlangen sowie einen Teil der Übungsaufgaben durch Präsenzübungen ersetzen. Die Übungsaufgaben im Rahmen des Portfolios werden in der Regel wöchentlich ausgegeben und dienen dem begleitenden Erlernen selbständiger Umsetzungen der in der Vorlesung vorgestellten Lerninhalte.

2) einer Abschlussprüfung im Rahmen des Programmierprojekts
Das im Rahmen des Praktikums begonnene Programmierprojekt muss erfolgreich beendet werden und darüber hinaus muss im Projektbericht (ca. 4 Seiten) reflektiert werden, wie methodisch vorgegangen wurde.
Die Abschlussprüfung zu den Inhalten des Programmierprojekts nimmt Bezug auf die Übungs- oder Programmieraufgaben oder entwickelt sich aus den in den Übungen erlernten Kompetenzen.

Beide Portfolioelemente werden durch eine*n Prüfer*in geprüft. Es erfolgt eine abschließende Gesamtbewertung.

The module is used in these degree programmes:

Degree programme Version Profile Recom­mended start 3 Duration Manda­tory option 4
Informatics / Bachelor of Science [FsB vom 01.04.2025] Major Subject (Academic) Technical Informatics 1. one semester Obli­gation
Informatics / Bachelor of Science [FsB vom 01.04.2025] Major Subject (Academic) Bioinformatics 1. one semester Obli­gation
Informatics / Bachelor of Science [FsB vom 01.04.2025] Major Subject (Academic) Modelling 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 01.04.2025] Minor Subject (Academic), 60 CPs 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 01.04.2025] Minor Subject (Academic), 30 CPs Software Engineering 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 01.04.2025] Minor Subject (Academic), 30 CPs Practical Informatics 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 01.04.2025] Minor Subject (Academic), 30 CPs Technical Informatics 1. one semester Obli­gation
Informatics / Bachelor of Science [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Major Subject (Academic) Technical Informatics 1. one semester Obli­gation
Informatics / Bachelor of Science [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Major Subject (Academic) Bioinformatics 1. one semester Obli­gation
Informatics / Bachelor of Science [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Major Subject (Academic) Modelling 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Minor Subject (Academic), 60 CPs Practical Informatics 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Minor Subject (Academic), 60 CPs Technical Informatics 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Minor Subject (Academic), 30 CPs Software Engineering 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Minor Subject (Academic), 30 CPs Practical Informatics 1. one semester Obli­gation
Informatics / Bachelor [FsB vom 16.05.2023 mit Änderung vom 01.08.2023] Minor Subject (Academic), 30 CPs Technical Informatics 1. one semester Obli­gation
Artificial Intelligence and Cognitive Informatics / Bachelor of Science [FsB vom 16.05.2023 mit Änderung vom 01.04.2025] Bachelor with One Core Subject (Academic) 1. one semester Obli­gation
Medical Physics / Bachelor of Science [FsB vom 28.03.2024] Bachelor with One Core Subject (Academic) 3. one semester Obli­gation
Informatics for the Natural Sciences / Bachelor of Science [FsB vom 01.04.2025] Bachelor with One Core Subject (Academic) 1. one semester Obli­gation

Automatic check for completeness

The system can perform an automatic check for completeness for this module.


Legend

1
The module structure displays the required number of study requirements and examinations.
2
LP is the short form for credit points.
3
The figures in this column are the specialist semesters in which it is recommended to start the module. Depending on the individual study schedule, entirely different courses of study are possible and advisable.
4
Explanations on mandatory option: "Obligation" means: This module is mandatory for the course of the studies; "Optional obligation" means: This module belongs to a number of modules available for selection under certain circumstances. This is more precisely regulated by the "Subject-related regulations" (see navigation).
5
Workload (contact time + self-study)
SoSe
Summer semester
WiSe
Winter semester
SL
Study requirement
Pr
Examination
bPr
Number of examinations with grades
uPr
Number of examinations without grades
This academic achievement can be reported and recognised.

Sidebar

Elements of the module

Courses

Examinations

Programme of lectures (eKVV)

Programme of lectures (eKVV)

Show lists of modules

Informatics / Bachelor of Science: Major Subject (Academic) // Technical Informatics

Informatics / Bachelor of Science: Major Subject (Academic) // Bioinformatics

Informatics / Bachelor of Science: Major Subject (Academic) // Modelling

Informatics / Bachelor: Minor Subject (Academic), 60 CPs

Informatics / Bachelor: Minor Subject (Academic), 30 CPs // Software Engineering

Informatics / Bachelor: Minor Subject (Academic), 30 CPs // Practical Informatics

Informatics / Bachelor: Minor Subject (Academic), 30 CPs // Technical Informatics

Informatics / Bachelor of Science: Major Subject (Academic) // Technical Informatics [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor of Science: Major Subject (Academic) // Bioinformatics [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor of Science: Major Subject (Academic) // Modelling [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor: Minor Subject (Academic), 60 CPs // Practical Informatics [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor: Minor Subject (Academic), 60 CPs // Technical Informatics [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor: Minor Subject (Academic), 30 CPs // Software Engineering [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor: Minor Subject (Academic), 30 CPs // Practical Informatics [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Informatics / Bachelor: Minor Subject (Academic), 30 CPs // Technical Informatics [FsB vom 16.05.2023 mit Änderung vom 01.08.2023]

Artificial Intelligence and Cognitive Informatics / Bachelor of Science: Bachelor with One Core Subject (Academic)

Medical Physics / Bachelor of Science: Bachelor with One Core Subject (Academic)

Informatics for the Natural Sciences / Bachelor of Science: Bachelor with One Core Subject (Academic)