Concepts of Programming Languages (KP)

Elective for CS graduate students at the University of Applied Sciences Rosenheim. — Fachwissenschaftliches Wahlpflichtmodul im Masterstudiengang Informatik an der Hochschule Rosenheim.

Class Schedule

Class and Tutorials: Tuesdays at 8a (2 units)

Communication via Mattermost (invite).

Important Dates:

  • Oct 3, no class (Tag der Einheit)
  • Oct 10, introduction, distribution of topics
  • Oct 31, no class (Reformationstag, Lutherjahr 2017)

Note: Materials will be in English, the lectures/tutorials will be taught in German.


Class and Credits (Leistungsnachweis)

Lectures: We’ll start with an introduction to functional programming with Scala, and then go into languages and topics (prepared by students) for the remainder of the class.

Tutorials and assignments: Pairprogramming preferred, BYOD strongly recommended!

Credits: Team project (PStA) consisting of materials (slides, assignments, solutions) and final paper.

Syllabus (tentative)

No class on Oct 3 (Tag der Einheit)

  • Introduction (Oct 10, slides with topics)

    Intro to the class and requirements, brief overview of the available topics.

  • Functional Programming in Scala pt. 1 (Oct 17, slides, assignments)

    Function evaluation and the substitution model, higher order functions and how to model classes in Scala.

  • Functional Programming in Scala pt. 2 (Oct 24, assignments)

    Learn about pattern matching, and how to use it to work with lists and collections.

No class on Oct 31 (Reformationstag, Lutherjahr 2017)

  • Functional Programming in Scala pt. 3 (Nov 7)


  • Student presentations (Nov 14 … Jan 30)

    • Nov 14: Reactive programming
    • Nov 21: Actors
    • Nov 28: C++17
    • Dec 5: C++: operator overloading and template meta programming
    • Dec 12: Two-way data binding in MVC
    • Dec 19: Monads (Scala)
    • Jan 9: Decorators and mixins (Python)
    • Jan 16: Dependency Injection
    • Jan 30 (1): Squeeze for performance
    • Jan 30 (2): Properties
    • Jan 30 (3): Rust

Subscribe to repository to follow updates.