Teaching
Current courses
-
Microcontroller
Salzburg University of Applied Sciences, ITS -
Numerical Programming and Industrial Algorithms
Salzburg University of Applied Sciences, ITS -
Selected Algorithms & Optimization
Salzburg University of Applied Sciences, ITS
Lecture notes
-
Industrial Algorithms and Numerical Programming (FHS, ITS)
[lecture notes winter 2023] -
Microcontroller (FHS, ITS)
[lecture material summer 2024]
Microcontroller basics • technology trade-offs • basic CPU architecture • von Neumann vs. Harvard • instruction set • RICS vs. CISC • programs & life cycle • instruction decoding • digital I/O (ports, pull-up, read-modify-write) • platform-independent C data types • hardware abstraction (HAL, WiringPi, Linux kernel map) • stack (stack pointer, frame, function calls) • interrupts (interrupt control, ISR design aspects, life cycle) • external interrupts • UART (blocking vs. non-blocking) • counter & timer • input capture • output capture • PWM generation • SPI • Analog I/O • Raspbery Pi architecture • memory mapping & address spaces • GPIO register handling • memory (types, technology, access times) • caching hierarchy • addressing mode • endianess • real-time basics (deadline, temporal determinism, rare events, types, WCET) • distributed real-time systems • real-time scheduling (basics, EDF & LL, schedulability, Dhall’s effect) • real-time Linux • co-kernel & PREEMPT_RT • scheduling classes • programming with SCHED_DEADLINE • EDF + CBS • tools for real-time • dependent tasks & priority inversion -
Network-oriented Software Engineering (FHS, ITS/WIN)
[lecture slides summer 2023]
Java basics (data types, operators, strings, arrays, variables, control flow, OOP, packages, polymorphism & dynamic binding, abstract classes and interfaces, cloning) • Exception handling • processes & threads • concurrency & parallelism • synchronization • Java I/O • non-blocking I/O • socket programming • concurrency models for client-server architectures (fork on request, preforking, event-driven architecture) • Java reflection • distributed system basics • middleware & transparencies • RPC & marshalling • object-based architectures (distributed objects, RMI) • service-oriented architectures • W3C web services • resource-based architectures (REST, Spring Boot) -
Distributed Software Architectures (FHS, MMT)
[lecture slides 2019]
Concurrent & network programming • client-server architectures (concurrency models, event-driven architecture, NGINX case study) • object-based architectures (distribution transparencies, middleware, RPC, distributed objects, Ice) • service-oriented and resource-based architectures (SOA, W3C, SOAP, WSDL, REST) • message-oriented communication (process coupling, pubsub, zeromq, persistent messaging, AMQP) • queuing theory (M/M/1 queue, Kendall’s notation, Little’s law, Markov chains) -
Datastructures and Algorithms (FHS, MMT)
[lecture slides 2012]
Part 1 (C++): const, copy & assignment ctor • inheritence and composition, exception and assert • polymorphism, RTTI, OOP concepts • overloading, static members • templates. Part 2 (Algorithms and data structures): linked lists, nested classes • stacks and queues • trees, recursion, traversals • time complexity and algorithm techniques (divide and conquer, dynamic programming, knapsack) • sorting (selection sort, insertion sort, worst-case bound, merge sort, in-place, heap sort, quicksort, partial and total orders, stability) • hash tables • STL • graphs (definitions, trees, adjacency matrix/lists, DFS, BFS, cycle detection, Euler walks, Hamiltonian cycles, TSP, MST, Prim, Kruskal, shortest path, Dijkstra, colored graphs, further outlook)
Timeline
The following table contains an overview of courses I gave at different universities and for different study programs (curricula), see also the legend1:
Univ. | PLUS | PLUS | PLUS | PLUS | PLUS | PLUS | FHS | FHS | FHS | FHS | FHS | FHS | FHS | UP |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Curr. | CS | CS | Ing | Ing | Math | Math | MMT | MMT | ITS | ITS | ITS | ITS | ITS | CS |
Course | Einf. UNIX | Disk. Math. | Math I | Math II | Disk. Math | Lin. Alg. II | Dat. & Alg. | Distr. SW Arch. | Microcont. | Ind. Alg. | Net. SW. | DSP 2. | SAO | Distr. Sys. |
2008 | ⚫ | |||||||||||||
2009 | ⚫ | ⚫ | ||||||||||||
2010 | ⚫ | ⚫ | ||||||||||||
2011 | ⚫ | ⚫ | ||||||||||||
2012 | ⚫ | ⚫ | ⚫ | |||||||||||
2015 | ⚫ | |||||||||||||
2016 | ⚫ | |||||||||||||
2019 | ⚫ | ⚫ | ⚫ | |||||||||||
2020 | ⚫ | ⚫ | ⚫ | ⚫ | ||||||||||
2021 | ⚫ | ⚫ | ⚫ | ⚫ | ||||||||||
2022 | ⚫ | ⚫ | ⚫ | ⚫ | ||||||||||
2023 | ⚫ | ⚫ | ⚫ | |||||||||||
2024 | ⚫ | ⚫ | ⚫ |
Past courses
What follows are some details on past courses that I do not give in a foreseeable future.
-
IVL Distributed Software Architectures
Salzburg University of Applied Sciences, MMT
Summer 2019
[info] -
UE Diskrete Mathematik für Informatik
University of Salzburg, Computer Science
Summer 2009, summer 2015, summer 2016
[info] -
IVL Datenstrukturen und Algorithmen
Salzburg University of Applied Sciences, MMT
Summer 2011, summer 2012
[info] [info] -
UE Mathematik II für Ingenieurwissenschaften
University of Salzburg, Engineering Sciences
Summer 2010, Summer 2012
[info] -
UE Lineare Algebra II und Geometrie
University of Salzburg, Mathematics
Summer 2012
[info] -
UE Mathematik I für Ingenieurwissenschaften
University of Salzburg, Engineering Sciences
Winter 2011
[info] -
UE Diskrete Mathematik
University of Salzburg, Mathematics
Winter 2010 -
VP Einführung UNIX
University of Salzburg, Computer Science
Winter 2008, winter 2010
[info]
-
UP: University of Passau, PLUS: University of Salzburg, FHS: Salzburg University of Applied Sciences, CS: Computer Science/Informatik, Ing: Engineering Sciences/Ingenieurswissenschaften, M: Mathematics, MMT: MultiMediaTechnology, ITS: Information Technology and System Management, IVL: Integrierte Lehrveranstaltung (Lecture and lab combined), UE: Übung (lab), VL: Vorlesung (lecture), VP: Vorlesung mit Proseminar (lecture and lab combined), LB: Labor (lab) ↩