Teaching

I am currently working as a Senior Lecturer at Graz University of Technology. However, since 2018 Graz University of Technology and the two Universities of Applied Sciences, FH Joanneum as well as Campus02, have a cooperation. As part of this cooperation, lecturers of Graz University of Technology teach courses in two Bachelor Degree Programm (Mobile Software Development and Business Software Development) at the Universities of Applied Sciences.
I have received the FH Joanneum Teaching Award for my teaching efforts in 2019 and 2022.

Current Teaching

At the moment I teach at FH Joanneum and Campus02 in two computer science Bachelor Degree Programs. The courses are all situated in the first two semesters; hence cover basic topics of computer science.
os
Operating Systems Basics
Instructor @ FH Joanneum/Campus02

This course deals with the essential basics of operating systems. Topics include Definitions and tasks of an operating system<, Process management, Main memory management, File systems, I/O subsystems and Bash.

Read More
network
Network Technologies
Instructor @ FH Joanneum/Campus02

Computer networks enable communication and data exchange between computers. The largest computer network is certainly known to you; it is the Internet. This means that everything covered in this course has a direct impact on our daily life.

Read More
network
Principles of Computer Science
Instructor @ FH Joanneum/Campus02

This course deals with the essential basics of computer science that every software engineer should be familiar with and that lay the foundation for more complex topics in computer science.

Read More
os
Data Structures and Algorithms
Instructor @ FH Joanneum/Campus02

Algorithms are recipes that describe how to solve recurring problems (e.g. sorting). Often, however, there are several algorithms that provide a solution to the same problem. Here we would like to know which of the methods is the most time-saving, for example.

Read More
network
Webtechnologies and Usability
Instructor @ FH Joanneum/Campus02

Have you ever used a website and thrown in the towel in frustration after a few minutes because? Therefore, you should learn how good human-machine communication can work and how you can ensure that your users can use your software product, e.g., website.

Read More

Past Teaching

Previously, I have tought at Graz University of Technology courses included in Bachelor and Master Degree Programs in Computer Science, Software Development and Management as well as Information and Computer Engineering. In addition, I was involved in three university-level continuing education courses.

clean code
Compiler Construction Pratical /Lecture
(Co-)Instructor @ Graz University of Technology

The lecture gives an overview of the structure and the functionality of a compiler for a programming language. The focus is on the analysis of languages including lexical analysis, parsing, and type checking using attributed grammars.

Read More
soma
Software Maintenance
(Co-) Instructor @ Graz University of Technology

The software maintenance course introduces the principles of software maintenance. Practical problems regarding maintenance activities as well as theoretical aspects are presented and discussed within the course.

Read More
network
Modelling of Technical Systems
Co-Instructor @ Graz University of Technology

In the course “Modelling Technical Systems” we discuss modeling for simulation and diagnosis of systems comprising components and their connections.

Read More
twin
The Twin Peaks Model: Software Architecture and Lifecycle (Value-Network Sued – IT enabled Eco Systems)
Co-Instructor @ Graz University of Technology

This course deals with the basic concepts of modern architectural concepts and teaches the participants the central characteristics of different architectures.

Read More
network
Data as a Service: Technologies and Architectures (Value-Network Sued – IT enabled Eco Systems)
Co-Instructor @ Graz University of Technology

This course focuses on limitations of centralized approaches and requirements for distributed and parallel data processing, including big data applications.

Read More
clean
Code Quality (Advanced Software Quality Assurance for Technical Management)
Co-Instructor @ Graz University of Technology

Subject area know-how preparation and development of the level model, exchange about working methods in the company.

Read More

Bachelor and Master Thesis Topics

Currently, there are no open Bachelor or Master Thesis. However, in case you have an idea that fits into my research interests or teaching contact me.

Bachelor Thesis Topics

By Lukas Stracke 2019

Program Dependence Graphs (PDG) can be used to identify plagiarism in software to a certain extend by determining the similarity between portions of code. In this thesis, some of the methods to detect similarities based on the PDG of programs should be investigated and one or several of the implemented for simple programs.

By Julia Le 2020, Franz Mandl 2020

In this thesis different of algorithms covered in the course software maintenance should be visualized (for example the Hitting Set Algorithm by Reiter, Slicing with the PDG,...). As part of the work, suitable concepts to visually represent the algorithms have to be developed and subsequently, those visualizations should be implemented.

By Hannes Unterweger, 2020

Different tools are to be identified and compared, which allow to analyze procedural or object priented programs (e.g. the Slicing Plug Kaveri. As part of the work different tools should be identified and compared in relation certain objectives such as capabilities, scope, performance etc.

By Manuel Doler, 2020

Delta Debugging is a divide-and-conquer strategy that returns a 1-minimal erroneous input. QuickXplain is an algorithm that should find minimal explanations for over-constrained problems and is also based on a divide-and-conquer strategy. These two approaches should be compared on the one hand theoretically and on the other hand practically with each other. The goal is to define a unified framework to compare these different methods and examine whether the algorithms return the same result for the same input or how the results differ.

By Alexandra Taupe, 2020

There are various slicing techniques beyond the usual suspects of static and dynamic slicing. For instance, quasi-slicing tries to balance between the two extremes that are static and dynamic slicing by only considering a portion of the input variables. Also extension to dynamic slicing such as simultaneous slicing exist, that explore several dynamic slices in conjunction. In this thesis, those and other approaches should be compared in regard to their capabilities to determine root causes for abnormal behavior in programs.

By Viktoria Trummer, 2020

In this thesis the required worksteps for integrating a hardware to a cotinous integration (CI) (Hardware-in-the-loop) are explained by means of a an evaluation board. These worksteps are: communication between the board and the CI, execution of hardware relevant tests and control of the power supply for the hardware. This Hardware-in-the-loop setup should ensure a defined and stable behaviour of the hardware in a defined environment.

Master Thesis Topics

By Franz Mandl 2022

Code optimization during program compilation is performed on an intermediate representation (for example, AST, three address code) of the program. And the effects of these optimizations are only visible in the code generation part. However, we now want the results of the optimization to be displayed on the AST, Three Address Code, … such that the effects of local and global optimizations can be directly seen.

In the scope of the thesis an application should be developed that makes code optimzations (e.g. dead code elimination, copy propagation,…) visible make not only on the target code but also on intermediate representation. The application should allow the user to apply these optimizations in different orderings using a GUI.

By Lukas Stracke 2021

As software projects grow their test suites also increase in size as well as the time to execute the test suite. Test Suite Reduction (TSR) deals with identifying and removing redundant test cases from a test suite. The reduced test suite ideally fulfills the same requirements as the initial test suite and retains the fault detection capability of the original test suite.

While commonly used metrics such as line or method coverage have been applied extensively in theory and practice, we investigate a different type of coverage metric: checked coverage. The idea is that not only executed portions of the code are relevant but also if these parts of the code were checked by some type of test oracle. This thesis investigates whether checked coverage is suitable for TSR.

By Johannes Lüftenegger 2018

Model-based diagnosis derives explanations for discrepancies between the expected and observed system behavior by relying on a formal representation of the artifact under consideration. Although its theoretical background has been established decades ago and various research prototypes have been implemented, industrial applications are sparse. The thesis emphasizes the role of essential technology acceptance factors, i.e., usefulness and usability, within the context of model-based diagnosis. In particular, we develop a concept and interface design for an abductive model-based diagnosis application integrated into existing condition monitoring software for industrial wind turbines. This fault identification tool should enhance the performance of the maintenance personnel while respecting their current work processes, taking into account their particular needs, and being easy to use under the given work conditions. By employing an iterative design process, continuous feedback in regard to the users’ work goals, tasks, and patterns can be included, while also considering other stakeholders’ requirements. The result is a workflow and interface design proposal to be implemented in the final software product.