Introduction to Aspect Oriented Programming

An intensive graduate course in week 39 of 2003.

What's it about?

Aspect Oriented Programming (AOP) is a new programming paradigm which aims to capture cross-cutting concerns in large programs in a cleanly localised way. We call some concern cross-cutting, if it has to be implemented in such a way that many of the hierarchical components of a piece of software are affected. Examples are logging and tracing for debugging purposes, resource pooling, managing thread safety, etc. Crosscutting concerns are typically hard to understand, debug and modify.

AspectJ is an aspect oriented extension of the Java programming language, originally developed at Xerox PARC, and now maintained by the Eclipse project.

In this course, we will look at the ideas and terminology of AOP. We will try out these ideas in practice, using the AspectJ language. We will also try to form our own opinion on the pros and cons of this new technology.


A solid working knowledge of the Java programming language. I have to require this, as we will be talking about AspectJ a lot, and that builds on Java.


The course will take place in week 39, that is 22nd - 26th September, 2003.

There will be a lecture from 10:00 to 11:30 every morning. You will then have the afternoon for exercises. We meet again from 16:00 to 17:30 to discuss the exercises.

We will meet in S2, except for Tuesday 23rd, when we will be in room G10.

Lecture Slides and Exercises

Monday Lecture: Motivation and Introduction

Monday Exercises

Tuesday Lecture: Quick Tour and AspectJ basics

Tuesday Exercises

Wednesday Lecture: Advanced AspectJ

Wednesday Exercises

Thursday Lecture: AspectJ Idioms and Patterns

Thursday Exercises

Friday Lecture: Pros and Cons

Martin Giese
Last modified: Thu Oct 2 10:08:27 MET DST 2003