University of Southern California ISE 582: Web Technology for Industrial Engineering

University of Southern California
Daniel J. Epstein Department of Industrial and Systems Engineering
ISE 582: Web Technology for Industrial Engineering
Midterm: Chase/Tovey’s Chickens
Instructor: Elaine Chew
Distributed 10pm, Wednesday, 22 Oct 2003
Due 10pm, Thursday, 23 Oct 2003
NOTE: You are expected to complete the midterm on your own
without external help. Please review the Academic Integrity Policy
described on the course syllabus in case of doubt.
The following question is based on Ivan Chase and Craig Tovey’s chicken
dominance hierarchy research. Scientists have found that animals in groups tend to
form dominance hierarchies that are transitive and acyclic, meaning that, if A
dominates B, and B dominates C, then A dominates C. In an attempt to observe,
quantify and analyze the formation of dominance hierarchies, Tovey, studies the
behavior of chicken in pairwise confrontations. These observations are documented
in text files such as chicken.txt. Each text file documents the final pecking order
among four chickens and the details of each encounter as shown in “chicken.txt”. In
the text file,
J = jump
P = peck
I = inched away from
For example, 2J3 means that chicken 2 jumped on chicken 3; 1P3 means that chicken 1 pecked chic
Your task during the next 24 hours is to create a set of programs that read in and
store chicken data, analyze the data, and present the information using a “music
notation” chart, a Tovey invention. The following instructions will lead you through
this process.
[1] PHASE I: Read in chicken data from the file “chicken.txt” and store it in a vector.
First, create a class Encounter with the following attributes:
LeftChicken – identifier number for chicken left of action
RightChicken – identifiernumber for chicken right of action
Action – type of encounter (J,P or I)
[ 5 points ]
ISE 582: 2003: Midterm
Also, include the following instance methods:
the usual get/set method
[ 3 points ]
[ 10 points ]
[ 5 points ]
Create a class Hierarchy with the following attributes:
Be sure to include appropriate get and set methods.
[10 points]
Next, create a ChickenData class with the following attributes:
chickenHierarchy – an instance of Hierarchy
chickenEncounters – a vector of encounters
Be sure to include the following instance methods:
get and set methods
[ 2 points ]
[15 points]
DisplayChickenData() – displays chicken information using an iterator
[10 points]
Enforce all requirements in parts (a) through (c) using an Interface classes.
[5 points]
ISE 582: 2003: Midterm
[2] PHASE II: Create a window to represent the information using “music notation” (a Chase & Tove
Top Chicken
2nd Chicken
3rd Chicken
4th Chicken
In a Demonstrate class, create a window that displays the chicken dominance
hierarchy and encounters information using “music notation.” Be sure that:
you use the importChickenData to read in and store the chicken
[5 points]
the chickens are arranged hierarchically from top to bottom, with the top
chicken in the top row.
[10 points]
each arrow identifies the chickens engaged in an encounter, and the start
and end of each arrow identify the winner and loser in the encounter. Use
identifyDominantChicken to determine the direction of the arrow.
[ 20 points ]
[3] Contributed questions:
(a) What is the difference between a class variable and an instance variable?
Using an example in your code, explain why a class/instance variable was
used in that particular case.
[ 10 points ]
What is the difference between a class method and an instance method?
Using an example in your code, explain why a class/instance method was
used in that particular case.
[ 10 points ]
E.C. 22 October 2003
[ total: 120 points ]