You will develop a non-trivial program of your choice in Java Swing and present it to the class by the end of this course. The goal of this project is to demonstrate that you understand how to build a non-trivial OOP program with a Java Swing GUI front end. A contract agreement between you and the instructor is required. Your term project needs to be of su cient complexity to be approved. Ideally it will utilize many of the concepts and Java syntax that you have explored in this course. Group projects are not allowed in order to ensure you challenge yourself su ciently.
(a) Contract Agreement
Please don’t forget: your instructor must sign o on your proposed project before you can begin working on it! Please complete the contract at the end of this document and email it directly to your instructor. Once all functionality is agreed upon, your instructor will sign and email it back to you. The sooner you do this, the more time you will have to work on your term project, so don’t delay! Once signed by both parties, commit and push this contract to your project repository.
If needed, note that various programs can open and edit PDF les, including: Microsoft Word, Google Drive, and many free online editors. If necessary, you can also screenshot, print, type / hand write, scan
- capture the contract to edit it. Only the contract portion of this document is required to be lled out and returned.
(b) Minimum Requirements
Your term project program must include:
- Something that you are interested in (an intrinsic motivator)
- A Java Swing front-end GUI
- At least 2 of the following ADTs: List, Tree, Stack, Queue, Priority Queue, Deque, Map, Set
- At least 5 distinct custom classes that you code in separate les
- One sort algorithm coded from scratch, and one search algorithm
- Handling of bad user input (input validation)
- Persistent data that is saved and read from a le(s); in other words, you should be able to exit the program and reopen it and the data is still there.
Presentations are necessary for you to present your work. They give you public speaking experience and highlight your accomplishments. All presentations will be held virtually online. Make sure you can share your screen over Zoom (practice if necessary). Given the number of students, you will be limited to 5-10 minutes of speaking time. Please speak quickly; do not present slides; do not show your code (we simply do not have enough time). Instead, run your program, demo all functionality, and talk about it. To ensure a good grade, cover all of these points:
- Interact with the GUI and tell us what works and what doesn’t work
- Show the les where the persistent data is saved out to and read in from
- Show input validation handling bad input from the user or le(s)