Role Playing In an Object-Oriented World

(If you get asked for a password on some links, just hit cancel; the document should then load)

GridWorld RolePlay Materials Now Available

    This page contains various resources related to the use of scripted role playing in the classroom.  At St. Bonaventure University, we have found that the use of scripted role playing can help students understand various aspects of software design.  In particular, it can help with them understand:

This page contains links to several scripts that we use in our courses and in our workshops for high school teachers.  There are also links to "overview" documents that discuss ideas about how to make the most effective use of the scripts.  We strongly believe that it is necessary to plan their use carefully and to review the experience afterwards; the overview documents help with this.  Feel free to borrow any of these materials.  If you have comments on them, or if you make improvements, we'd love to know. 

At the bottom of the page, we have also included links to other pages featuring scripted role play exercises.  If you know of others, email us at and we'll post them as well.


"First Day" Role Play

    Scripted role playing can be used as early as the first day of class.  Our first exercise concentrates more on the interaction of various software entities than it does on a particular program.  This version concentrates on the idea of interprocess communication, i.e. method invocation.  There is no single master script in this set-up - suggestions are made in the overview document about how the instructor should "direct" the exercise.

    FirstDay.doc  (small updates as of 7/11/03)

    FirstDayOverview.doc  (small updates as of 7/11/03)

    Joe Bergin of Pace University has refined this idea a bit further (his examples include some inheritance ideas) and describes it here.


APCS GridWorld Role Plays

    Starting in 2007-08, the case study for the AP curriculum will feature the GridWorld framework.  We are working on two role playing exercises related to this case study.  The first is designed to emphasize how the various classes interact.  It uses only concepts through Chapter 2 of the case study.  The second is designed to highlight the organization of the Critter class and uses concepts through Chapter 4.  The scripts for both can be found in the Scripts document. 



    The scripts for the role play are very fluid when first written.  Based upon early experiences we modify (and hopefully improve) the scripts a good deal.  When we released the scripts for the Marine Biology Simulation four years ago, early (and sometimes incorrect) versions seemed to proliferate.  Therefore, we are holding off releasing the scripts for this role play until about the eighth of August.  At that time, the documents will be linked from this page.

    We are releasing the documents as PDF files.  If, for some reason, you need a copy that you can edit, please contact us and we will send you an editable version in Microsoft Word format.


AP Marine Biology Simulation Role Play (Java Version)

    Starting in 2003-04, the AP curriculum will use Java as its delivery language.  Accordingly, a new the case study has been written.  As was the case when the AP curriculum moved from Pascal to C++, the topic of the case study has been preserved, but the code (and the narrative) have been completely rewritten.  We have written a scripted role play exercise that introduces users (actors and observers) to the fundamental aspects of this new case study, including the use of inheritance within it.  

    JavaMBSRolePlayScripts.doc  (last updated 7/16/03; thanks to Robb Cutler)

    JavaMBSRolePlayOverview.doc  (last updated 7/11/03)

Note:  7/11/03 update of scripts had bad link.  If you downloaded that one, you definitely want to repeat the download now.

Marine Biology Case Study Role Play (C++ Version)

    As part of the Advanced Placement Computer Science curriculum, students study a large object-oriented program in depth.  Currently, that program is the Marine Biology Case Study (MBCS).  This program consists of large numbers of interacting objects from seven different classes (plus a separate main function).  It is our experience that students (and teachers!) can feel overwhelmed when they first encounter MBCS.  We have found that the following scripted role playing exercise can be very helpful in terms of getting a grasp on the program.  In addition to being used in our courses (where we used MBCS as long as we used C++), this exercise has been used by large numbers of teachers attending College Board workshops.  The current version of both the role play and the overview documents incorporates the feedback of many teachers.  We thank you all.




Chips Role Play

    Chips is a Nim-like game in which two (or more) players take turns removing some number of indistinguishable chips from a pile.  The initial pile size, N, is a parameter of the game.  The first player must remove between 1 and N-1 chips, inclusive.  Each subsequent player must remove between 1 and 2*previous_move chips.  The player to remove the last chip wins. 

    We have written a version of Chips in which players of various strategies (e.g. random, "always take 1", "ask the user") can compete.  The various strategic player classes inherit from an abstract player class.  (This code is available in both C++ and Java versions.)  We have also written role play scripts and an overview document for Chips.  Note that the inheritance in this role play is modeled through delegation.