Short Exercise Outline

These exercises have 4 steps:
  • Doing/Concrete Experience
  • Sensing(Observing)/Reflective Observation
  • Thinking/Abstract Conceptualization
  • Addressing(Planning)/Active Experimentation
For an example of this same information in the layout, click here.

Doing/Concrete Experience

First I'll present all the information necessary to make some assessment. In many cases this will involve showing code snippets and the actual output. After spending some time with the experience. We'll move on to the second stage.

Sensing(Observing)/Reflective Observation

Second, I'll ask the person to "take a step back" and make some observations about their recent experience:
  • What is happening?
  • How is this different from your previous experience?
  • What were your expectations?
  • What in the code do you think is driving the effect?
  • How do you think this is accomplished?

Thinking/Abstract Conceptualization

Third, I'll ask the person to attempt to generalize from their experience:
  • Describe in a general way what is happening.
  • Relate this "what" back to some example other than the one provided.
  • Describe other ways in which you might use this kind of example.
  • Contrast this with some of the other experiences you've already had in the subject area.
  • How might you mix this idea with others you've already seen?


While not part of the learning cycle per-se, I'm adding this step for three reasons:
  • Some people will want to see a summary and explanation so I'm attempting to more direclty address some learning styles/preferences.
  • This is a place to put additoinal notes that might not have been discussed in the group.
  • If you are working on your own, it would be handy to have this information.

Addressing(Planning)/Active Experimentation

Finally, I'll provide a list of exercises to:
  1. Try and reinforce the idea
  2. Expand what the original exercise was doing
  3. Attempt to find some limits to the technique

This form is meant to be a condensed form of the one used on examples like AspectJ Example 1.