A command-line C++ tool for ABCU Computer Science advisors to load and query course data, and generate both alphanumeric and prerequisite-order (topological) course lists.
-
Project One Analysis (Word Doc)
Run-Time and Memory Analysis.docx -
Project Two Code
Course Listing Code (Topological Sort Bonus)
-
What was the problem you were solving in the projects for this course?
I built an advising tool to help ABCU advisors quickly load a CSV of course data, look up individual course details, and produce both an alphanumeric listing and a prerequisite-correct course schedule. -
How did you approach the problem?
I chose a balanced BST (std::map) for O(log n) lookups and O(n) in-order traversal, and I implemented Kahn’s algorithm for the bonus topological sort to enforce prerequisite order and detect cycles. -
How did you overcome any roadblocks you encountered?
When CSV parsing led to blank or missing tokens, I added input validation and debug logging to skip empty fields and verify each prerequisite exists before building the dependency graph. -
How has your work on this project expanded your approach to designing software and developing programs?
I adopted a modular structure—splitting functionality into data loading, listing, lookup, and sorting—so each part can be tested and extended independently, whether the feature is simple or complex. -
How has your work on this project evolved the way you write maintainable, readable, and adaptable code?
I now emphasize clear variable/function names, thorough inline comments, and a single-file organization with well-defined sections. This makes the code self-documenting and easy to update.
Author: Joshua Torres
Date: June 2025