we successfully apply an experience-based teaching approach in our
object-oriented design courses. This approach actively involves the
students, who collaborate in, both, the comprehension and development
of designs. CRC cards and role-play sessions, frequently used in
software design processes in industry, are the active learning
techniques that support our teaching approach. CRC cards help to
discuss and evaluate an object-oriented design collaboratively. CRC
cards help to discuss and evaluate an object-oriented design
CRC cards help to discuss and evaluate an object-oriented design
collaboratively. After creating the responsibilities of each class
solely, designers can evaluate how classes interact simulating the
execution of a use case. This simulation forces participants to reason
about the proposed design solution and to verify if they can reach a
better one. Role-play activities are employed to simulate the scenarios
using CRC cards. During the role play, participants interact among
them, learning from themselves, the other participants and the played
The practical sessions in our courses follow the
- Selection of the design scenario. The
instructor selects an appropriate scenario among the design scenarios
used in the course. A design scenario consists of a case study (the
design problem), an initial (and maybe incomplete) solution, and a set
of use cases that will be used during the simulation in order to
understand the proposed solution.
- Role assignment. Each design scenario has a set
of roles (objects) that should be played by the students during the
role-play simulation. The instructor binds each student to a specific
role and provides her with the corresponding CRC card.
- Cycle simulation-modification. The instructor
starts the simulation related to a use case by sending the first
message to the appropriate object (student). The rest of the simulation
is “student-directed”: students are responsible for modifying CRC
cards, when necessary, and they decide when the simulation finishes.
There are different types of changes, from the addition, removal or
modification of responsibilities in a class, to the application of a
design pattern and the consequent restructuring of a set of classes.
After a change in CRC cards the simulation could continue. When this
changes affect past simulation steps, the instructor resumes the
simulation. During the simulation, the instructor can help the students
when a deadlock happens. Students can also communicate among them in
order to know about their responsibilities. The instructor registers
the simulation by constructing a Role-Play Diagram (RPD). A RPD is a
semi-formal representation of a scenario execution in an
object-oriented application that capture objects’ state. The ability of
tracking each object state is essential in our approach because we need
to represent the initial attribute values and how they change along the
role-play simulation. So, in our approach, RPDs are a more useful
representation tool than UML sequence and collaboration diagrams.
- Evaluation. After finishing the simulations of
all the use cases in a scenario, the instructor evaluates the resulting
design. If the design is appropriate, the practical session finishes.
Otherwise, the instructor discusses with the students the pitfalls
found in the resulting design and analyses possible improvements. In
this case, the practical session goes back to step 3.
you can read more about a sample session using this approach to teach
the Prototype Pattern.
good results obtained during the empirical evaluation of this active
learning approach have motivated us to transfer our teaching
methodology to virtual environments. Using our previous experience
developing game-based learning environments and taking ingredients from
the interface and gameplay of first-person shooters and sport games, we
have designed a role-play virtual environment (RPVE) that intends to
maintain, and even reinforce, the benefits of role-play in the
classroom. We developed ViRPlay3D,
a RPVE to understand object-oriented software behavior.
Once we completed a prototype of ViRPlay3D we have
evaluated the use of the environment with students. In november 2008 we
have performed an experience using ViRPlay3D in classrooms to teach
basic concepts from object-oriented programming. The evaluation results
are presented in this technical report (in Spanish).
Jiménez Díaz, Mercedes
Gómez Albarrán y Pedro A.