Teaching is about passion.

In my opinion teaching is a lot about passion. My teaching statement is here.


  1. Teaching portfolio
  2. Teaching record

Teaching portfolio

Here are the courses I can offer to teach. Courses with a (*) I can also teach as a hands-on or intensive courses with a duration from one day to a week long. If you are interested in these hands-on courses, feel free to invite me (contact). I like to travel and exploring new cultures. The courses with a (+) I can hold with no or only a little preparation. I try to decrease the amount of classic lecture style classes in my courses to a minimum in favor of active learning methods. Expect a lot of hands on, interaction, and computer usage work in my classes.

  • Mobile Computing
    • Foundations of Mobile and Ubiquitous Computing (+)
    • Mobile Computing projects (+)
    • Mobile Computing - getting started (hello world goes mobile) (*)(+)
    • How to integrate mobile applications into the cloud (+)
    • Building huge mobile systems (+)
    • Mobile game development (+)
  • Software Engineering
    • Methological Programming (+)
    • Programmign in a Team (*) (+)
    • Modeling (*) (+)
    • Visual Programming (*) (+)
    • MDE (*) (+)
    • Agile Software Development (*) (+)
    • Software architecture (+)
    • Web- and cloudservices
  • Systems
    • Computer Systems and Architecture (+)
    • Operating Systems (+)
    • Basics (Filesystems, Threading, Locking) (+)
    • Unix and Linux systems and their friendly co-existence with Windows, Mac OSX - don't fear the command line (+)
    • Virtualization or the beauty of virtual machines (*) (+)
    • Systems Administration (+)
  • Distributed Computing
    • Introduction to Grid Computing (+)
    • Hands on courses for classic or Desktop grids (*) (+)
  • P2P networks
    • distributed storage
    • distributed computing
    • security and privacy in
  • Programming (introduction and advanced)
    • Fundamentals of Programming (+)
    • in Python (preferred for introduction) (+)
      • This can be also done as game design courses, using python-game and panda3d.
    • in Java (+)
    • in C/C++ (+)
    • visually (with UML and Story diagrams) (*) (+)
      • Also here can shift the focus on game design
  • Academic writing and presenting
    • How to do an interesting academic presentation (*)
    • Introduction to LaTeX and LyX - how to write a pretty and coreectly formatted and layouted academic document (*)
  • Seminars and lab courses in the areas of
    • Distributed Systems
    • Software Engineering
    • Academic writing and presenting in computer science

I would be also interested in teaching the following:

  • Game and simulation design (not only for Computer Science, I have background for developing games for the Estonian society: see algs)
  • Database design
  • Online collaboration and learning (content management, wikis, moodle and friends)

I have a long record in supervising students (see advising). If you are a student and need help with your work or have a good idea for a thesis in my research areas or projects, do not hesitate to contact me.

Teaching record


Here are the courses, I am currently teaching or have taught in the past:

2015 spring/summer term

  • Home and Building Automation
  • Algorithms and Data Structures

2014 fall/winter term

I am now teaching at University of Applied Sciences Upper Austria.

  • Home and Building Automation
  • Computer and Operating Systems

2014 spring term

  • Foundations of Mobile and Ubiquitous Computing
  • Operating Systems

2013 fall term

  • Software Engineering - Methological Programming and Software Development in a Team
  • Computer Systems and Organization

2013 spring term

  • Fundamentals of Programming
  • Operating Systems

2012 fall term

I am now teaching at Nazarbayev University in Astana, Kazakhstan.

In this term I teach two courses:

  • Web Programming and Problem Solving
  • Computer Systems and Organization

My office hours are Tuesday 13:00-15:00 and Wednesday 9:00-11:00.

2012 spring term

Same as 2011 fall term. I assisted in planning and setting up the new Systems Adminstration course, mainly in shifting to a virtual machines-based lab. I am advising several students in their way to their bachelor and master thesis. I am looking forward to graduating my first doctor this year.

2011 fall term

I am out for a research year where I am doing a lot of traveling between the US and Switzerland. I assisted a lot in setting up the new Systems Modeling course (making a good part of the course based on our modeling book) and doing some supervision in the distributed systems seminar. Of course I am still advising and supervising students in their theses.

2011 spring term

2010 fall term

  • Lecture: Systems Modeling: MTAT.03.083 (6CP)
  • Seminars: Distributed Systems seminar (2, 4, or 6CP)

2010 spring term

  • Seminars: Distributed Systems seminar (2, 4, or 6CP)

2009 fall term

2009 spring term

  • Lecture: Systems Modeling: MTAT.03.083 (4AP,6CP)
  • Seminar: Distributed Systems seminar (2AP,3CP)

2008 fall term

2008 spring term

2007 fall term

2007 spring term

2006/2007 winter semester

2004/2005 winter semester

  • Lecture: Introduction to Computer Science, Programming in Modula 3
  • Seminar: Component Based Embedded Systems: Design, Configuration, and Deployment

2004 summer semester

  • Lab course: Tool Support for the eHome Process

2003/2004 winter semester

  • Lecture: Introduction to Computer Science, Programming in Modula 3
  • Lab course: Tool support for the Specification of eHome Services

2003 summer semester

  • Lab course: Ubiquitous Computing in eHomes

2002/2003 winter semester

  • Lecture: Introduction to Computer Science, Programming in Modula 3
  • Seminar: Ubiquitous Computing

2002 summer semester

  • Seminar: Noblesse Oblige: XML-Schema and other Graph Types - Applications and Extensions of the Graph Rewriting Language PROGRES