Algorithms & Data Structures
This artifact demonstrates how I designed and evaluated computing solutions using algorithmic principles, with a focus on efficient filtering, data preparation, and meaningful visualization logic.
Artifact Overview
Artifact: CS 340 Grazioso Salvare Dashboard (Python/Dash + MongoDB data)
Originally Created: CS 340 (Advanced Programming Concepts)
Category: Algorithms and Data Structures
The dashboard loads animal shelter data and allows users to apply rescue-type filters, select records, view mapped coordinates, and explore a pie chart visualization. For this enhancement, I focused on the algorithmic logic used to build filter queries, process datasets, and generate charts in a way that is both efficient and reliable for real-world usage.
Why This Artifact Belongs in My ePortfolio
I selected this artifact for the algorithms and data structures category because it highlights how algorithmic decisions affect an application's performance and correctness. The dashboard is data-driven, which makes it ideal for demonstrating filtering logic, defensive programming for edge cases, and efficiency considerations when transforming data for visualization. These are practical algorithm skills that apply directly to backend and full-stack development.
Original Limitations
The original version handled filtering and display correctly but did not fully emphasize algorithmic clarity and robustness. Limitations included: (1) inconsistent handling of empty results, (2) limited defensive checks before running transformations, (3) visualization logic that could produce unclear results when categories were large, and (4) less explicit separation of query building versus display logic, which made future extensions harder.
Enhancements Implemented
For this enhancement, I improved the algorithmic flow by: (1) implementing a clear query-building function that maps each rescue selection to explicit constraints, (2) adding defensive handling when datasets are empty or missing required columns, (3) improving the data transformation logic used before visualization (filtering, removing nulls, selecting meaningful categories), and (4) ensuring the map and chart updates remain stable regardless of user selection.
Impact of Changes
These improvements make the dashboard more reliable and consistent. Filtering is now easier to understand, evaluate, and extend. The data-processing logic reduces the chance of runtime errors, improves chart accuracy, and provides better user feedback when no data is available. Overall, the application behaves more predictably and demonstrates stronger problem-solving using algorithmic principles.
Course Outcomes Demonstrated
This artifact demonstrates CS 499 outcomes by applying algorithmic reasoning and professional communication:
- Outcome 3 (Algorithms & Trade-offs): I designed and evaluated filtering and transformation logic with attention to correctness, efficiency, and maintainability trade-offs.
- Outcome 2 (Communication): I improved clarity through structured functions and explanations that make the logic easier for others to follow and review.
- Outcome 4 (Tools & Practices): I used Python, pandas, and Dash to implement practical data processing and visualization workflows used in real applications.
Design Trade-offs and Evaluation
In this enhancement, a key trade-off was balancing performance with readability. For example, structuring the rescue filter logic into a dedicated query-building function improves clarity and makes future modifications easier, even if it adds a small amount of abstraction. Similarly, defensive checks for empty datasets add a few extra conditional steps, but they significantly improve stability and user experience. These choices reflect a professional approach: prioritize correctness and maintainability while still keeping the logic efficient for typical dataset sizes.
Original vs Enhanced Files
The following links provide direct access to the dashboard code before and after algorithm-focused enhancements.
- Original: downloads/original/
- Enhanced: downloads/enhanced/
Key file for this category: ProjectTwoDashboard.ipynb (filtering/query logic + data transformation + visualization updates).
Reflection
Enhancing this artifact helped me understand how important algorithmic structure is in data-driven applications. I learned that the best solution is not only one that works, but one that is consistent, predictable, and easy to evaluate. A major challenge was ensuring the dashboard continued to update correctly when users changed filters or when the dataset contained missing values. By adding defensive handling and improving the data transformation steps, I strengthened the reliability of the application and demonstrated a more professional approach to algorithm design and evaluation.