Course Project

On This Page


Overview

During the project you will write a GUI program that demonstrates what you have learned about Java. You will have about two weeks to complete this program. The theme or topic of the program is up to you. Be sure you have covered all topics listed in the specifications.

Examples of Previous Student Projects

  • Adventure game
  • Android App: for Google's new cell phone platform
  • Bank account programs
  • Bibliograph program: tracking books and authors
  • Card games
  • Computer-based "board" games
  • Cryptography applications
  • Custom Web browser
  • Database programs (store and retrieve selected data)
  • Flash Card application: study aid
  • Home Automation Control System
  • Protein Viewer
  • Recipe System: with text and images
  • MP3 player
  • Video games

Note: you may extend an assignment or example from the course as long as it has significant changes and substantially more functionality. If in doubt, discuss your ideas with me.

Specifications

Develop a computer program illustrating the following features of the Java language. Note that the numbers in parenthesis are the point value for successfully using the feature, as further described in the Grading Criteria.

  1. Create and use multiple classes and objects (2)

    Each class must include both data fields and methods

  2. Create and use your own interface (2)
  3. Create and use your own Exception class (2)
  4. Files:
    1. Read from a file (2)
    2. Write to a file (3)
  5. Generate a graphical user interface (GUI) that includes a:
    1. JButton (1)
    2. JFrame (1)
    3. JPanel (1)
    4. ActionListener (1)
    5. Layout manager and never setLayout(null) (1)
  6. Use a LinkedList<type> from the Java API (2 points)
  7. Code a method that makes a recursive call. (2 points)
  8. A project report as described below (4)
  9. Your project code must compile as described in the Grading Criteria section below (2) using:
    javac *.java

    Thus, do not turn in any code, related to the project or not, that does not compile.

  10. Your project code must function correctly as described in the Grading Criteria section below (10)

    Note: you must demonstrate your project to the instructor during the scheduled class time or you will receive a 0 for functionality.

  11. Your project code must follow all documentation requirements as described in the Grading Criteria section below (4)
  12. Do not use any package statements.
  13. Make an executable JAR of your program containing all the files described in the section of this document: What to Turn In.

Extra Credit

The following are worth extra credit points:

  1. Present your project one class meeting (or more) early (2 points)
  2. Design a polymorphic application using either classes or interfaces (2 points)
  3. Display numbers using a subclass of Format (1)
  4. Make use of a HashMap<key, value> (2 points)
  5. Make use of multiple threads (in addition to the GUI thread) (2 points)
  6. Create an animation (2 points)
  7. Able to run as both an applet and an application (2 points)
  8. Use a JFileChooser (1 point)
  9. Listen for events other than an ActionEvent (1)
  10. Play sounds (1 point)
  11. Use your imagination and code Java features not covered in this course -- be sure to clearly identify your creative features. (0 to 4 points)
    1. 0: Extra credit feature is trivial or does not work
    2. 1: Extra credit is simple and works
    3. 2: Two simple extra credit features or one complex or imaginative use of a feature
    4. 3: Three simple features or one simple features and one complex or imaginative use of a feature
    5. 4: Four simple features, two complex or imaginative use of a feature, or some combination

Make certain that your README.txt file lists any extra credit attempted and the file and line number of the extra credit where appropriate. Without the file and line number I may not see the extra credit.

Project Report

A paper copy of the final project report must be handed to the instructor during your presentation. The report consists of the following information:

  • Brief introduction describing the purpose of your application
    • One paragraph is sufficient
  • A description of how to compile and use your program
  • A list of the specifications and a brief description of how you met these requirements in your program.
    • If you do not list the specification, with a file and line number, then I will assume you did not meet the requirement
    • If you substituted a requirement, with prior agreement from the instructor, list that requirement instead
  • A list of any extra-credit features
    • Point out the extras so we can all appreciate them

As you can see, the report can be as short as 1-2 pages. Provide a paper copy of the report to the instructor on the last day of regular class.

Project Presentation

  • Submit your project to Blackboard before the presentation
  • Hand a paper copy of your project report to the instructor before your presentation
  • Plan on keeping the presentation to 5 minutes or less.

Suggested Presentation Flow

  1. State your name and your project's name.
  2. Briefly state your program's purpose.
  3. Compile your source code.
  4. Demonstrate your program, explaining features as you go.

    Feel free to refer to or display your written report during the presentation. Show the file that your program reads from and writes to. Point out as many of the cool features as possible so we can all enjoy them.

  5. Show the recursion code
  6. Summarize the project.

    When the demonstration is over, or your time is up, then quickly summarize the program's purpose. Then pause for about 10 seconds to give us a chance to applaud!

Grading Criteria

The instructor will evaluate your assignment using the following criteria. Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive.

Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.

For information on grading policies, including interpretation of scores, see the course information page.

Required Features

Points as shown for each demonstrated feature in the specifications. (20 points)

Program Compilation

  • 2: Source code compiles with no errors or warnings
  • 1: Source code compiles but has warnings
  • 0: Does not compile

Functionality

  • 10: Demonstrates mastery of the assignment
    • Has extra features or demonstrates techniques beyond the assignment
    • Applies concepts from the lesson(s) appropriately
    • Meets all specifications (see above) with particularly elegant solutions
    • No errors encountered during operation
  • 8: Has all the functionality expected of the assignment
    • Demonstrates many techniques from the lesson
    • Meets all specifications (see above)
    • Implementation seems more complicated than necessary.
    • May have one minor error
  • 6: Has most of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets all but one of the specifications (see above)
    • Implementation seems excessively complicated.
    • May have 2-3 minor errors
  • 4: Has some of the functionality expected of the assignment
    • Demonstrates some techniques from the lesson
    • Meets at least 1/2 of the specifications (see above)
    • Implementation seems excessively complicated.
    • May have more than 3 minor errors
  • 2: Serious functional problems but shows some effort and understanding
    • Meets less than 1/2 of the of the specifications (see above)
    • Has a major error or many minor errors
    • Implementation seems very convoluted
    • Demonstrates few techniques from the lesson
  • 0: Does not execute

Programming Style

  • 4: Code is well-documented
  • 3: Code has minor documentation errors
    • Has 1 documentation error
  • 2: Code has some documentation errors
    • Has 2-3 documentation errors
  • 1: Code has many documentation errors
    • Has more than 3 documentation errors
  • 0: No apparent attempt to document code

Report and Presentation

  • 4: Sampler is presented and reported clearly and completely
    • Student presents information in a logical and interesting sequence
    • All requirements of the sampler were presented
    • Written report was presented to instructor
    • Report is well-written and grammatically correct
  • 3: Sampler presentation or report has minor problems
    • Student presents information in a logical sequence
    • All but one of the requirements were presented
    • Some minor reporting requirements are missing
    • Report contains spelling errors, but is otherwise clearly written
  • 2: Sampler presentation or report has significant problems
    • Audience has difficulty following presentation because student jumps around
    • At least 1/2 of the requirements were presented
    • At least 1/2 of the reporting requirements were turned in
  • 1: Sampler presentation or report is unclear or incomplete
    • Audience cannot understand presentation because there is no sequence of information
    • Less than 1/2 of the requirements were presented
    • Less than 1/2 of the report was completed
  • 0: No presentation or no report

Nominal Maximum Score: 40, plus extra credit

What to Turn In

Submit your project following the instructions for homework. Include the following items for grading:

  1. Sampler Report as an extended README.txt file
  2. All Java source code and class files in a single executable JAR file
  3. Any data files required

You must submit all the files needed for your project to compile and run correctly. Do not assume that the instructors has any files. Also, do not turn in files that are not part of your assignment, especially ones that do not compile. Your project must compile using javac *.java and work as submitted.

Home | Blackboard | Schedule | Room Policies | Syllabus
Help | FAQ's | HowTo's | Links
Last Updated: May 05 2010 @12:33:58