Computational Reflection and Context-Oriented Programming

3–9 July 2012
Milan, Italy

Welcome to the website of the course on Computational Reflection and Context-Oriented Programming. All material related to the course will be available here as the course progresses.


  1. Course Introduction
  2. Introduction to Smalltalk
  3. Principles of Reflection *
  4. Reflection in Smalltalk
  5. Context-Oriented Programming

* optional homework


  1. Introduction to Smalltalk
  2. Reflection in Smalltalk
  3. Applications of Reflection: Object Proxies *
  4. Context-Oriented Programming
    1. Infrastructure
    2. Adaptation
    3. Composition
    4. Resolution

* optional homework


The following tasks are required from those willing to receive PhD course credits:

  1. Finish the remaining context-oriented programming practical guides listed above. Upon completion you will have a minimal but functional COP framework, which should pass all furnished unit tests (besides other tests you might have added on your own).
  2. Extend the COP framework by picking one of the proposed extensions. Your extension should include sufficient testing code to show that it complies with your design.
  3. Write a succinct report describing your framework extension (i.e. all you want to communicate that cannot be easily observed from your commented code).

Your Smalltalk code should be furnished as one or more Monticello packages, just like the exercise and answer code from the practical sections. For information on Monticello, please consult Pharo by Example.

Before submitting, please make sure that your code loads and runs correctly under our testing environment.

All files should be packaged as a compressed archive and sent by e-mail to Kim Mens and Sebastián González before 10 September 2012.

If you need help or have questions concerning the assignment, please do not hesitate to ask.