Final Project
Overview
Create a masterpiece that demonstrates your understanding of java
programming in the modality of your choice. Illustrate that you
understand the fundamental concepts of this discipline and can create
an original example specific to your own interests.
Requirements
As this course covered specific technologies, they are exected as a
minimum standard for your final project. Unless otherwise cleared
with your instructor, your project should have the following elements:
- Be written in the Java programming language
- Incorporate some sort of advanced data structure (database, array-based, or file-based)
- Incorporate some sort of user interface design (standalone or command-line menu)
- Solve some identified problem
- Work as designed without crashing
- Illustrate a basic knowledge of programming principles
Capabilities
It's likely you will want to use some techniques that have not yet been
taught. For project planning purposes you can assume you'll have the
following capabilities:
- A basic graphic user interface
- Buttons, text fields, and text areas
- Basic page layout
- Applets (a program embedded in a web browser)
- The ability to detect mouse and keyboard input
- Basic drawing and animation skills
- The ability to save and load text files
You can certainly use features not on this list (scrollbars,
collision-detection or JDBC databases are possible) but you will have
to do some independant research to get these topics.
Preparatory Documentation
Note some documentation will be required before the project is
complete. This is a completely normal software engineering practice,
as you must have a basic requirements analysis in place before working
on any significant project.
- A one-page (or more) summary of the problem to be solved.
- What will the project do?
- Who are the main users
- What kinds of problems will they solve with the system?
- What technical skills can you expect of users?
- Do you expect any hardware limitations? (bandwidth, old
browsers)
- Will this be a GUI design? applet? command line? Why did you choose this
modality?
- What are your basic design decisions? (color scheme, page
layout, menu.)
- A data plan. (if needed)
- An ER diagram of the data structure (if appropriate)
- The data should be in at least third normal form
- SQL script may be supplied at this time
- A system overview.
- Diagram the main states of your system.
- See diagrams for spyMaster, QuizMachine in book for
examples
- Describe the typical user's path through he system.
Actual Project
The project itself must be available online at the designated time
(although it doesn't necessarily need to run online if it's a
standalone app.) This project must consist of binary code (class or
jar files,) the actual running project and the remainder of the
documentation, including:
- Source code listing for each Java file in the project
- Source code listing for each SQL script used in the project
- Passwords for any password-protected fields, so instructors can
log in as administrator
- Any other documentation you feel is appropriate (usability
tests, CSS stylesheets, etc)
- You will be required to present your project in class. You will
have 5 minutes to demonstrate the main features of your project.
- All work must be be original. If you use external libraries,
algorithms etc. you must document your sources.