# Category Two: Algorithms and Data Structures

## 📄 Artifact Description
The artifact used for this enhancement is the **SNHU Travel System**, a Java-based application originally developed during CS 250. a Java application originally developed for CS 250 in 2024. While Milestone Two focused on the "how" (Software Engineering), Milestone Three focuses on the "what" (Algorithms and Data Structures). The software displays a travel destination list using a custom renderer for icons and text.

## ⚖️ Justification for Inclusion
I selected this artifact for the Algorithms and Data Structures category because it showcases my ability manipulate data efficiently. In the original version, the destinations were stored in a static, hardcoded order with zero flexibility. 
* **The Problem:** The original project used static arrays and hardcoded values, meaning the data was fixed in size and could not be searched or sorted efficiently.
* **The Solution:** To enhance the artifact, I replaced the static data structure with a dynamic ArrayList, allowing the application to scale beyond a fixed number of destinations. I also implemented a sorting algorithm using Java’s Comparator to automatically organize destinations alphabetically.
* **New Skills Showcased:** These improvements demonstrate my ability to apply core computer science concepts to solve practical problems. The application now behaves more like a real-world system by organizing data dynamically and presenting it in a structured and predictable way.

## 🎯 Alignment with Course Outcomes
This enhancement aligns primarily with Course **Outcome 2 (Algorithmic Principles)**;  I evaluated the limitations of static data storage and moved to a dynamic model. By implementing an alphabetical sort, I demonstrated my ability to solve a logic problem using algorithmic principles, managing the trade-off between simple code and functional power.
* **Outcome 4 (Innovative Tools):** I utilized the Java Collections Framework to implement an efficient and scalable solution. The use of built-in tools such as ArrayList and Comparator reflects industry-standard practices in software development.

## 💭 Reflection on the Process
Working on this artifact helped me bridge the gap between theoretical data structures and their practical application.
* **What I Learned:** Through this enhancement, I gained a deeper understanding of how data structures influence application performance and scalability. My background in software testing has shown me how systems can fail when they are not designed to handle growth, and this project reinforced the importance of planning for scalability early in development.
* **Challenges:** One challenge I encountered was ensuring that the sorting logic was correctly applied before the data was passed to the user interface. This required careful separation of concerns between the service layer and the presentation layer. Overcoming this challenge helped reinforce my understanding of clean architecture and the importance of organizing code effectively.
Overall, this process strengthened my ability to think critically about how data is managed within an application and how algorithmic improvements can enhance both functionality and user experience

