To gain practical experience in deploying object-oriented design and implementation techniques.
See also the lectures OO.
For the O-O practicum I wish to maintain the spirit of challenge.
That is to say, I want you to experiment with technologies that are of
current interest, and to taste how it is to build a framework with these
technologies in the domain of your choice.
In other words, it is not the individual application that is interesting,
but the approach that allows for developing a thousand applications with ease,
building on the ideas and solutions of your framework.
More concretely, if you insist on developing another game,
don't build a single game application, but try to develop
a framework that allows for building a variety of similar games.
Make sure that you factor out game strategies, for example by using
the Strategy pattern.
Now to give you an indication of what I see as the major challenges
in O-O software construction:
Notes 98/99
In the past the objective stated above
has often been misunderstood as the liberty
to develop another application in C++ or Java.
This has led to a number of nice games.
Nice, but not very interesting in terms of their O-O
architecture. While the first such games may be considered
as pioneering work, most of its followers did not
excel as imaginative examples of O-O software construction.
All these subjects have been treated, or at least
hinted at in the OO Lectures.
If you did not visit any of these lectures, I do actually
want to discourage you to participate in the practicum.
You do not learn much from writing an other Java program, do you?
Of course, you are welcome to think of variations on this theme an if you see no other option you may pick an assignment from the the old list.
If you think that the technology will be too much to master, don't worry, if needed we will organise periodic meetings where you can exchange ideas, ask for information and get advice on the technology.
Although it would be nice to have a real 3D interface to the community, I am aware of the fact that most of the technology involved ist stll rather unstable. However, even without using 3D technology, you must strive for an intuitive interface that that is suited for the application domain.
Examples of virtual communities can be found at
http://www.colonycity.com
http://www.blaxxun.com and
http://www.activeworlds.com .
Procedure
In contrast with previous years, a synopsis alone
does not suffice.
To enter the practicum, you need to write a synopsis,
send it to eliens@cs.vu.nl and, if required by
the supervisor, make an appointment
to talk about the synopsis with the supervisor.
Before the actual start of the semester there will also be a meeting with all the participants, in which you are required to give a short, 5-10 minutes, presentation about your intended system or framework.
See also the Regulations below.
Anton Eliëns eliens@cs.vu.nl
Programs have to be written in either Java or the C++ programming language, or a combination of these. The use of CORBA, and a combination of C++ and Java is strongly encouraged.
You have to choose one of the following options, depending on your personal interest and programming skills:
See also the list of available software.
Soft-copies of the documentation need to be available in LaTeX2e or HTML. Other languages, toolkits or file formats may only be used after consulting the supervisor(s).
The practical work can be done in groups of two persons or on an individual basis, after choosing one of the given assignments. Students are required to send (the URL of) a synopsis (a short, comprehensive description of the requirements and functionality of the application in HTML) to eliens@cs.vu.nl first. See the Procedure above. Read the section about the review procedure and the style guide before you start!
After approval of your synopsis, a group account can be requested by eliens@cs.vu.nl. These accounts will expire on September 30, and can only be extended after an explicit request.
A soft-copy of the final application and documentation has to be send by e-mail to eliens@cs.vu.nl (a uuencoded compressed tarfile, see the Makefile of the example project), as well as a filled in "tentamenbriefje" and a hardcopy of the corresponding documentation (requirements spec, user manual, design, etc) (mailbox of Anton Eliëns in the "Stafkamer", next to S3.03). Do not use plastic covers, staples will do!
Note: Students are responsible for a steady progress and should contact the supervisors in case of problems in an early phase. If you miss the August 28 deadline, you may continue working on your assignment, but no help will be available, and new versions of hush or CORBA may be installed. Additionally, after submitting, your assignment will probably not be reviewed within the usual time frame.
An example may be copied from /home/oo/hush/oo98/examples/
Read the FAQ first!
The SE tutorials provide introductions to make(1), C++ debugging, Tcl/Tk, the Tk-packer, widget cooking, ... When using Java, you will have to rely primarily on the standard Java and Swing documentation.
The documentation for (Java) hush is part of the hush documentation.