I am currently, or was previously, an assistant for the following courses at the VUB university:
- Principles of Object-Oriented Languages (assistant in all academic years since 2001) introduces the historical backgrounds of object-oriented programming, covers several variations of object-oriented programming models by explaining the construction of interpreters for them and touches upon some concepts beyond OOP as well. In the recitation sessions I teach the students the Smalltalk language and environment, all the way from basic object and class manipulation to full meta-programming. In the course, they are also shown a model of how Smalltalk works, implemented in Scheme using macro's; the final sessions in the recitations deal with extending this model with multiple inheritance.
- Software Project (2006-2007) is a mandatory project course for second year students, in which they have to analyse, design and implement a small software system in the Scheme programming language. For the 2006-2007 year project, I was responsible for this course together with Steven Claes and Coen De Roover. We chose an "intelligent library" as the target system. Students were expected to deliver a digital library system, allowing users to import documents and tagging them with metadata while the system should also offer intelligent search and organising techniques based on clustering algorithms.
- Research Topics in Aspect-Oriented Software Development (2005-2006) is not a course I was an assistent for, but the course gives students a rapid overview of AOSD research by letting several VUB researchers in the field give a lecture on their research topic. In the 2005-2006 year I gave a lecture on my research into logic-based pointcut languages.
- Algorithms and Data Structures 2 (2003-2004) is a second-year course on algorithms and data structures for memory management and disk-based data storage and retrieval. The course builds on the students' knowledge of their first-year algorithms and data structures course, but deepens their algorithm analysis skills by focussing on a few specific algorithms that are more complex than what they've seen in the first year.
- Techniques of Software Architecture (2001-2002, and 2002-2003) was a course which picked up where Principles of Object-Oriented Programming left off. Despite the name, the course had evolved to be about more than just software architecture, the general theme was "software engineering which goes beyond mere Object-Oriented Programming". In the recitations I got the students to explore a variety of topics through a variety of means: in the 2002-2003 year we did hands-on exercises of aspect-oriented programming with AspectJ and SUnit testing, reading and writing exercises involving conference papers on refactoring and group discussions on software architecture. The course has now further evolved and as such had its title changed to "Aspect-Oriented Software Development".
Another educational task I'm involved in is guiding students through their "apprenticeship" and the writing of a bachelor's or master's thesis dissertation. A list of theses I was an advisor for in previous years is on my research page.
Students may also be interested in my thesis advice text (in dutch).
I have also been involved in courses PROG organized for industry through the DISC network, which was a network of academic and research institutions in Brussels:
- Introduction to Object-Oriented Programming (March 29th, 2004) was a one-day course targeted at industry programmers who were still developing in older languages such as COBOL and would need to migrate to object-oriented development. The course focused on what they can and cannot expect from object-oriented programming, what the most important concepts in the object-oriented paradigm are and how these can help solve maintenance problems often observed in legacy systems.