senior lecturer at Department of Information Technology, Division of Computing Science
I teach programming and theory of programming language. I am also a pedagogical mentor.
My research interest is within application of logic to computer science -- particularly the use of formal methods for software development.
Also available at
I am a pedagogical mentor, that is a member of the university Collegium of Mentors. I teach Computing Science on both basic and advanced levels. The forms of teaching I use the most are projects, seminars, labs and lectures. I also review undergraduate theses.
I am a pedagogical mentor because I feel that teaching -- meeting the students -- is enjoyable and discussing teaching with colleagues is almost even more fun.
Courses I teach or have previously taught:
Basic Programming with Didactic Specialisation for Teachers
Provably Correct Software
Program Design (Program Methodology 1)
Program Design and Data Structures
Programming Methodology 2
Software Engineering Project
Semantics of Programming Languages
Refer to a separate section for information about my current courses.
Refer to a separate section for information about my research.
Before I had my position at Uppsala University, I worked eight years as a consultant and still do occasional consultancy projects. I have primarily worket with risk analysis and applications of formal methods to railway signalling. I have semiprofessional competence within all aspects of of railway signalling. Among other things I have worked with a project within the Swedish Transport Administration about risk analysis for the implementation of ETCS/ERTMS in Sweden.
In my spare time I design, build and maintain relay-based signalling systems for the preserved railroad Uppsala-Lenna Järnväg. I am also a traffic controller for that railway.
I have a Private Pilot License with Instrument Rating (PPL/IR). My total flight time is about 800 hours. I am also the chairman of the flying club in Uppsala, Motorflygarna Uppsala Flygklubb.
My research interests include the use of logic in Computer Science. I have worked with theory and implementation of Logic Programming, Interactive Theorem Proving, Logical Frameworks and Formal Methods (Specification, Verification and Synthesis). I have also done work on methodology for the application of Formal Methods.
I belong to the Concurrency research group and work with formalising proofs within concurrency theory.
Please contact the directory administrator for the organization (department or similar) to correct possible errors in the information.