Modul Konzepte von Programmiersprachen, Informatik (Master) (SPO 5)

Englische Sprache
Kompakte Schrift

Farbschema

Modulübersicht

Konzepte von Programmiersprachen

INFM120S

Prof. Dr. Martin Sulzmann

/

1. Semester

keine

keine

Die Studierenden beherrschen verschiedene Arten von Programmiersprachen und verstehen deren zugrundeliegenden Konzepte. Des Weiteren lernen die Studenten Optimierungsverfahren zu bewerten und beherrschen ihre Anwendung zur effizienten Ausführung von Programmen.

Mit Hilfe praktischer Übungen bekommen die Studierenden einen Einblick in verschiedenen Arten der Programmierung in mehreren Programmiersprachen. Sie sind kompetent, die Brauchbarkeit und Wirksamkeit verschiedener Programmierkonzepte zu beurteilen und umzusetzen.

Klausur 90 Min. (benotet)
Lehrveranstaltung Optimierung von Programmen Labor

INFM122S

Übung

Prof. Dr. Christian Pape

deutsch

4/3

120 Stunden gesamt, davon 45 Stunden Kontaktstudium.

Übung 1 Semester (nicht benotet)

Die Studierenden lernen, komplexe Algorithmen mit einer systemnahen prozeduralen oder objekt-orientierten Programmiersprache wie C oder C++ korrekt zu implementieren.

Sie optimieren diese Algorithmen hinsichtlich der Ausführungsgeschwindigkeit mit verschiedenen Paradigmen wie Hybridisierung oder Techniken zur Cache-Optimierung.

Die Teilnehmer der Veranstaltung messen die Ausführungszeiten und überprüfen empirisch die asymptotische Laufzeit der implementierten Verfahren. Dazu erstellen sie verschiedener Testszenarien, um die Algorithmen darauf basierend zu vergleichen und zu beurteilen.

Die Studierenden dokumentieren und diskutieren die Ergebnisse. Sie analysieren ihre Optimierungen und erklären die Resultate.

Die zu behandelnden Informatikprobleme variieren. Typische Inhalte sind:

  • Schnelle Multiplikation von Polynomen und Zahlen
  • Grafisch-Geometrische-Algorithmen
  • Graphenalgorithmen

Die Übungsaufgaben und Zusatzmaterialien werden elektronisch (HTML, PDF, Programmgerüste) zur Verfügung gestellt.

Vorkenntnisse: 

Vertiefte praktische Kenntnisse einer prozeduralen oder objekt-orientierten Programmiersprache wie C, C++, C# oder Java. Implementierung und Testen grundlegender Algorithmen aus dem Bereich der Such-, Graphen- und Sortierprobleme.

Format: Praktische Arbeit, Übungen im Labor mit geringem Vorlesunganteil. Die Ergebnisse werden in den praktischen Übungen von den Studenten vorgestellt und mit dem Dozenten diskutiert. Die Ergebnisse sind von den Studenten in einem Bericht zu dokumentieren.

Betreuung:

Individuelle Betreuung durch den Dozenten während der Präsenzzeit im Rechnerlabor. Außerhalb der Präsenzzeit via E-Mail oder während der Sprechzeiten des Dozenten.

Lehrveranstaltung Programmierparadigmen

INFM121S

Vorlesung

Prof. Dr. Martin Sulzmann

deutsch

3/3

90 Stunden gesamt, davon 45 Stunden Kontaktstudium.

Modulprüfung

Studierende dieses Kurses

  • erlangen einen Überblick über die Geschichte der Programmiersprachen,
  • lernen die verschiedenen Arten der Programmierung (Paradigmen) kennen,
  • erforschen ihre Gemeinsamkeiten und Unterschiede,  
  • erhalten praktische Erfahrungen durch Lösen von Programmieraufgaben.

Auswahl von behandelten Themen:

Historischer Überblick

Prozedurale Sprachen

  • Blockstruktur

  • Parameterübergabe

Objekt-orientierte Sprachen

  • Subtyping

  • Vererbung

  • Überladung

  • Funktionale Sprachen
    • Lambda Kalkül
    • Funktionen höherer Ordnung
    • Algebraische Datentypen und Patternmatching
  • Typsysteme
    • Deduktion (-> Prolog)
    • Typinferenz
    • Polymorphismus
    • Statische Analyse
  • Nebenläufige und verteilte Programmierung
    • Aktorenmodell
    • Software Transactional Memory

  • Foliensammlung
  • Tafelmitschrift
  • Ausgearbeitete Beispiele und Übungen
  • Textbuch: Concepts in Programming Languages von John C. Mitchell

Seminaristischer Unterricht mit theoretischen und praktischen Übungen.