- Compilers, EDAN65. This course makes use of reference attribute grammars.
- Project in computer science, EDAN70. Compiler projects.
- Compiler Construction, EDA180. This course makes use of aspect-oriented programming to simplify compiler construction.
- Software Development in Teams, EDA260. This course makes use of agile methodology, with a focus on extreme programming.
- Coaching of programming teams, EDA270. Students in this course coach teams from the EDA260 course.
I have given the following PhD courses on an irregular basis:
- Advanced concurrent programming in Java
- Pervasive Systems
- Advanced Software Patterns
- Incremental semantic analysis
- Object-oriented programming in BETA
- Patterns and Frameworks in Object-Oriented Programming
- Advanced concepts in object-oriented programming
- Attribute Grammars
- Extreme Programming and Coaching