Project proposal and class design due Wednesday, April 26.
Electronic turnin of project due at the beginning of lecture Wednesday, May 3.
Write a cool java applet or standalone application, of your choosing. A written project proposal and design of the java classes for your project is due on Wednesday April 26 at the beginning of class. You may do your project individually, or in groups of two. If you are in a group, just turn in one proposal/project with both of your names on it. Proportionately more work will be expected from groups than individuals.
Your project must be written in Java. You may use any system you wish; however, you must be able to demo your project using Sun's reference Java system (JDK 1.1.x or JDK 1.2.x). Your project should take advantage of Java and should use classes and objects (particularly class hierarchies and derived classes) in some essential way. It may either be a standalone application, or an applet. This will be considered when your project is evaluated.
The code should be primarily your own. If you base your code on existing code (there are tons of applets out there), make sure you document this in your project report.
Turn in your project proposal in class on April 26. Your proposal should be a relatively complete description of what your final application will be, but it does not need to be overly long. In addition you should turn in a description of the major Java classes required for your project. This could be a diagram, a set of CRC cards (see ch. 3 of the textbook), or some other writeup. You do not need to have the actual code working at this time, but you should have decided what classes you will write, what methods and data members each class will contain, and what the interfaces (including parameters and level of visibility) those members will have. It is o.k. if the details of your final project deviates somewhat from this initial design but you should aim for as close to a final design as possible. We will try to get feedback to you on this proposal and design very quickly.
The code for your project should be submitted at the beginning of class on Wednesday, May 3. You may use either of the following two turnin pages:
You should also turn in a report describing what your project actually does. Describe how, if at all, it differs from your proposal. Discuss the system design, in particular the classes you implemented, their behaviors, and how they relate to each other. In this discussion you should give reasons for your design decisions. Also mention any existing Java code you built on. Again, this need not be overly long. If you work with a partner, also describe briefly who did what. Project Demos -- week of May 3
We will attempt to take over one of the instructional labs for a demo fest shortly after May 3. We'll pass around a signup sheet in class and you can pick a 10 minute time slot to demo your program. These are usually lots of fun, since everyone can see the other projects. More details on this later.
Here are a few suggestions for projects -- you can also do something quite different of your own choosing.
Another possibility would be to create a object-oriented version of one of your favorite projects from another class. You might want to browse old course webs to get some ideas. Maybe you can rewrite your favorite GP142 program all in Java? Keep in mind however, that a substantial part of this project is the design. Thus whatever you choose must involve significant design effort (i.e. you cannot just re-write a C program in java). Also be sure to credit any sources you are starting from.
In case you have not been struck by the lightning bolt that is a java project idea that excites you, here are a couple of concrete project ideas so you can go ahead and get started.