Final Project — Graphs & Binary Search Trees
Final Project

Graphs & Binary Search Trees

Deadline May 18
Groups Up to 4 students
Points 20 pts
Report 7 – 10 pages · PDF

Goal

This project is your chance to take everything you have learned about data structures and apply it to a problem that feels real. You will design and build an application around either a Binary Search Tree or a Graph — choosing the right structure, implementing it from scratch, and making it do something useful.

Unlike a lab, there is no benchmark harness to hide behind. You decide how to structure the code, which operations matter, and how a user interacts with the system. That freedom is the point.

A good project is one you are proud to show — not just to your professor, but to anyone.

Choose your project

Pick one project from either track. All options are at roughly the same difficulty. Choose what genuinely interests you — that will show in the final result.

🌳 Binary Search Tree track
01
Library catalog
Insert, delete, search by ISBN; in-order listing
02
Stock price history
Range query by date; min/max over a window
03
Student grade tracker
Rank by GPA; find top-N; range of students
04
Pharmacy inventory
Key by expiry date; find soonest-expiring items
05
Sports leaderboard
Real-time score updates; top-K query
🔗 Graph track
01
Maze solver
BFS shortest path · DFS all routes
02
Flight network
Dijkstra — cheapest / fastest route
03
Campus navigator
Dijkstra or A* — shortest walking route
04
Social network
BFS — degrees of separation, mutual friends
05
Delivery route planner
Prim or Kruskal — minimum spanning tree

Requirements

These apply to all projects, regardless of track.

Core operations

  • BST: insert, delete, search, at least one traversal (in-order), and one domain-specific query (range, top-K, min/max).
  • Graph: add node / edge, BFS, DFS, and the algorithm central to your chosen project (Dijkstra, Kruskal, etc.).

Human interaction

  • Provide a console menu where a user can load or generate a dataset, run the main operations, and see meaningful output.
  • Output must be readable — not raw node/pointer dumps.

Code quality

  • Meaningful class and variable names throughout.
  • Each public method has a short comment.
💡
Keep it simple. A clean console menu is perfectly fine. The quality of your data structure and algorithms matters far more than the interface.
⚠️
Academic integrity. You may use AI assistants to help you write and debug code. However, you must understand every line you submit. Expect to explain your implementation decisions during the review session.

Submission

Submit two items by May 18.

01 — Source code

A zip of your project, or a link to a public GitHub repository.

  • Include all team members' names in a top-level README.md

02 — Report · 7–10 pages · PDF

Write as if explaining your work to a new colleague — clear, honest, specific.

  • Design decisions — why you structured the code this way
  • Complexity analysis — time & space for each operation
  • Testing — edge cases you verified and how
  • Reflection — what was hardest, what you would improve
📝
Report tone. Avoid padding and filler. A concise 7-page report that shows real understanding is worth far more than a padded 12-page one that doesn't.

FAQ

Can I work alone?

Yes. Groups are optional and can be between 1 and 4 students. Solo projects are evaluated by the same criteria — there is no penalty, but also no reduced scope.

Can I propose a different project idea?

Yes, with prior approval. Send a short description of the idea and the core data structure + algorithm you plan to use. Approval must be confirmed before you start.

How much of the code can I generate with AI?

There is no hard limit. Using AI assistants to scaffold, debug, or improve your code is a skill in itself. What matters is that you understand the result. During the review you will be asked to walk through your implementation — unclear or copy-pasted answers will affect your grade.

What if my project turns out to be too easy or too hard?

If it feels too easy, add a non-trivial extension (self-balancing, weighted edges, traversal visualization). If it feels too hard, come to office hours early — not the day before the deadline.

Is there a review / demo session?

Yes. Each group will have a short 10-minute slot where you walk through the code and answer questions. Dates will be announced after submissions close.