MENUMENU
MENUMENU

Algorithmen, Datenstrukturen und Programmiersprachen (DLBIADPS01)

Kursnummer:

DLBIADPS01

Kursname:

Algorithmen, Datenstrukturen und Programmiersprachen

Gesamtstunden:

150 h

ECTS Punkte:

5 ECTS

Kurstyp: Pflicht

Kursangebot: WS, SS

Course Duration: Minimaldauer 1 Semester

Zugangsvoraussetzungen:

Objektorientierte Programmierung (IOBP)

Kurskoordinator(en) / Dozenten / Lektoren:

Siehe aktuelle Liste der Tutoren im Learning Management System

Bezüge zu anderen Modulen:

Siehe Modulbeschreibung

Beschreibung des Kurses:

Programmierung besteht im Wesentlichen daraus, für eine konkrete Aufgabenstellung geeignete Algorithmen und Datenstrukturen auszuwählen und diese in Programmcode umzusetzen. Dabei gibt es eine Vielzahl unterschiedlicher Programmiersprachen, die auf unterschiedlichen Vorgehensweisen beruhen und in denen Algorithmen und Datenstrukturen daher unterschiedlich umgesetzt werden. In diesem Modul werden diese bisher an konkreten Beispielen behandelten Konzepte systematisch aufbereitet und auf eine breitere Grundlage gestellt, um den Studierenden das notwendige Handwerkszeug für ein systematisches Vorgehen bei der Programmierung zu geben.

Kursziele:

Nach erfolgreichem Abschluss des Kurses sind die Studierenden in der Lage,

  • grundlegende Datenstrukturen zu erklären und in konkreten Anwendungsfällen zu vergleichen und anzuwenden.
  • grundlegende Algorithmen zu erklären.
  • in konkreten Anwendungsfällen geeignete Algorithmen zu entwerfen oder auszuwählen sowie anzuwenden.
  • den Einsatz XML als Datenstruktur sowie die wichtigsten Algorithmen und Konzepte zur Verarbeitung von XML-Dokumenten (DOM, SAX, XLS) zu erklären und in einfachen Anwendungsfällen anzuwenden.
  • die verbreiteten Programmierparadigmen und Programmiersprachen zu erläutern und zu vergleichen.

Lehrmethoden:

Die Lehrmaterialien enthalten Skripte, Video-Vorlesungen, Übungen, Podcasts, (Online-) Tutorien und Fallstudien. Sie sind so strukturiert, dass Studierende sie in freier Ortswahl und zeitlich unabhängig bearbeiten können.

Inhalte des Kurses:

1. Grundbegriffe

1.1 Algorithmen, Datenstrukturen und Programmiersprachen als Grundlagen der Programmierung

1.2 Detaillierung und Abstraktion

1.3 Kontrollstrukturen

1.4 Datentypen

1.5 Grundlegende Datenstrukturen (Liste, Kette, Baum)

2. Datenstrukturen

2.1 Fortgeschrittene Datenstrukturen: Warteschlange, Heap, Stack, Graph, Blockchain

2.2 Abstrakte Datentypen, Objekte und Klassen

2.3 Polymorphie

3. Algorithmen-Entwurf

3.1 Induktion, Iteration und Rekursion

3.2 Methoden des Algorithmen-Entwurfs

3.3 Korrektheit und Verifikation von Algorithmen

3.4 Effizienz (Komplexität) von Algorithmen

4. Grundlegende Algorithmen

4.1 Traversieren und Linearisierung von Bäumen

4.2 Suchalgorithmen

4.3 Sortieralgorithmen

4.4 Suche in Zeichenketten

4.5 Hash-Algorithmen

4.6 Mustererkennung

4.7 MapReduce

5. XML

5.1 Aufbau von XML-Dokumenten

5.2 Zugriff auf XML-Dokumente mit DOM und SAX

5.3 Transformation von XML-Dokumenten mit XSL

5.4 Alternative zu XML: JSON

6. Programmiersprachen

6.1 Programmierparadigmen

6.2 Ausführung von Programmen

6.3 Typen von Programmiersprachen

6.4 Syntax, Semantik und Pragmatik

6.5 Variablen und Typsysteme

7. Überblick über wichtige Programmiersprachen

7.1 C, C++ und C#

7.2 Java

7.3 Weitere imperative Programmiersprachen

7.4 PHP und HTML

7.5 Weitere Skript-Sprachen

Literatur:

  • Gumm H. P. /Sommer M. (2013): Einführung in die Informatik. 10. Auflage. Oldenbourg, München.
  • Harel, D. (2006): Algorithmik: Die Kunst des Rechnens. Springer, Berlin Heidelberg New York.
  • Vonhoegen, H. (2015): Einstieg in XML: Grundlagen, Praxis, Referenz. Rheinwerk Computing, Bonn.

Prüfungszugangsvoraussetzung:

  • Kursabhängig: Begleitende Online-Lernkontrolle (max. 15 Minuten je Lektion, bestanden / nicht bestanden)
  • Kursevaluation

Prüfungsleistung:

Klausur, 90 Min.

Zeitaufwand Studierende (in Std.): 150

Selbststudium (in Std.): 90
Selbstüberprüfung (in Std.): 30
Tutorien (in Std.): 30