The Supreme Court Case on Java Versus C++
CISC 470/670 - Programming Languages
Fall 2000

Court Date: Tuesday, December 5, 2000

Overview and Purpose:

The learning objectives for this project are: The ultimate deliverable for this project is the court trial that will be held the last day of class, and continued if necessary. The subject of the trial is a standards case between two programming languages, Java and C++. Each legal team (one for Java and one for C++) has the objective of presenting a solid case for the team's language to become the standard language for object-oriented programming, to be adopted by companies throughout the world who want to abide by the standard and remain competitive.

Each class member will be assigned to a legal team mostly based on language preferences, but also in a way to maintain balance among graduate and undergraduate students on each team. Based on a questionaire, the instructor will assign the roles for each member of each legal team. Each member of the team should be working closely with other members directly involved in their part, but the whole team does not need to meet physically. Email can be used heavily to keep the communication going among team members so duplicate work is avoided and the lawyers making the opening and closing statements are coordinated with the rest of the team's goals and strategies.

There will be a set of Supreme Court justices overseeing the case. They will be instructed to base their verdict on the presented evidence and arguments. All of these justices will have programming experience. You can assume when you are preparing your cases that they are technically proficient in programming in a structured language, but they may not know much about object-oriented programming, Java, or C++. There may be some justices who do know both C++ and Java. A best effort will be made to ensure that there is no justice who knows only one of the two languages on trial.

Courtroom Procedure:

Legal Team Organization:

There will be two legal teams, one in favor of Java, and one in favor of C++. Each legal team will be made up of the following personnel: A witness is only responsible to be an expert in the area they are assigned, as indicated below by the characteristics for evaluation criteria for a programming language. Similarly, each witness interrogators is in charge of a particular topic area (i.e., evaluation criteria). This limits the amount of material each person is responsible for. The witness interrogators for a given topic area should work closely with the witness for that topic area.

Characteristics to consider for Evaluation Criteria:

Readability/Writability: clarity, simplicity, unity Reliability Performance Usability

What to Hand in:

On the day of the courtroom case, hand in a copy of whatever materials you have prepared for your case. Each person's name should be on the material that they have prepared for the case. Also, each person should submit an evaluation sheet for each participant by the final exam date. The evaluation sheets will be made available on the day of the court case. These will be simple evaluation forms to give each student feedback from the other members of the class.

Grading:

Each student will be graded on their participation as a presenter the day of the courtroom trial, and the materials that they hand in for their part in the case. The roles have been divided in a way to attempt to give each person balanced amounts of work. The grade will not be based on the outcome of the trial, but rather the preparation, clarity, organization, and completeness of each student's part in the trial individually. However, the winning team will be rewarded in some other way, outside the grade, so there is motivation to work well as a team.

Last Change: November 7, 2000 / pollock@cis.udel.edu