CS 3390 (Directed Study (Java)):
Projects
Requirements
The objective of a project for this course is the completion of
a non-trivial Java application or applet, to perform a task of
the student's choosing. Students may work alone or in groups
of two. Specific criteria are as follows:
- The project must be approved by me (see "Project proposal"
below).
- The project must involve writing a non-trivial amount of
Java code, which must be your own work.
The project may include code from published sources
(books, Web sites, etc.), but it must also include
a non-trivial amount of original code you wrote.
- The total work involved in the project must be consistent
with the amount of credit you expect to receive
for it. (I calculate that for 60% of the grade for
a three-unit course, this should be about 60 hours total.)
What to turn in / milestones
Project proposal
- What:
- A short description of your project, explaining the
intended function of the application/applet you
plan to write and any research you think you will
need to do in addition to designing and writing code.
(For example, if you proposed to write a miniature
Web server -- quite possible in Java -- you would
need to research the HTTP protocol.)
It is probably wisest, for this proposal, to be
conservative and define the
minimum functionality your application/applet will
provide; you can always go beyond this minimum
functionality later, if time permits.
- When:
- No later than October 10.
- Contribution to total project grade:
- 5%
- Remarks:
- These proposals will be returned as soon as feasible, either
approved as is or with suggestions for changes.
Interim progress report
- What:
- A 5-minute oral presentation describing the status
of your project.
You do not need to prepare a formal presentation,
but you should plan to talk in an organized manner
for 5 minutes, using the whiteboard and/or the
classroom computer setup and/or transparencies.
- When:
- In class, October 31.
- Contribution to total project grade:
- 5%
Final oral presentation
- What:
- An oral presentation, up to 10 minutes, about your project.
In this presentation, you should:
- Demonstrate your application or applet, using the
classroom computer setup.
- Briefly discuss its design.
- Briefly discuss any non-Java topics you had to
research (e.g., to write a mini-Web server you
would have to research the HTTP protocol).
- Briefly discuss any unusual problems you
encountered during development.
- When:
- Either during the time slot reserved for this course's final exam
(6:30pm to 9:30pm December 9, based on the originally-scheduled
meeting time), or during a class period.
By default, all presentations will be during
the final-exam time slot; if you prefer to give your
presentation during class, please let me know in advance.
(You then do not need to be present during that exam period.)
- Contribution to total project grade:
- 20%.
Final written report
- What:
- A brief report (no more than 5 pages should be required)
describing your project's goals and outcome.
This should be an expanded version of your oral
presentation, with a description of your application/applet
in place of the demo.
It should include bibliographic references as appropriate.
(For example, if you researched the HTTP protocol,
you should say where.)
- When:
- Due November 28; accepted through December 12.
- Contribution to total project grade:
- 20%
Application/applet source code
- What:
- Complete working source code (.java and/or .html files)
for your application/applet, in
a machine-readable form that will allow me
to compile and execute it.
You could do any of the following:
- Make the code accessible via the Web and give me a URL.
- E-mail me the code.
- Put the code on a diskette.
Talk to me if none of these will work for you.
Your code should be readable and well-documented.
- When:
- Due November 28; accepted through December 12.
- Contribution to total project grade:
- 50%.
Hints and tips
If you're stuck for ideas:
- Projects completed by students last year included:
- Interactive one-player blackjack games.
- Multi-user networked chat programs.
- A "virtual pet".
- An arcade-style game (definitely the most ambitious
project, but impressive!).
- A random helpful Java advocate has a Web site with
a list of Java project ideas.
It appears that the author is making these freely available
to all comers, provided you notify him if you use one.