Projects from CS150: Data Structures and Algorithms
This course introduced me to data structures including lists, binary trees, red and black trees, 2-3 trees, heaps, graphs, stacks, and queues. I was introduced to various algorithms including insertion sort, selection sort, merge sort, quick sort, and Dijkstra's pathfinding algorithm. I learned the basics of analysing time and space complexities. This course also introduced me to abstract classes, interfaces, unit testing, bash commands, and Red Hat Enterprise Linux.
The first project for this course was a building evacuation simulator. Using queues and lists I built a program that simulated a building evacuation given a specified number of floors, number of residents on each floor, number of stairwells, distance between floors (stairwell size,) and maximum evacuation time. One of these values was to be left blank, with that value returned by the program. The finished program could calculate the missing value given the other four parameters.
The second project was a restaurant review system similar to Yelp!. I built an interface that allowed users to add new restaurants, search restaurants, write reviews, and read reviews. The search took cost, location, operating hours, and rating into account.
The third and final project for this class was a delivery system calculator. Given a text file representing nodes and edges, a graph was created. Nodes were assigned to be stores, warehouses, and towns. Given a specified number of trucks and gallons of gas, my program calculated a delivery schedule. This schedule fulfilled order requests for each of the warehouses. Each truck had limited storage space and was forbidden from making multiple trips. This project was heavily centred around Dijkstra's pathfinding algorithm.