Korbinian Riedhammer

Here is a list of classes I teach at the University of Applied Sciences Rosenheim.

Required classes for CS undergrads at the University of Applied Sciences Rosenheim.

Electives for CS undergrads at the University of Applied Sciences Rosenheim.

Electives for CS grad students at the University of Applied Sciences Rosenheim.

Undergraduate Classes

Programmieren 2

Required class for CS minors at the University of Applied Sciences Rosenheim.

We’ll cover advanced concepts of objects oriented programming including inheritance, interfaces and abstract base classes, and work our way through the most most important data structures and concepts such as lists, trees and iterators. We also touch recursion and multi-threading as higher-level programming concepts.

Class and materials are in German. See the course website (new version, work-in-progress).

Refresher Course

A brief 6-week refresher course for students that failed the Programmieren 2 exam. See the course website.

Programmieren 3

Required class for CS majors at the University of Applied Sciences Rosenheim.

A deep dive into object oriented programming using the Java language, with a focus on design patterns. We also touch multi-threading and basics of functional programming.

The class is taught in German, with English materials. See the course website.

Webtechnologien (web technologies)

A round-house kick introduction to how web apps work: starting with the basics of HTML5, CSS3 and Javascript, we’ll explore vue.js as an advanced toolkit, and conclude with deployment using docker and heroku.

The class is taught in German, with English materials. See the course website.

Sprachtechnologien (Speech Technologies)

An introduction to automatic speech processing. We’ll start with how the voice works and how the voice signal can be analyzed by the machine. After a brief detour to the machine learning world where we’ll talk about classification and sequence classification, we explore applications such as speaker identification, voice biometrics, speech recognition, dialog systems and speech translation.

The class is taught in German, with mostly German materials. See the course website.

Microservices

We’ll experiment and discuss current trends in cloud architecture and microservices. Topics include building blocks, containerization and provisioning, devops, discovery and communication, persistence and security.

The class is taught in German, with mostly English materials. See the course website

Graduate Classes

Konzepte der Programmiersprachen (Concepts of Programming Languages)

We’ll start with a deep dive into functional programming with Scala. We then continue with other advanced concepts of programming languages, such as reactive programming, actors, operator overloading and templates, monads, dependency injection and two-way data binding.

As a side effect, this course exposes you to a larger number of current programming languages and so you can learn about their particular strengths and weaknesses.

See the course website

Anwendungen funktionaler Programmierung (Applications of Functional Programming)

The first half of the course is a deep dive into the functional programming language Scala. We’ll then branch out to discover elements of functional programming in other languages such as C++, golang, Haskell, etc.

Course materials currently not publicly available.

Machine Learning

An introduction to machine learning: good practice of scientific experiments, regression and classification. We starting with basic classifiers such as k-nearest-neighbor and logistic regression, going into more complex methods such as decision trees, support vector machines or (deep) neural networks. Somewhat orthogonal to that, we’ll talk about regression and clustering problems.

This class is jointly taught with Markus Breunig and Jochen Schmidt. The materials are currently not publicly available.

Sequence Learning

While the above Machine Learning class is more general and introductory, Sequence Learning focuses on the particular problem of classifying sequences of observations, as opposed to single observations. We begin with simple techniques such as dynamic timewarping, and dive deeper into hidden Markov models and recurrent (deep) neural networks. Applications include stock market prediction, speech recognition or speech translation.

See the course website