Skip to content

Repository files navigation

ABCU Course Planner

Overview

This project was first developed for the CS-300 Data Structures and Algorithms course and focuses on determining and implementing the optimal data structure for storing course information for the Computer Science department at ABCU (a fictional university).

The work was expanded in CS-499 Computer Science Capstone to implement a hash table instead of a vector and evaluate the trade-offs.

Key Deliverables & Outcome

  • Problem Solved: Determining the most efficient data structure (Vector, Hash Table, or Binary Search Tree) to store and manage course data for the ABCU advising department.
  • Recommendation: A Vector or hash table data structure was recommended after a detailed pros/cons analysis and runtime evaluation.
  • Runtime Analysis: A comprehensive pseudocode document, included a full Big O notation runtime analysis for each data structure option (Vector, Hash Table, Binary Search Tree).
  • Capstone Narrative: An accompanying narrative to the new Hashtable implementation explainig trade offs and design choices.
  • Implementation: The final C++ code implements the recommended HashTable and Vector data structure solution.

Technology

  • C++
  • Data Structures (e.g., Vector, Hash Table, Binary Search Tree, and more)
  • Algorithms (Insertion Sort)

How to Run

  1. Clone Repository
  2. Ensure you have C++ and a Compiler
  3. Ensure you have the input csv file
  4. Compile Program
  5. Run Program

Repository Files

  • | ProjectTwo_HashMap_CS300_Getz.cpp | C++ implementation of the recommended HashTable data structure solution.
  • | ProjectTwo_CS300.cpp | C++ implementation of the recommended Vector data structure solution.
  • | ABCU Course Planner Narrative.pdf | Detailed analysis of using a hash table for the application and design choices.
  • | ABCU-Pseudocode-Document-and-Runtime-Analysis.pdf | Detailed runtime analysis and initial data structure suggestion (Vector).
  • | CS 300 ABCU_Advising_Program_Input.csv | Sample input file used for testing the advising program.
  • | CS 300 Course Information.pdf | PDF explaining how to input csv is structured. Includes a flow chart of curriculum.

About

Determined the optimal data structure for a university advising system. The project focuses on runtime analysis and C++ implementation a HashTable and Vector data structure to efficiently manage course data.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages