GAIA - Group for Artificial Intelligence Applications


ViRPlay3D: The evolution of a Virtual Environment Based on Active
Learning to teach Object-Oriented Design Concepts

Foundations
Foundations
RP in class
Role Play in Classrooms
VRP1
ViRPlay3D
Virplay3D2
VirPlay3D2
VRP in class
ViRPlay3D2 in classrooms
VRP Multiplayer
VirPlay3D2 Multiplayer
Foundations Foundations

Our experience teaching courses on object-oriented design, in general, and object-oriented design patterns, in particular, for several years shows that a teaching style based only on lecturing does not fit every type of student. Additionally, the guidelines of the Bologna Declaration on the European Space for Higher Education propose a pedagogical shift from “instructor-focused” teaching to “student-focused” learning, where the learner becomes an active part of the learning process. Active learning approaches are also validated through studies that show how experiential learning increases the student comprehension of the taught subject.

Role play is a kind of active learning where participants learn complex concepts –hard to understand by means of abstract explanations– while they simulate a scenario. In this scenario each participant plays a predefined role. When applied to the object-oriented design field, each actor in the role-play session plays the role of an object. The participants enact how a software application works in a hypothetical but concrete situation of system usage, i.e. an execution scenario. 

When employing the role-play sessions in object-oriented design, the roles are commonly represented by CRC cards, a technique widely used in responsibility-driven design. A CRC card represents a Class and it contains information about the class Responsibilities and Collaborators. CRC cards provide a valuable support for discussing and evaluating an object-oriented design in a collaborative way. After creating the responsibilities of each class solely, designers can make use of the corresponding CRC cards when simulating how classes interact to achieve a certain functional requirement.

It is worth highlighting the existence of several proposals about the use of role-play in object-oriented teaching. These works describe the use of role-play sessions to teach about object-oriented basic aspects: what an object is and how it interacts with other objects in order to complete a responsibility. They propose the use of case studies –complete software applications that include
information about their development and questions to engage students to analyze, judge and evaluate their design– as the foundations of the different role-play sessions. We consider that the main drawback of these proposals is the lack of students’ freedom to choose the message passed to another student during the role-play sessions. We believe in the importance of giving the student the opportunity to reflect on the different alternatives, select the next message passing and even make mistakes during the role-play simulations.

Nowadays, 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 collaboratively.
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 roles.

We think that role-play can be seen as a simulation game where the students perform a play based on the execution of a software application. The use of computers games to teach can also be traced back to the first applications of computers in education, and a number of systems have been developed under the generic label of edutainment applications, trying to entertain and educate at the same time.

These two ideas –the role-play as a simulation game and the use of edutainment applications to teach– motivated us to develop ViRPlay3D2, a role-play virtual environment that translates the activities in the real world role-play sessions into actions in a 3D virtual world where objects are represented through avatars controlled by the players. The transfer of the role-play activities into ViRPlay3D2 has been conceived as a methodical development process that not only includes implementation but also formative and summative evaluations in order to verify the progress of the pedagogical tool developed.

Role Play in Classrooms RP in class
Instead of accepting the thesis about the usefulness of role-play sessions in object-oriented teaching described in the literature, we wanted to go one step beyond. Instead of using them for teaching basic object-oriented concepts, we proposed their application for learning more advanced concepts of object-oriented design, like the use of design patterns. Following the ideas of learning-by-doing
approaches and object-oriented role-play sessions, our proposal helps students not only to gain insight into the how and the why of design patterns, but, what is more important, it helps students to learn to apply them. Following the axiom "Good design comes from experience, and experience comes from bad design", our students learn to use the GoF design patterns by means of a collaborative design experience, identifying pitfalls in existing designs, analysing the potential alternatives and their advantages and drawbacks, and achieving a better solution by means of a pattern-directed refactoring. One of the innovations of the approach is promoting active learning and student participation during the analysis and comprehension of alternative designs through role-play sessions: each student performs the role of an object within the case study in order to better understand the collaborations among the objects by simulating the execution of a use case.

We applied this teaching approach in Spring and Fall 2006 in two editions of a 25-hour seminar on Design Patterns. From the research point of view, on the one hand, we employed these experiences to collect the students’ opinion about using role-play sessions in the classroom and the different tools employed, such as the CRC cards and the RPDs. On the other hand, we developed an experiment with the aim of estimating the pedagogical efficiency of our approach and the importance of participating in the role-play sessions instead of observing them. More information about the sessions and all the material employed are available here (in Spanish). Specific figures and results from the evaluation are described in the paper G. Jiménez-Díaz, M. Gómez-Albarrán, and P. A. González-Calero, "Teaching GoF Design Patterns through Refactoring and Role-Play," International Journal of Engineering Education, vol. 24, iss. 4, pp. 717–728, 2008.
ViRPlay3D VRP1
In view of the promising results obtained in the classrooms we started the development of a Role-Play Virtual Environment (RPVE), a virtual environment rich in design information where students mimic the interactions produced in a role-play session in order to simulate an execution scenario from a case study. ViRPlay3D is a single-user environment where a user visualizes the message passing among objects in order to understand the objects’ behavior in a case study. The user is represented in the RPVE by an avatar that wanders around the virtual world interacting with other entities in order to achieve information about the classes, objects and messages passed. Additionally, the user controls the simulation execution and she can test her understanding about the simulation configuring the next message passing and asking for its execution.
VirPlay3D defines our first attempt in order to give a visual metaphor to the abstract concepts defined in the object-oriented paradigm. The representation of objects and message passing was solved in an easy way, using the same metaphors employed in the real world role-play sessions: the objects that intervene in the role-play session are represented by anthropomorphical 3D models and the message passing is represented by throwing a ball. Additionally, the man who holds theball in the RPVE represents the current active object in the role-play simulation. We decided to represent the classes with blocks with a plate containing the class name.
Every entity in the environment that should contain information has an inventory accessible by the user. Class and object entities contain information about the class design and the object state, respectively. Additionally, the ball contains information about the last message passed. 
ViRPlay3D provided users with an avatar to interact with the different entities in the environment. The user explores the environment controlling the avatar and looks up the entities’ inventories using the “Look at” action. The user also controls the role-play execution, deciding when to execute the next scripted simulation step. Moreover, the user can undo the simulation and even restart it. The active part of the user in the role-play session was enhanced in ViRPlay3D providing the user the opportunity to test her current knowledge. At any time the user can try to guess the next simulation step. ViRPlay3D compares this information with the next step in the role-play script. If it is correct, the message passing is performed. Otherwise, the environment informs that the configured step is wrong, and let the user select if she wants to try again or if the environment executes automatically the message passing reflected in the role-play script.

ViRPlay3D

Once an initial prototype of ViRPlay3D was developed the next step consisted in evaluating the acceptance of this novel roleplay environment. More concretely, the main goals of this survey were:
  • To assess the clarity of the metaphors for object-oriented concepts and the mechanics defined to transfer the role-play sessions into the virtual environment.
  • To evaluate the usefulness of the design information contained in the environment. 
  • To obtain interesting improvements from the RPVE final-users and to verify if the planned evolution of our first version fitted with the user expectations.
Most of the results and comments confirmed that we were in the right direction in the design of our RPVE. Students and instructors also gave us some ideas about possible improvements in the object aspect and the inclusion of additional mechanics to accelerate the access to the information contained in the world. They suggested that the user should look at the object that starts a message passing automatically when a simulation step is performed. Additionally, they expected that ViRPlay3D evolved in the same way that we planned: including a free simulation mode where they could try to find out the correct sequence of message passing, save it and revise it with an instructor or other colleagues.
ViRPlay3D2 Virplay3D2

ViRPlay3D2 is not only an interactive visualization tool like its predecessor ViRPlay3D but also a RPVE into a sandbox where the Computer Science students complete assignments about executing system comprehension and design tasks. The actions performed by the students are saved into scripts that can be reproduced later by an instructor inside the environment. One of the most remarkable enhancements in ViRPlay3D2 is the creation of two different single-user running modes: scripted-mode and free-mode. As in the previous version, in the scripted-mode the user controls when the next step is executed, she can undo the last step or restart the simulation. Unlike ViRPlay3D, in the new version it is possible to work in a free-mode with role-play scenarios without a predefined script. This way, the user is responsible for deciding the simulation steps and finishing the simulation. The performed simulation is stored as a script that can be executed later in ViRPlay3D2. The script generation feature eases the creation of new scripted scenarios: the instructor employs a free-mode simulation to perform and save the steps for a scripted role-play session used later by her students. So, from the instructor point of view, the free-mode could be used as a simple authoring tool.

VRP2Menu VRP2ScreenShot

The main features concerning to  ViRPlay3D2 are described in these slides (PPT). These videos show an example of the execution of a prototype.  


Overview and inventories (16Mb)


Message passing and object state (12Mb)


Scripted and non-scripted scenarios (14Mb)


After completing the prototype of ViRPlay3D2 was completed we performed a new formative evaluation of the RPVE. The aim of this survey was to compile information feedback about:
  • The improvements about features that already existed in ViRPlay3D.
  • The new features included in ViRPlay3D2
  • Future extensions to ViRPlay3D2 in the line of creating a more collaborative environment.
After analyzing and comparing the results obtained by both RPVE versions, we can conclude that the new features in ViRPlay3D2 have positively enhanced the RPVE. Once the new RPVE version informally evaluated, the next step was to use ViRPlay3D2 in classrooms and evaluate the impact of this tool in the learning process.
ViRPlay3D2 in Classrooms VRP in class
We have employed ViRPlay3D2 in a blended-learning approach where, apart from classical lectures, the instructor teaches object-oriented design concepts using the RPVE and proposes her students to complete several activities using it. These activities have been employed to conduct a summative evaluation of ViPlay3D2 to prove if it can be used effectively in the classroom. The goals of this new evaluation are:
  • Analyzing the impact of introducing a novel tool in an object-oriented programming course. To do this, we want to compare some test results obtained by students who follow a traditional role-play session with the grades of students who employ ViRPlay3D2 to perform the same role-play sessions.
  • Measuring the impact of the RPVE in the understanding of the main object-oriented concepts. To do that, we compare the results obtained in tests related to three different concepts: class design, object state and message passing.
  • Estimating the learning curve introduced by our learning environment. We want to know if the RPVE is as easy to use in real assignments as the formative evaluation showed. Additionally, we want to know if the use of the environment deeply delays the role-play sessions and assignments in comparison with the traditional tools (printed documentation and pen and paper assignments).
The analysis of the results has been positive. All the students who employed the RPVE participated actively in the role-play session and their test results were in average as good as the students that mixed the traditional role-play sessions with the use of ViRPlay3D2. The evolution of the student grades shows that ViRPlay3D2 help the students to better understand some object oriented
concepts. However, it is worth noting that the RPVE is not as easy to use as the subjective evaluation results showed. Students have to overcome a little learning curve in order to effectively work with the environment.
ViRPlay3D2 Multiplayer VRP Multiplayer
The next step in the development of our RPVE is the inclusion and the evaluation of a multi-user running mode in ViRPlay3D2 in order to provide collaborative learning. We are nowadays working on the development of this multi-user running mode. Users will be immersed in the environment inside an object avatar and they collaboratively complete the execution of a selected scenario. Inside the environment, each user will be responsible for deciding the messages that her object should exchange with other objects when it becomes the active object. Some scenarios contain roles (objects) that are not interesting to be performed by a user. In this case, their behaviour will be scripted. This way, when these objects receive a message they will know how to automatically react, executing the corresponding simulation step. Additionally, the multi-user mode will include an instructor role, which can decide about the next execution step of any active object. This role will be employed when there are not enough users to complete the scenario roles that should be performed by human actors. Finally, this running mode will incorporate communication tools for discussing the message sequence and reaching agreements in controversial actions, such as modifying the design, or undoing or restarting the simulation. We will provide a chat-like interface where a user can broadcast messages to the other users. Here we show a video of the first prototypes of the multiplayer mode.


Multiplayer version (12Mb)


As it happened with the single-user RPVE, our work-in-progress of the RPVE multi-user version will be accompanied with the corresponding formative evaluations. The final version will be tested again in a complete summative evaluation that proves the impact of the collaborative learning and the proposed RPVE in the learning process of object-oriented design issues.
[Home] [People] [Projects] [Publications] [Software]
Last update: August 26, 2009