Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# CS300<br/>
DSA: Analysis and Design <br/>
• What was the problem you were solving in the projects for this course?<br/>
The problem I was solving for the projects in this course was to be able to read a csv file and sort the data that was contained in that file. Once the data is sorted, display the data. Also, a user can search for a specific course. <br/>
• How did you approach the problem? Consider why data structures are important to understand.<br/>
I approached the problem by using Binary Search Trees. I had to research on which data structure would be the most appropriate when handling a large amount of data, while keeping the data sorted. Also, I had to take into account the speed of each data structure too. <br/>
• How did you overcome any roadblocks you encountered while going through the activities or project?<br/>
To help overcome some roadblocks like ensuring the data would be inserted into the binary search tree, I used the class resources. The zybook was very useful explaining the appropriate steps to traverse the tree. I also debugged the program line by line eliminating different problems progressively. <br/>
• How has your work on this project expanded your approach to designing software and developing programs?<br>
My work on this project helped me think about what can cause the program to run more efficiently at a deeper level. I must think about what the most efficient way is to store data, whether it needs to be sorted, or whether it needs to be manipulated in some sort of fashion. I would need to find the best data structure for the system’s needs since each one has its pros and cons. <br/>
• How has your work on this project evolved the way you write programs that are maintainable, readable, and adaptable?<br/>
This project has helped me evolve the way I think about the scalability of a program. For example, I had to think about what if the data base has 100’s of different classes. It must be able to adapt to different amounts of courses. By organizing the data, it makes it easier to maintain it too. Also, it is vital to keep consistent spacing and indentation to make it as easy as possible to read.
# CS300: Data Structures and Algorithms: Analysis and Design

## Overview
This project focused on building a program that reads course data from a CSV file, sorts it, and lets a user search for and display information on a specific course. The work centered on choosing and applying the right data structure to keep that process efficient as the dataset grows.

## Approach
I approached the problem by using a binary search tree, researching which data structure would be the most appropriate for handling a large amount of data while keeping it sorted, and weighing the speed of different options against the dataset's needs. To work through roadblocks like correctly inserting data into the tree, I relied on course resources to apply the right traversal steps, then debugged the program line by line to resolve issues progressively.

## Reflection
This project deepened how I think about program efficiency, since choosing the right way to store and manipulate data, and weighing the pros and cons of each data structure, directly affects how well a system meets its needs. It also shaped how I write maintainable, readable, and adaptable code: thinking through how the program might need to scale, for example handling a database with hundreds of different classes, reinforced the importance of organizing data and keeping spacing and indentation consistent so the program stays easy to read and adapt.

## Skills Demonstrated
- Binary search tree implementation
- Algorithm analysis and Big-O reasoning
- CSV file parsing and data sorting
- Debugging and iterative problem-solving