Final Course Project - Worth 5% of Your Course Grade

Project Summary

  • For the course project you will write a program that demonstrates what you have learned about Java this quarter.
    • This project is also intended to be something you can add to your resume
  • You will have ~3 weeks to complete this project.
  • The theme or topic of the project is up to you. 
  • However, please be sure you have covered all requirements listed in the specifications.
  • You will work on teams of 4 people (9 teams total for the whole class)

Project Ideas

  • Adventure game
  • Android App
  • Bank account program
  • Card games
  • Computer-based "board" games (no Battle Ship, please!)
  • Cryptography applications
  • Database programs (store and retrieve selected data)
  • Flash Card application: study aid
  • Home Automation Control System
  • Recipe System
  • Restaurant ordering app
  • MP3 player
  • Other game

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.

Team Document

  • Sign up with your team here

Required Features

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 (out of 20 points).

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

    Each class must include both member variables and methods

  2. Create and use your own interface (2)
  3. Create and use your own abstract class (2)
  4. Override equals for one of your classes (1)
  5. Implement the comparable interface for one of your classes (1)
  6. Throw a new exception and use try-catch (2)
  7. Create and use a static variable and a static method in one of your classes (2)
  8. Files:
    1. Read from a file (2)
    2. Write to a file (2)
    3. Make sure to use try-catch here (and complete number 6 above in the process)!
  9. Use a StringBuilder or StringBuffer variable (1)
  10. Use an ArrayList (1)
  11. Implement search (1) and sort (1) methods for the ArrayList
  12. Extra credit for creating a graphical user interface (GUI) (2) using Java Swing or Javafx
  13. Note that you must demonstrate your project to the instructor during the last day of class or you will receive a 0 on the project
    1. All teammates must be present for the demonstration. Any absent team member will receive a 0.


  • At the end of the quarter, you will need to present the final version of your project to the instructor, and two other teams.
  • This presentation and demonstration will occur via video and should be no longer than 15 minutes.
  • Suggested software for screen capture to record your video:
    • Zoom
    • Camtasia (free 30 day trial)
    • QuickTime (comes standard with a Mac)
  • The video should have two parts:
    • A PowerPoint presentation (or similar) as described below
    • A demonstration of your project, where each team member shows the functionality of his or her portion of the project.
  • Important: Please make sure that your project demonstration displays *all* of the components of your project.
    • If a component is not yet working, it should be removed from the project.
    • You will lose points for any component that is listed as part of the project, but is not demonstrated running on the video.
  • Additional requirements:
    • Each team member should speak as part of the presentation.
    • When discussing the UML diagrams, the teammate responsible for that portion of the project should explain the diagram for his or her component.
    • Please show a continuous recording of the project demo.
    • Please do not edit out any component of the project or the results of entering a key.
    • Please do not break the project into pieces and record each component separately.
    • As no extensions are allowed, make sure that you at least have a running version of your project when you record the video (even if it is incomplete) or you will receive a 0 on your project (no exceptions!).
  • I strongly encourage you make a checklist of each project component that you use during your recording of the video. Check off each component after you have presented it. In this way, you will ensure that you present the project in its entirety.
  • If you do not participate in your team's presentation, you will receive a 0 on this project. No makeups offered - no exceptions!
  • Please save your video file as an mp4, if possible
  • The presentation itself will be graded on a 20 point scale as follows:

 Requirement Description Point Value
Slide 1

Your first slide must display your topic and the full names of all presenters. At this point in the presentation, each team member should introduce him or herself and one person should state the topic of the presentation.

Slide 2
Your second slide must provide an outline of what you will cover in your presentation. This outline must be a list in either bullet point or numerical form. One member of the team should briefly go over what will be discussed during the presentation.

Slide 3
Your third slide must give an overview or brief summary of what your chosen topic is. In other words, define your topic, and why you chose it.

Slide 4
In the fourth slide, describe any challenges you faced when implementing this project

Slide 5-6 or 7
In the next 2-3 slides, give an overview of the classes used in your presentation. You must present these by using the UML diagrams that you created for your Lab.

You may update the UML diagrams if your classes have changed since submitting the Lab.

For each diagram, the person who completed that particular component should speak about it.

Half of your score for this component will be based on accurate UML diagrams following the examples and guidelines given in the course lesson notes. If you are not certain if your UMLs have been completed correctly, please email a copy to the instructor to receive guidance.

Slide 7 or 8
Find a friend to test your project. What happened when this friend tested the project? In the next slide, list the results. What errors did you notice and what feedback did you get from your friend? Did you make any changes based on what your friend did or recommended?

Live Demo of Project
During the live demo, you should display the main functionality of your system, including all required features, as well as any special features you would like to show off. Each team member must speak during this part and demo his or her component.


Presentation Aesthetics
Is your presentation laid out nicely with lots of images and clear, readable text?

Is the presentation delivered in a practiced and professional manner?


What to Submit

  • Please upload your presentation, your video file and all of your project files to Canvas by Friday, June 19 at 11:59pm.
    • No changes to the project can be made after this deadline
    • Because we will be completing a peer review process, no late work will be accepted.
  • We will be submitting the files as a group assignment on Canvas. Therefore, only one team member needs submit. However, it is job of all team members to make sure that the work got submitted by the deadline.

How You Will Be Graded
  • You willl be graded on a point system as well as a percentage scale:
    • 20% professional presentation (out of 20 points)
    • 20% complete and accurate project demonstrated during presentation (out of 20 points)
    • 60% required features in project code (out of 20 points)