CSCI 151 Final Project
You will complete a final project for CSCI 151 which gives you more practice with data structures and with large software projects.
Requirements
The topic of the project is open-ended; the only requirements are:
The project must be of significant complexity, making use of multiple classes working together.
You must make nontrivial use of at least two data structures we have discussed this semester (list, stack, queue, binary (search) tree, priority queue, hash table, graph). You are encouraged to use the versions of these data structures included in
java.util
(though you may also reimplement them or use a version developed in lab if you wish).You may work with a partner if you wish.
The project is due at 2pm on Monday, December 11. During the officially scheduled CSCI 151 final exam slot from 2-5pm, each group will give a 10 minute presentation/demo of their project.
Topics
I realize that it can be overwhelming trying to come up with an appropriate project when the requirements are so open-ended. I suggest trying to connect the project to some other topic you are interested in. Please come and discuss with me---I am happy to help brainstorm project ideas, or to figure out how to take your idea and fashion it into an appropriately-sized project.
What to turn in
You should turn in:
Your code as a
zip
ortar
file.A document describing your project:
- What is the goal/purpose of your project?
- How does one use it? (i.e. tell me how to run and try out your project.)
- What are the interesting features?
- What challenges or triumphs did you encounter along the way?
Evaluation
The projects will be evaluated according to the following criteria. Each will count for 25% of the total grade.
Presentation. The presentation should be clear, compelling, not overly long, and use appropriate visual aids (e.g. slides, chalkboard, a project demo...).
Effort/complexity. Does the project represent an appropriate amount of effort? Is it sufficiently complex? Does it use multiple data structures appropriately?
Documentation. The project should be well-documented, with plenty of comments explaining the code, and a thorough description in the accompanying document.
Correctness. Does the project work as advertised? Is it relatively bug-free? Does it gracefully handle all inputs?