Data Structures and Algorithms
Final Project
Submission Date: December 14, 2024 11:59 PM
Team Composition: Individual or Pair only
Objective:
To develop a console-based application that demonstrates a comprehensive
understanding of data structures and algorithms, incorporating multiple concepts taught
during the course.
General Requirements
o Programming Language: The application must be implemented using C++.
o Application type: Console application
o Data Structures and Algorithms: Utilize the topics discussed in this course. At
least three (3) data structures and at least two (2) algorithms must be
implemented.
o Comments: The code should be well-documented with comments for clarity
and maintenance.
o Presentation: You must present your application to the class to show its
features and how it works. You will be required to answer specific questions after
your presentation.
Deliverables
1. Source code: Create a GitHub repository of the project and submit the
repository link. Include a README.md file in your repository that provides an
overview of their project, including the project's purpose, the data structures and
algorithms used for which features, and instructions on how to run and use the
application.
2. Code Originality: While it's understandable that you may need to reference
external resources or use code snippets from others, it's essential to ensure that
the overall code in your project is written by you. Copying large portions of code
from others without proper citation or permission may result in loss of marks.
Suggested Applications
o Task Scheduler and Manager: Create a system to manage tasks, including
scheduling, prioritization, and reminders.
o Maze generator and solver: Develop a program that generates mazes and
solves them using various pathfinding algorithms.
o Inventory Management System: Design a system to manage inventory,
including tracking stock levels, orders, and supplier information.
o Package Delivery Simulation: Create a simulation of a package delivery system,
including routing, scheduling, and package tracking.
o Restaurant Order Management: Create a system to manage restaurant orders,
including taking orders, managing kitchen workflow, and tracking customer
information.
o Recipe Manager: Create a system to manage and organize recipes, including
ingredients, instructions, and nutritional information. Implement features like
recipe search, categorization, and meal planning.
o Course Registration System: Develop a program that allows students to register
for courses, including searching for available courses, checking prerequisites,
and managing course schedules.
o Music Playlist Manager: Create a system to manage music playlists, including
creating playlists, adding and removing songs, and generating playlists based on
user preferences.
o Movie/Book/Anime/etc. Recommendation System: Develop a system that
recommends items based on user preferences and ratings.
o Console-Based Game: Develop a console-based game that incorporates data
structures and algorithms to manage game state, player interactions, and game
mechanics. Examples might include a turn-based combat game, a puzzle game,
or a text-based adventure game.
Project Guidelines
o You can work on the project solo or in pairs.
o The project must be completed within the given timeframe.
o The given required number of data structures and algorithms to implement are
only minimum requirements. You may add more to your project if you wish/need.
o You are encouraged to be creative and add features that are not listed in the
requirements.
o If you have any questions or concerns, please don't hesitate to ask your
instructor.
Important Notes
o Please avoid implementing projects such as Sudoku solvers, chess engines, and
other programs that already have well-known solutions available online to
discourage copying and ensure originality in your work. The goal of this project is
to demonstrate your understanding of data structures and algorithms.
o Remember to choose a project that aligns with your interests and showcases
your understanding of the data structures and algorithms covered in the course.
Grading Rubric:
Complexity and effective use of DSA concepts (40%)
Functionality and correctness (35%)
Code quality and documentation (15%)
Creativity and presentation (10%)