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.
- 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.
- C++
- Data Structures (e.g., Vector, Hash Table, Binary Search Tree, and more)
- Algorithms (Insertion Sort)
- Clone Repository
- Ensure you have C++ and a Compiler
- Ensure you have the input csv file
- Compile Program
- Run Program
- |
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.