Pedagogical Pattern #7
Incremental Role Play

originally submitted by:
Jutta Eckstein
Objects in Action, Germany
Thierschstr. 20
80538 Munich
Germany
jeckstein@acm.org

Tell me and I'll forget;
show me and I may remember;
involve me and I'll understand.
(Chinese Proverb)

NAME:

Incremental Role Play

THUMBNAIL:

The complexity of object-oriented architectures is hard to understand with abstract explanations; therefore ask the students to behave as objects of the design and develop the design in several iterations.

INTENT:

How do you teach complex object-oriented architecture without loosing your students ?

INDICATIONS:

The students already have an understanding of the object-oriented basics, such as sending and receiving messages. The students have to get familiar with a fairly complex architecture, like a framework.

CONTRAINDICATIONS:

FORCES:

It's much easier for the students to understand a complex architecture when they understand the purpose of the concept; however, we often teach solutions for problems the students never had.

Students understand complex concepts easier if you simplify them, but you cannot simplify some architectures without loosing the idea.

You'd like to provide a positive learning environment, but the difficulties in understanding complex concepts may frustrate the students.

Students understand new material better if they're involved because telling and showing is not the same as involving.

Students often only believe in a technology when they have used it themselves, but it is time consuming to lead them through a whole project.

Students can memorize new stuff better, if you repeat it several times, but it takes time to say the same things over and over again.

SOLUTION:

Invite your students to behave as the objects in a role play. Start with a simplified version of the concept and add further aspects as problems show up.

Structure

The underlying concept of the pattern is its incremental structure. The architectures are getting more and more complicated over time. The pattern starts introducing a simple architecture, explains a more complex architecture in the next increment and concludes with teaching a large really complicated architecture. The problems discovered in the Discussion phase give raise to the next iteration. It helps if you find several small and medium-sized frameworks from which to teach, so the students are getting a good understanding about layering of architectures.

STRUCTURE:

SAMPLE SETTING:

DISCUSSION:

This pattern shows students why somebody has introduced a particular software concept. Understanding the purpose of the concept motivates the students to know more about how this specific problem is solved. This leads to a positive learning environment, which is the best learning motivation you can get: enthusiasm.

The discussion phase should lead incrementally into the next problem statement, so it's easy to introduce the next, more complex concept. For the students it's easier to grasp the complex structure, not only because the simpler framework is often repeated by the more complex one. This way the knowledge is strengthened by repetition.

The students will obtain a better understanding of complex software concepts by giving them the chance to behave as the objects being involved in a role play. Teaching is certainly only successful if the new way of thinking is trained and exercised by active learning.

EXPERIENCES:

You have to control the discussion so it leads to the next problem statement. For instance , go from MVC - ValueModel - AspectAdaptor to AspectAdaptor with subjectChannels.

I made good experiences with clarifying the problem domain, so that every student can identify the problem from his/her own experience. Do not try to discuss different solutions, since the goal is to introduce a specific concept like MVC and not what else could have been developed. On the other hand, the students will get frustrated very soon if they see that their solution is not of much interest.

The lecture or theory itself should be as short as possible so you can start the role play as soon as possible.

Ensure that the students change the roles in every increment.

Play the game as close to reality as possible. Omit material which has already been clarified and therefore just prolongs the play. For example, explaining method lookup is not necessary. Don't be afraid of playing the game. My experience is that, especially in industry, the students are happy if they get a less abstract explanation, even in a "real serious" environment like a bank.

Make sure the lab leads step by step from more basic things in the concept to the more complex ones.

CULTURAL DEPENDENCIES:

In the audience are handicapped people, who are unable to participate in an active role play as described in the sample setting.

RESOURCES NEEDED:

Depending on the audience size and on your setting - several softballs and a white board.

EXAMPLE INSTANCES OF THIS PATTERN:

I have used this pattern to teach various aspects of Visual Works, such as MVC, ValueModels, ApectsAdaptors, and SubjectChannels. To teach the SubjectChannels I found it useful to simplify the architecture and use one student as the widget, one as the AspectAdaptor, and one as the model. But the model sits on a subjectChannel, here on a chair. In this way I can change the model by placing a different student on the chair.

I have also trained other trainers to use the pattern and some have incorporated it into their repertoire. Joachim Schrader from BERATA GmbH for instance has used this pattern in the same context as described above.

Richard Steiger from Ensemble Soft teaches the Java Foundation Classes with this pattern. There he teaches how to build complex GUI applications with the help of a framework, called UIF - User Interaction Framework. He explains the architecture of the application by incrementally adding more and more features, picking a problem to solve at each stage.

Paul Dyson from Cumulus Systems Ltd. has used this pattern to teach the final-year Software Engineering course in the Electronic Systems Engineering degree at the University of Essex. He specifically used role play to describe the interactions of an MVC framework implemented in C++. What made it iterative was that they did one role-playing session before the students started on the project and one after it where they would demonstrate the interactions of their specific instantiation of the framework.

RELATED PATTERNS

Physical Analogy Pattern from Phil Mc Laughlin is the basis of Incremental Role Play. The focus of this pattern is: Students new to Object Technology are frequently told about modeling objects in the 'real world'. Physical analogy helps to demonstrate key concepts and presents another metaphor to students as a mental cross reference for the topic. The students themselves form the analogies to the objects, so the experience is even better memorable. On the other hand, unlike Incremental Role Play, Physical Analogy is not restricted to a certain audience size.

Concrete to Abstraction Pattern, submitted by Ian Chai, may help you to find a path for your increments. This pattern has the focus on keeping students' interest when introducing them to their first patterns (or other abstractions.) It starts with an example to which the students can relate. After the students were taken through the example, you can point out the aspects which can be applied in other instances, like general principles in the pattern. And then finally end up with describing the general pattern itself.

You may want to combine this pattern with Three Bears Pattern, from Kent Beck, to help the students to accept failure as a natural part of the design process. This pattern removes the 'fear of failure' as a barrier to learning by making failure part of the goal.

The Role Playing Pattern, submitted by David Bellin, introduces a key technique used in CRC Card Analysis, after a team brainstorms and creates a list of candidate classes. This pattern is used in the Incremental Role Play in a different context.


Home Project
Leaders
Pedagogical Pattern
Format
Evolution of a
pedagogical pattern
Sample
Patterns
Publications
Subject
Index
Learning Obj.
Index
Teaching/Learning
Element Index
Alphabetical
Index
Author(s)
Index
Contact
Us
Previous pattern Search This Site Next pattern