Teaching

Courses

Distributed and Mobile Programming Paradigms (DMPP). Master in Computer Science, 6 ECTS credits, Fall. This course exposes students to the latest research ideas in the field of distributed and mobile programming abstractions covering topics like event-based programming, tuple-based coordination, P2P systems, and replication and consistency. For further info available here. See demos of sample projects built by past students at the course Youtube playlist.

Meta Programming and Reflection (META). Master in Computer Science, 6 ECTS credits, Spring. This course introduces the different principles and techniques of meta-programming (i.e. programs that manipulate programs). Students are exposed to a number of compile-time and run-time techniques. In particular, the course discusses the programming model and meta facilities of two seminal languages in the domain, Smalltalk and Lisp, and it discusses mainstream forms of meta-programming like AOSD. Further info available here.

Structuur Van Computerprogramma’s II (Struct2). Bachelor in Computer Science, 6 ECTS credits, Fall. This course confronts the student with modern, low-level programming languages that are used in practice (in casu C and its descendants) and demonstrates how and to what extent the concepts and techniques introduced in an introductory programming course such as “Structure of Computer Programs I ” exist in or can be transposed to such a language. In addition, students are introduced to concepts that are unique to low-level languages (e.g., manual memory management and pointers). Further info available here.

Parallelism and Distribution (P&D). Bachelor in Computer Science, 6 ECTS credits, Spring. This course is a general introduction to parallel and distributed programming. By the end of the course students will master fundamental concepts in parallelism and distribution, be able to reason about correctness, performance and construction of parallel programs using different mechanisms ( e.g. threads, locks, tasks), and are also able to construct distributed programs using different communication paradigms (e.g. RMI, tuple spaces, pub/sub). Further info available here.

Master Theses (under construction)