Skip to content
esanacorePublic

About

SNHU CS-300: Data Structures & Algorithms - Analysis and Design

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CS 300 – Data Structures and Algorithms

Project Artifacts

  • Project One: Data Structure Analysis (runtime and memory tradeoffs)
  • Project Two: C++ Advising Assistance Program (Binary Search Tree implementation)

Reflection

In this course, I worked on designing and implementing an advising assistance program for a Computer Science department. The problem involved reading structured course data from a file, organizing it efficiently, and providing functionality to display a sorted course list and detailed course information, including prerequisites. These projects required both analytical decision-making and practical implementation using C++.

I approached the problem by first analyzing multiple data structures in Project One, comparing their run-time and memory characteristics to determine the most appropriate option for the task. This analysis reinforced the importance of understanding how data structures impact performance and maintainability. Based on that work, I selected a binary search tree for Project Two, which allowed efficient searching by course number and natural alphanumeric ordering through in-order traversal.

One of the main challenges I encountered was ensuring that user input and file data were handled safely and consistently. Through testing and troubleshooting, I refined input validation, normalized course identifiers for reliable searching, and adjusted how prerequisites were processed to improve robustness while keeping output aligned with the provided sample execution. These adjustments helped ensure the program behaves predictably even when input is imperfect.

Overall, these projects expanded my approach to software design by emphasizing planning before implementation and validating design decisions through testing. They also influenced how I write maintainable code by encouraging clearer structure, meaningful comments, and flexibility for future changes. Together, these artifacts demonstrate my growing ability to apply data structures and algorithms to real-world programming problems in a clear and efficient way.

Input File Format (Overview)

The advising assistance program expects a comma-separated values (CSV) file where each line represents a single course. Each record includes a course identifier, a course title, and zero or more prerequisite course identifiers. The program is designed to handle courses with no prerequisites as well as courses with multiple prerequisites listed on the same line.

This description reflects the general structure used for testing and does not depend on any specific proprietary dataset.

About

SNHU CS-300: Data Structures & Algorithms - Analysis and Design

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages