My Work
This Website:
This application was a part of CSE 373, a non-majors data structures and algorithms class that I took while I was an Applied Physics major at UW Seattle. The homework for the class all built up over time as we learned more data structures and algorithms. The goal of thge program was to build a sort of clone of a Google Maps type application. The first major application in the homework that we worked on was an autocomplete for the location search portion of the application. We used arrays and a binary range search to grab items that were most similar to the user's search that we had stored in the application.
THe implementation wasn't that difficult, but the most impressive part for me was seeing the algorithm at work once I had gotten it working right. It was amazing to think how a simple concept such as binary searches can be applied to generate functions that seem much more complex. It was very humbling but also taught me the power of the algorithms and the concepts that allow them to function as well and as fast as they do.
The next major step was the pathfinding for navigation. Finding the quickest path between two points. At this point we had already implemented a way to find the closest point to another point, so if a user were to click in empty space, the application would choose the closest landmark that the application has stored as an end point. We had also implemented a k-d tree to store the nodes on the map. Combining what I had previously implemented with the A* Search algorithm I could then implement a way to find the shortest path between two nodes and provide that to the application so that a user could see the path drawn on the map.
This step was the largest and pulled in a lot of the other features that had been developed previously. I learned from this step how, as previously mentioned, small and "simple" things can all be developed together and built up into something complex. To date this was the best project that I had worked on as I had a lot of fun throughout the entire project, and I also learned a massive amount throughout the process.